ProxmoxMCP-advance

The Proxmox MCP Server Manager is a powerful tool designed to streamline the management of virtual machines. It offers a range of advanced features such as starting, stopping, and executing commands on VMs, as well as automated provisioning of resources. Security is prioritized, with sensitive information managed safely. Integration with CLI and VSCode allows for automated workflows, making it a versatile solution for users.

GitHub Stars

1

User Rating

Not Rated

Favorites

0

Views

28

Forks

0

Issues

0

README
🦸 Proxmox MCP Server Manager (Advanced Edition)

✨ What's New in This Release

Advanced Features Recently Added:

  • 🟒 Start/Stop/Manage VMs: Instantly start, stop, or reboot any VM in your cluster.
  • πŸ–₯️ In-VM Command Execution: Run system updates, install packages (e.g., nginx), and patch VMs directly from the MCP interface.
  • ⚑ Automated VM Provisioning: Spin up new VMs from any ISO with default or custom resources in a single command.
  • πŸ“Š Cluster Resource Overview: List all nodes, VMs, and storage pools with real-time status and resource usage.
  • πŸ”’ Secure Configuration: All sensitive credentials are managed via config files and environment variables, never hardcoded.
  • πŸ§‘β€πŸ’» Rich CLI/VSCode Integration: Seamless operation with Cline and VSCode for automated workflows.
  • 🎬 Demo Video: See ProxmoxMCP/Proxmox-adv-demo.webm for a walkthrough of these features.

πŸ–₯️ Setting Up Proxmox on a Virtual Machine Manager

πŸ“ Step-by-step guide to install Proxmox using the official ISO:

  1. πŸ“₯ Download the Proxmox ISO:

  2. πŸ†• Create a New Virtual Machine:

    • Open your Virtual Machine Manager (e.g., virt-manager, VMware, VirtualBox).
    • Create a new VM and select the downloaded Proxmox ISO as the installation media.
    • Assign at least 2 CPU cores, 4GB RAM, and 32GB disk (recommended for testing).
    • Configure networking (bridged or NAT as needed).
  3. πŸ’Ώ Install Proxmox:

    • Boot the VM from the ISO and follow the on-screen instructions to install Proxmox VE.
    • Set a secure password and note the IP address assigned to the VM.
  4. βš™οΈ Initial Configuration:

    • Access the Proxmox web UI at https://<proxmox-vm-ip>:8006 from your browser.
    • Complete the setup wizard, configure storage, and create an admin user if needed.
  5. πŸ”‘ API Token Setup:

    • In the Proxmox web UI, go to Datacenter β†’ Permissions β†’ API Tokens.
    • Create a new API token for your user (e.g., Markermav@pam). #Example user here!
    • Save the token name and value securely.
  6. πŸ›°οΈ Enable QEMU Guest Agent (for VM command execution):

    • For each VM you want to manage, install the QEMU Guest Agent:
      apt-get update
      apt-get install -y qemu-guest-agent
      systemctl enable --now qemu-guest-agent
      
    • Ensure the agent is enabled in the VM's options settings in Proxmox.
    • Right click on VM β†’ Options β†’ enable QEMU Guest Agent. (**without this agent will not start)

πŸ—‚οΈ Configuration Example

proxmox-config/config.json (with sensitive info replaced):

{
    "proxmox": {
        "host": "proxmox.example.local",
        "port": 8006,
        "verify_ssl": false,
        "service": "PVE"
    },
    "auth": {
        "user": "Markermav@pam", #Example user here!
        "token_name": "mcp-token",
        "token_value": "your-token-value"
    },
    "logging": {
        "level": "DEBUG",
        "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
        "file": "proxmox_mcp.log"
    }
}

πŸ“¦ Installation
πŸ› οΈ Prerequisites
  • 🐍 Python 3.10+
  • 🧬 Git
  • πŸ“¦ UV package manager (pip install uv)
  • πŸ”— Access to a Proxmox server with API token credentials
⚑ Quick Install
git clone https://github.com/Markermav/ProxmoxMCP.git
cd ProxmoxMCP
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
mkdir -p proxmox-config
cp config/config.example.json proxmox-config/config.json
# Edit proxmox-config/config.json with your Proxmox details

πŸš€ Running the Server

Development Mode:

source .venv/bin/activate
python -m proxmox_mcp.server

Cline Desktop Integration:

Add this to your MCP settings (replace paths and sensitive info):

{
  "mcpServers": {
    "github.com/Markermav/ProxmoxMCP": {
      "command": "/home/Markermav/ProxmoxMCP/.venv/bin/python",
      "args": ["-m", "proxmox_mcp.server"],
      "cwd": "/home/Markermav/ProxmoxMCP",
      "env": {
        "PYTHONPATH": "/home/Markermav/ProxmoxMCP/src",
        "PROXMOX_MCP_CONFIG": "/home/Markermav/ProxmoxMCP/proxmox-config/config.json",
        "PROXMOX_HOST": "proxmox.example.local",
        "PROXMOX_USER": "Markermav@pam", #Example user here!
        "PROXMOX_TOKEN_NAME": "mcp-token",
        "PROXMOX_TOKEN_VALUE": "your-token-value",
        "PROXMOX_PORT": "8006",
        "PROXMOX_VERIFY_SSL": "false",
        "PROXMOX_SERVICE": "PVE",
        "LOG_LEVEL": "DEBUG"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

🧰 Available Tools
  • πŸ–₯️ List Nodes: View all nodes in the cluster with status and resource usage.
  • πŸ“‘ Node Status: Get detailed info for any node.
  • πŸ—ƒοΈ List VMs: See all VMs, their status, and resources.
  • πŸ”„ VM State Management: Start, stop, reboot, suspend, or reset VMs.
  • πŸ›°οΈ In-VM Command Execution: Run any shell command in a VM (requires QEMU Guest Agent).
  • πŸ’Ύ Storage Overview: List all storage pools and usage.
  • πŸ₯ Cluster Health: Get overall cluster status and health.

πŸ—οΈ Project Structure
proxmox-mcp/
β”œβ”€β”€ src/
β”‚   └── proxmox_mcp/
β”‚       β”œβ”€β”€ server.py
β”‚       β”œβ”€β”€ config/
β”‚       β”œβ”€β”€ core/
β”‚       β”œβ”€β”€ formatting/
β”‚       β”œβ”€β”€ tools/
β”‚       β”‚   └── console/
β”‚       └── utils/
β”œβ”€β”€ tests/
β”œβ”€β”€ proxmox-config/
β”‚   └── config.example.json
β”œβ”€β”€ pyproject.toml
└── LICENSE

πŸ“„ License

MIT License