ProxmoxMCP-Plus

Proxmox VE MCP server for VMs, LXCs, snapshots, backups, storage, and cluster operations.

ProxmoxMCP-Plus

ProxmoxMCP-Plus Logo

Control Proxmox VE from LLMs, AI agents, MCP clients, and OpenAPI tooling with one safer interface for VMs, LXCs, backups, snapshots, ISOs, and container commands.

PyPI GitHub Release CI GHCR License

Quick Start | Demo | Capabilities | Scenarios | Docs | Wiki

ProxmoxMCP-Plus architecture and control flow

Platform Overview

ProxmoxMCP-Plus provides a unified Proxmox VE control surface in two forms:

  • MCP for Claude Desktop, Open WebUI, and other LLM or AI agent clients
  • OpenAPI for HTTP automation, dashboards, internal tools, and no-code workflows

Instead of stitching together raw Proxmox API calls, shell scripts, and custom glue code, the project consolidates core operational workflows in one interface:

  • VM and LXC lifecycle actions
  • snapshot create, rollback, and delete
  • backup and restore workflows
  • ISO download and cleanup
  • node, storage, and cluster inspection
  • SSH-backed container command execution with guardrails

Design Priorities

ProxmoxMCP-Plus is designed for the gap between low-level Proxmox primitives and production-facing workflows that need to be usable from both LLM-native clients and standard automation systems.

  • Dual-surface architecture: MCP for conversational workflows, OpenAPI for standard automation
  • Operator-oriented scope: focused on day-2 tasks, not just raw low-level endpoints
  • Safer-by-default execution: auth, command policy, and explicit execution paths
  • Operationally grounded: documented workflows are backed by live-environment verification

Quick Start

1. Prepare Proxmox access

Read the official Proxmox docs first if you are setting up a fresh lab:

At minimum, proxmox-config/config.json needs:

  • proxmox.host
  • proxmox.port
  • auth.user
  • auth.token_name
  • auth.token_value

Add an ssh section as well if you want container command execution.

2. Choose one runtime path

PyPI

uvx proxmox-mcp-plus

Or install it first:

pip install proxmox-mcp-plus
proxmox-mcp-plus

Docker / GHCR

docker run --rm -p 8811:8811 \
  -v "$(pwd)/proxmox-config/config.json:/app/proxmox-config/config.json:ro" \
  ghcr.io/rekklesna/proxmoxmcp-plus:latest

Source

git clone https://github.com/RekklesNA/ProxmoxMCP-Plus.git
cd ProxmoxMCP-Plus
uv venv
uv pip install -e ".[dev]"
python main.py

3. Run the HTTP/OpenAPI surface

docker compose up -d
curl -f http://localhost:8811/health
curl http://localhost:8811/openapi.json

4. Point an MCP client at the server

Minimal MCP client shape:

{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "python",
      "args": ["/path/to/ProxmoxMCP-Plus/main.py"],
      "env": {
        "PROXMOX_MCP_CONFIG": "/path/to/ProxmoxMCP-Plus/proxmox-config/config.json"
      }
    }
  }
}

Client-specific examples for Claude Desktop and Open WebUI are in the Integrations Guide.

Demo

This demo is a direct terminal recording of qwen/qwen3.6-plus driving a live MCP session in English against a local Proxmox lab. It shows natural-language control flowing through MCP tools to create and start an LXC, execute a container command, and confirm the HTTP /health surface.

Recorded demo gif

Watch the MP4 version

Core Platform Capabilities

ProxmoxMCP-Plus provides a unified control surface for the operational tasks most teams actually need in Proxmox VE. The same server can expose these workflows to MCP clients for LLM and AI-agent use cases, and to HTTP consumers through the OpenAPI bridge.

Supported workflow areas:

Capability AreaAvailability
VM create / start / stop / deleteAvailable
VM snapshot create / rollback / deleteAvailable
Backup create / restoreAvailable
ISO download / deleteAvailable
LXC create / start / stop / deleteAvailable
Container SSH-backed command executionAvailable
Container authorized_keys updateAvailable
Local OpenAPI /health and schemaAvailable
Docker image build and /healthAvailable

Validation and contract entry points in this repository:

  • pytest -q
  • tests/integration/test_real_contract.py
  • test_scripts/run_real_e2e.py

Positioning Against Common Approaches

CapabilityOfficial Proxmox APIOne-off scriptsProxmoxMCP-Plus
MCP for LLM and AI agent workflowsNoNoYes
OpenAPI surface for standard HTTP toolingNoUsually noYes
VM and LXC operations in one interfaceLow-level onlyDependsYes
Snapshot, backup, and restore workflowsLow-level onlyDependsYes
Container command execution with policy controlsNoCustom onlyYes
Docker distribution pathNoRareYes
Repository-level live-environment verificationN/ARareYes

Scenario Templates

Ready-to-copy examples live in examples/:

These are written for both human operators and LLM-driven usage.

Documentation

The README is intentionally optimized for fast GitHub comprehension. Longer operational docs live in docs/wiki/ and can also be published to the GitHub Wiki.

If you need to...Start here
Understand the project and deployment flowWiki Home
Configure and run against a Proxmox environmentOperator Guide
Connect Claude Desktop or Open WebUIIntegrations Guide
Install from MCP-aware IDEs and agentsllms-installation.md
Review security and command policySecurity Guide
Inspect tool parameters, prerequisites, and behaviorAPI & Tool Reference
Debug startup, auth, or health issuesTroubleshooting
Work on the codebase or release itDeveloper Guide
Review release and upgrade notesRelease & Upgrade Notes

Published wiki:

Repo Layout

  • src/proxmox_mcp/: MCP server, config loading, security, OpenAPI bridge
  • main.py: MCP entrypoint for local and client-driven usage
  • docker-compose.yml: HTTP/OpenAPI runtime
  • requirements/: auxiliary dependency sources and runtime install lists
  • scripts/: helper startup scripts for local workflows
  • test_scripts/run_real_e2e.py: live Proxmox and Docker/OpenAPI path
  • tests/: unit and integration coverage
  • examples/: scenario-driven prompts and HTTP examples
  • docs/wiki/: longer-form operator, integration, and reference docs

Development Checks

pytest -q
ruff check .
mypy src tests main.py test_scripts/run_real_e2e.py
python -m build

License

MIT

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension