Skip to main content
Glama
mcp-server-proxmox

mcp-server-proxmox

by heybearc

MCP Server for Proxmox VE

License: MIT Node.js Version MCP Compatible

A Model Context Protocol (MCP) server for Proxmox Virtual Environment that enables AI assistants to manage virtual machines, containers, nodes, and resources through natural language interactions.

๐Ÿš€ Features

Core Proxmox Management

  • Node Management: List and monitor Proxmox cluster nodes

  • VM Operations: Start, stop, and monitor virtual machines

  • Container Management: Manage LXC containers

  • Status Monitoring: Real-time status information for nodes, VMs, and containers

๐Ÿ†• Full Container Provisioning (v0.2.0)

  • Automated Provisioning: Create containers with full infrastructure automation

  • Netbox IPAM Integration: Automatic IP and VM registration

  • NPM Reverse Proxy: Automatic proxy host creation with SSL

  • DNS Registration: Automatic AdGuard Home DNS entries

  • Monitoring Setup: Automatic node_exporter and promtail installation

  • Backup Configuration: Automatic Proxmox backup scheduling

  • Template Stacks: Pre-configured templates (media, dev, monitoring)

  • CTID Auto-Assignment: Intelligent CTID assignment by function

Infrastructure

  • Secure Authentication: Support for both password and API token authentication

  • Multi-Node Support: Works with single nodes or full Proxmox clusters

  • Natural Language: Deploy infrastructure by talking to AI

Related MCP server: proxmox-mcp

๐Ÿ“‹ Prerequisites

  • Node.js 18.0.0 or higher

  • Proxmox VE 7.0+ with API access

  • Valid Proxmox credentials (username/password or API token)

๐Ÿ› ๏ธ Installation

From Source

git clone https://github.com/heybearc/mcp-server-proxmox.git
cd mcp-server-proxmox
npm install
npm run build

From NPM (Coming Soon)

npm install -g mcp-server-proxmox

โš™๏ธ Configuration

Environment Variables

Create a .env file or set the following environment variables:

# Proxmox Server Configuration
PROXMOX_HOST=your-proxmox-host.com
PROXMOX_PORT=8006
PROXMOX_USERNAME=root
PROXMOX_REALM=pam

# Authentication Method 1: Password
PROXMOX_PASSWORD=your-password

# Authentication Method 2: API Token (Recommended)
PROXMOX_TOKEN=your-api-token
PROXMOX_TOKEN_NAME=your-token-name

# SSL Configuration
PROXMOX_VERIFY_SSL=true

MCP Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "proxmox": {
      "command": "node",
      "args": ["/path/to/mcp-server-proxmox/dist/index.js"],
      "env": {
        "PROXMOX_HOST": "your-proxmox-host.com",
        "PROXMOX_USERNAME": "root",
        "PROXMOX_TOKEN": "your-api-token",
        "PROXMOX_TOKEN_NAME": "your-token-name"
      }
    }
  }
}

Other MCP Clients

Refer to your MCP client's documentation for server configuration.

๐Ÿ”ง Available Tools

Basic Operations

Tool

Description

Parameters

list_nodes

List all Proxmox nodes

None

list_vms

List virtual machines

node (optional)

list_containers

List LXC containers

node (optional)

get_vm_status

Get VM status details

node, vmid

start_vm

Start a virtual machine

node, vmid

stop_vm

Stop a virtual machine

node, vmid

get_node_status

Get node status details

node

๐Ÿ†• Provisioning Tools (v0.2.0)

Tool

Description

Parameters

create_container

Create and fully provision a new LXC container

name, function, ip, memory, cores, disk, domain, port, ssl

provision_stack

Deploy pre-configured container stack

stackType, name, ip, domain

get_available_ctid

Get next available CTID in function range

function

๐Ÿ’ก Usage Examples

With AI Assistant

Basic Operations:

"Show me all VMs on my Proxmox cluster"
"Start VM 100 on node pve1"
"What's the status of my Proxmox nodes?"
"List all containers on node pve2"

๐Ÿ†• Provisioning (v0.2.0):

"Create a new media server container with 4GB RAM at 10.92.3.15"
"Deploy a Scrypted NVR container with domain scrypted.cloudigan.net"
"Provision a development environment at 10.92.3.50"
"What's the next available CTID for utility containers?"

Natural Language Examples:

  • "I need a new container for Plex with 8GB RAM and SSL enabled"

  • "Create a monitoring stack at 10.92.3.60 with Grafana access"

  • "Deploy a dev environment with 2 cores and 32GB disk"

Direct API Usage

# Start the server
npm start

# The server communicates via stdio using MCP protocol

๐Ÿ” Security

  1. Log into Proxmox web interface

  2. Go to Datacenter โ†’ Permissions โ†’ API Tokens

  3. Create a new token with appropriate permissions

  4. Use the token in your configuration

Required Permissions

  • VM.Audit - View VM information

  • VM.PowerMgmt - Start/stop VMs

  • Sys.Audit - View node information

  • Datastore.Audit - View storage information

๐Ÿงช Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run tests
npm test

# Lint code
npm run lint

# Format code
npm run format

๐Ÿค Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ž Support

Available Tools

10 tools
create_containerB

Create and provision a new LXC container with full automation (Netbox, NPM, DNS, monitoring, backups)

Inputs: ip (required), name (required), function (required), ssl, +6 more.

get_available_ctidA

Get next available CTID in a specific function range

Inputs: function (required).

get_node_statusC

Get detailed status information for a Proxmox node

Inputs: node (required).

get_vm_statusC

Get detailed status information for a specific VM

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

list_containersA

List LXC containers on a specific node or all nodes

Inputs: node.

list_nodesA

List all Proxmox nodes in the cluster

Inputs: no named parameters.

list_vmsA

List virtual machines on a specific node or all nodes

Inputs: node.

provision_stackC

Provision a pre-configured container stack (template) with common settings

Inputs: ip (required), name (required), stackType (required), domain.

start_vmC

Start a virtual machine

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

stop_vmB

Stop a virtual machine

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

Tool Schema Changelog

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

Loading tool schema changelogโ€ฆ

    TDQS

    B3.4/5.0

    Scored across 10 tools

    Disambiguation4/5

    Most tools have clearly distinct resource+action pairs; list_vms/get_vm_status and list_nodes/get_node_status are separated by scope. The main ambiguity is between create_container and provision_stack, which both provision containers and could lead to misselection.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern (list_*, get_*, start_*, stop_*, create_*, provision_*). Naming is predictable and readable across the entire set.

    Tool Count5/5

    Ten tools is a well-scoped set for a Proxmox management server, covering node inspection, VM/container listing, status lookup, VM power control, and container provisioning without feeling bloated or too thin.

    Completeness2/5

    The set covers listing, status, VM start/stop, and container creation, but it lacks obvious lifecycle operations: no VM creation/update/delete, no container start/stop/delete, and no management of provisioned stacks. This leaves significant gaps for normal Proxmox administration workflows.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server for Proxmox VE that enables AI assistants to inspect and manage LXC containers, VMs, snapshots, and resource pools via the Proxmox API.
      -
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for managing Proxmox VE resources, VM/CT lifecycle, snapshots, backups, and clones via natural language.
      23
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      An MCP server for interacting with the Proxmox Virtual Environment API, enabling management of VMs, containers, storage, and cluster resources through natural language.
      MIT