Skip to main content
Glama

Proxmox MCP Server

A read-only MCP (Model Context Protocol) server that allows LLM agents to interact with your Proxmox homelab VMs.

Features

  • ๐Ÿ“‹ List all VMs and containers across your Proxmox cluster

  • ๐Ÿ” Get detailed VM information including hardware specs, network config, and disks

  • ๐Ÿ“Š Monitor VM status with real-time CPU, memory, and I/O metrics

  • ๐Ÿ“ˆ Historical metrics with hourly, daily, weekly, monthly, or yearly data

  • ๐Ÿ“ธ List VM snapshots to see backup points

  • ๐Ÿ–ฅ๏ธ Cluster overview with node status and aggregate resources

All operations are read-only - your VMs are safe!

Quick Start

1. Install the package

cd proxmox-mcp pip install -e .

2. Configure Proxmox credentials

cp .env.example .env # Edit .env with your Proxmox details

3. Create a read-only API token in Proxmox

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

  2. Click Add

  3. Select a user (or create a new one with PVEAuditor role)

  4. Set Token ID (e.g., homelab-mcp)

  5. Uncheck "Privilege Separation" if using an auditor user

  6. Copy the token secret (shown only once!)

Recommended: Create a dedicated auditor user

# SSH to your Proxmox server pveum user add mcp-reader@pve pveum acl modify / -user mcp-reader@pve -role PVEAuditor pveum user token add mcp-reader@pve proxmox-mcp

4. Run the server

# SSE mode (recommended for remote access) proxmox-mcp --transport sse # Or stdio mode (for local VS Code/CLI usage) proxmox-mcp --transport stdio

Available Tools

Tool

Description

list_vms

List all VMs and containers with basic info

get_vm_info

Get detailed VM configuration and specs

get_vm_status

Get current runtime status and metrics

get_vm_metrics

Get historical performance data

list_nodes

List all Proxmox nodes

list_vm_snapshots

List snapshots for a VM

get_cluster_status

Get cluster health and totals

Configuration

All settings can be configured via environment variables or a .env file:

Variable

Description

Default

PROXMOX_HOST

Proxmox server hostname/IP

localhost

PROXMOX_PORT

Proxmox API port

8006

PROXMOX_VERIFY_SSL

Verify SSL certificates

false

PROXMOX_API_TOKEN_ID

API token ID (user@realm!tokenid)

-

PROXMOX_API_TOKEN_SECRET

API token secret

-

MCP_SERVER_HOST

SSE server bind address

0.0.0.0

MCP_SERVER_PORT

SSE server port

8080

Using with LLM Clients

VS Code with GitHub Copilot

Add to your VS Code settings.json:

{ "mcp.servers": { "proxmox": { "url": "http://your-server:8080/mcp/sse" } } }

Claude Desktop

Add to claude_desktop_config.json:

{ "mcpServers": { "proxmox": { "url": "http://your-server:8080/mcp/sse" } } }

Local stdio mode

For local usage, you can run with stdio transport:

{ "mcpServers": { "proxmox": { "command": "proxmox-mcp", "args": ["--transport", "stdio"] } } }

Example Queries

Once connected, you can ask your LLM:

  • "List all my VMs"

  • "What's the status of VM 100?"

  • "Show me the CPU usage history for my plex server"

  • "Which VMs are currently stopped?"

  • "How much memory is my cluster using?"

Security Notes

  1. Use API tokens instead of username/password

  2. Use the PVEAuditor role for true read-only access

  3. Run behind a reverse proxy with HTTPS in production

  4. Firewall the MCP port to trusted networks only

Development

# Install dev dependencies pip install -e ".[dev]" # Run tests pytest # Lint ruff check src/

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/teomarcdhio/proxmox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server