πŸš€ Proxmox MCP Server (Node.js Edition)

by gilby125

701 downloads
Not rated
GitHub

About

MCP server for Proxmox virtualization management with configurable permissions

Details

Author
gilby125
Downloads
701
Categories
Other

- πŸ”’ Configurable permission levels (Basic and Elevated)
- πŸ› οΈ Built with the official MCP SDK for Node.js
- πŸ” Secure token-based authentication with Proxmox
- πŸ–₯️ Comprehensive node and VM management
- πŸ’» VM console command execution (elevated mode)
- πŸ“Š Real-time resource monitoring and rich markdown output

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name πŸš€ Proxmox MCP Server (Node.js Edition)
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, run npm install, create a .env file with your Proxmox credentials (host, user, token name, token value), and optionally set PROXMOX_ALLOW_ELEVATED. Start the server with node index.js. Integrate with MCP clients by adding a configuration entry pointing to the index.js file.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "\ud83d\ude80 proxmox mcp server (node.js edition)": {
            "mcp-proxmox-gilby125": {
                "command": "node",
                "args": [
                    "index.js"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-proxmox-gilby125": {
        "command": "node",
        "args": [
            "index.js"
        ]
    }
}

πŸš€ Proxmox MCP Server (Node.js Edition)

A Node.js-based Model Context Protocol (MCP) server for interacting with Proxmox hypervisors, providing a clean interface for managing nodes, VMs, and containers with configurable permission levels.

πŸ™ Credits

This project is based on the original Python implementation by canvrno/ProxmoxMCP. This Node.js version maintains the same core functionality while adapting it for JavaScript/Node.js environments and adding configurable permission management.

πŸ”„ Changes from Original

Architecture Changes:
- βœ… Complete rewrite from Python to Node.js
- βœ… Uses @modelcontextprotocol/sdk instead of Python MCP SDK
- βœ… Environment variable configuration instead of JSON config files
- βœ… Simplified dependency management with npm

New Features:
- πŸ”’ Configurable Permission Levels: PROXMOX_ALLOW_ELEVATED setting for security
- πŸ›‘οΈ Basic Mode: Safe operations (node listing, VM status) with minimal permissions
- πŸ”“ Elevated Mode: Advanced features (detailed metrics, command execution) requiring full permissions
- πŸ“ Better Error Handling: Clear permission warnings and graceful degradation
- πŸ”§ Auto Environment Loading: Automatically loads .env files from parent directories

πŸ—οΈ Built With

- Node.js - JavaScript runtime
- @modelcontextprotocol/sdk - Model Context Protocol SDK for Node.js
- node-fetch - HTTP client for API requests

✨ Features

- πŸ”’ Configurable Security: Two permission levels for safe operation
- πŸ› οΈ Built with the official MCP SDK for Node.js
- πŸ” Secure token-based authentication with Proxmox
- πŸ–₯️ Comprehensive node and VM management
- πŸ’» VM console command execution (elevated mode)
- πŸ“Š Real-time resource monitoring
- 🎨 Rich markdown-formatted output
- ⚑ Fast Node.js performance
- πŸ”§ Easy environment-based configuration

https://github.com/user-attachments/assets/1b5f42f7-85d5-4918-aca4-d38413b0e82b

πŸ“¦ Installation

Prerequisites

- Node.js 16+ and npm - Git - Access to a Proxmox server with API token credentials

Before starting, ensure you have:
- [ ] Node.js and npm installed
- [ ] Proxmox server hostname or IP
- [ ] Proxmox API token (see API Token Setup)

Quick Install

1. Clone and set up:

   git clone https://github.com/gilby125/mcp-proxmox.git
cd mcp-proxmox
npm install

2. Create .env file with your Proxmox configuration:

   # Proxmox Configuration
PROXMOX_HOST=192.168.1.100
PROXMOX_USER=root@pam
PROXMOX_TOKEN_NAME=mcp-server
PROXMOX_TOKEN_VALUE=your-token-value-here
PROXMOX_ALLOW_ELEVATED=false # Set to 'true' for advanced features

Note: PROXMOX_PORT defaults to 8006 and can be omitted unless using a custom port.

Permission Levels

Basic Mode (PROXMOX_ALLOW_ELEVATED=false):
- List cluster nodes and their status
- List VMs and containers
- Basic cluster health overview
- Requires minimal API token permissions

Elevated Mode (PROXMOX_ALLOW_ELEVATED=true):
- All basic features plus:
- Detailed node resource metrics
- VM command execution
- Advanced cluster statistics
- Requires API token with Sys.Audit, VM.Monitor, VM.Console permissions

Verifying Installation

1. Test the MCP server:

   echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.js

2. Test a basic API call:

   echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "proxmox_get_nodes", "arguments": {}}}' | node index.js

You should see either:
- A successful list of your Proxmox nodes
- Or a connection/permission error with helpful guidance

βš™οΈ Configuration

Proxmox API Token Setup

1. Log into your Proxmox web interface 2. Navigate to Datacenter β†’ Permissions β†’ API Tokens 3. Click Add to create a new API token: - User: Select existing user (e.g., root@pam) - Token ID: Enter a name (e.g., mcp-server) - Privilege Separation: Uncheck for full access or leave checked for limited permissions - Click Add 4. Important: Copy both the Token ID and Secret immediately (secret is only shown once) - Use Token ID as PROXMOX_TOKEN_NAME - Use Secret as PROXMOX_TOKEN_VALUE

Permission Requirements:
- Basic Mode: Minimal permissions (usually default user permissions work)
- Elevated Mode: Add permissions for Sys.Audit, VM.Monitor, VM.Console to the user/token

πŸš€ Running the Server

Direct Execution

node index.js

MCP Client Integration

For Claude Code or other MCP clients, add this to your MCP configuration:

{
  "mcpServers": {
    "mcp-proxmox": {
      "command": "node",
      "args": ["index.js"],
      "cwd": "/absolute/path/to/mcp-proxmox"
    }
  }
}

Important:
- Replace /absolute/path/to/mcp-proxmox with the actual path to your installation
- The server automatically loads environment variables from .env files
- Ensure the .env file is in the same directory as index.js or a parent directory

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.