Proxmox

Enhanced Proxmox MCP server with advanced virtualization management and full OpenAPI integration.
  • python

76

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "rekklesna-proxmoxmcp-plus": {
      "command": "/absolute/path/to/ProxmoxMCP-Plus/.venv/bin/python",
      "args": [
        "-m",
        "proxmox_mcp.server"
      ],
      "env": {
        "LOG_LEVEL": "DEBUG",
        "PYTHONPATH": "/absolute/path/to/ProxmoxMCP-Plus/src",
        "PROXMOX_HOST": "your-proxmox-host",
        "PROXMOX_PORT": "8006",
        "PROXMOX_USER": "username@pve",
        "PROXMOX_SERVICE": "PVE",
        "PROXMOX_MCP_CONFIG": "/absolute/path/to/ProxmoxMCP-Plus/proxmox-config/config.json",
        "PROXMOX_TOKEN_NAME": "token-name",
        "PROXMOX_VERIFY_SSL": "false",
        "PROXMOX_TOKEN_VALUE": "token-value"
      }
    }
  }
}

You can manage Proxmox virtualization resources through an enhanced MCP server that exposes a rich set of REST-like endpoints and local streaming interfaces. This server enables full VM and container lifecycle control, snapshots, backups, ISO/template handling, and OpenAPI integration for external tooling and Open WebUI workflows.

How to use

You interact with the MCP server by running it locally or connecting via a configured MCP client. Use the available tools and endpoints to create, start, stop, and delete virtual machines, manage LXC containers, take and restore snapshots, perform backups, and handle installation media and templates. You can also leverage OpenAPI REST endpoints for integration with external applications or web UIs, and you can connect through standard IO or transport methods such as SSE or STREAMABLE.

How to install

Prerequisites include a Python 3.9+ environment, Git, and access to a Proxmox server with API token credentials. You should also have the UV package manager installed for convenient environment setup.

# Prerequisites
- Python 3.9+ installed
- Git available
- UV package manager recommended
- Proxmox server hostname or IP
- Proxmox API token ready

# Quick Install (Recommended)
1. Clone the project

git clone https://github.com/RekklesNA/ProxmoxMCP-Plus.git

2. Change into the repository

cdd ProxmoxMCP-Plus

3. Create and activate a virtual environment

uv venv source .venv/bin/activate # Linux/macOS

OR

.\.venv\Scripts\Activate.ps1 # Windows

4. Install dependencies

uv pip install -e ".[dev]"

5. Create configuration

mkdir -p proxmox-config cp proxmox-config/config.example.json proxmox-config/config.json

6. Edit the configuration at proxmox-config/config.json to supply your Proxmox host, token, and logging preferences.

{ "proxmox": { "host": "PROXMOX_HOST", "port": 8006, "verify_ssl": false, "service": "PVE" }, "auth": { "user": "USER@pve", "token_name": "TOKEN_NAME", "token_value": "TOKEN_VALUE" }, "logging": { "level": "INFO", "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", "file": "proxmox_mcp.log" }, "mcp": { "host": "127.0.0.1", "port": 8000, "transport": "STDIO" } }

7. Verify installation

python -c "import proxmox_mcp; print('Installation OK')"

8. Run the MCP server in development mode

python -m proxmox_mcp.server

9. Run tests (optional)

pytest

## Configuration

You configure access to Proxmox via an API token in Proxmox, then supply connection details to the MCP server. The example configuration shows how to set up the Proxmox host, API token, logging, and MCP transport. You can choose the transport as STDIO, SSE, or STREAMABLE to suit your client.

{ "proxmox": { "host": "PROXMOX_HOST", "port": 8006, "verify_ssl": false, "service": "PVE" }, "auth": { "user": "USER@pve", "token_name": "TOKEN_NAME", "token_value": "TOKEN_VALUE" }, "logging": { "level": "INFO", "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", "file": "proxmox_mcp.log" }, "mcp": { "host": "127.0.0.1", "port": 8000, "transport": "STDIO" } }

## Security and OpenAPI deployment

This MCP server provides token-based authentication and OpenAPI REST endpoints for integration with external tools and Open WebUI workflows. You can deploy the OpenAPI service separately to expose the MCP endpoints over HTTP.

Quick OpenAPI start (example hidden service)

Install the OpenAPI proxy if needed

pip install mcpo

Start the OpenAPI service (example script path)

./start_openapi.sh

Access endpoints

API Documentation: http://your-server:8811/docs

OpenAPI Specification: http://your-server:8811/openapi.json

Health Check: http://your-server:8811/health

## Troubleshooting and notes

If you encounter port conflicts, adjust the OpenAPI or MCP server port and update configurations accordingly. Verify Proxmox connectivity using API requests to the Proxmox server, and check the logs for details.

View logs during troubleshooting

tail -f proxmox_mcp.log

Or, for the OpenAPI service when running in Docker

docker logs proxmox-mcp-api -f

## Open WebUI and natural language creation

The server supports integration with Open WebUI and natural language VM creation requests via AI assistants. You can create VMs by asking in natural language, and the system will map requests to the create\_vm endpoint and return detailed configuration information.

## Project structure and deployment status

The project provides a modular structure with source code, tests, configuration, and tooling to manage virtualized resources. The deployment status indicates feature completion across VM and container management, snapshots, backups, ISO/template handling, OpenAPI integration, and Open WebUI integration.

## Available tools

### create\_vm

Create a new virtual machine with specified resources such as node, vmid, name, cpus, memory, and disk size.

### start\_vm

Start a virtual machine on the designated node.

### stop\_vm

Force stop a running virtual machine.

### shutdown\_vm

Gracefully shutdown a virtual machine.

### reset\_vm

Reset (restart) a virtual machine.

### delete\_vm

Completely delete a virtual machine.

### list\_snapshots

List all snapshots for a VM or container.

### create\_snapshot

Create a snapshot of a VM or container.

### delete\_snapshot

Delete a snapshot.

### rollback\_snapshot

Rollback a VM/container to a previous snapshot.

### list\_backups

List available backups across the cluster.

### create\_backup

Create a backup of a VM or container.

### restore\_backup

Restore a VM or container from a backup.

### delete\_backup

Delete a backup file from storage.

### list\_isos

List available ISO images across the cluster.

### list\_templates

List available OS templates for container creation.

### download\_iso

Download an ISO image from a URL to Proxmox storage.

### delete\_iso

Delete an ISO or template from storage.

### get\_nodes

List all nodes in the Proxmox cluster.

### get\_node\_status

Get detailed status of a specific node.

### get\_vms

List all VMs across the cluster.

### get\_storage

List available storage pools.

### get\_cluster\_status

Get overall cluster status and health.

### execute\_vm\_command

Execute a command in a VM's console via QEMU Guest Agent.
Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational