proxmox-mcp
Proxmox-mcp
Einfaches Proxmox MCP
MCP-Server zur Verwaltung von Proxmox VE
38 Tools — Nodes, QEMU-VMs, LXC-Container, Speicher, Cluster, Snapshots.
Warum dieses hier?
Ein Image, Multi-Architektur —
docker run ghcr.io/akmalovaa/proxmox-mcp:latestund fertigNur Umgebungsvariablen — keine Konfigurationsdateien, keine Datenbank, kein Status
Standardmäßig schreibgeschützt — destruktive Vorgänge sind durch ein explizites
PROXMOX_RISK_LEVELgeschütztKleine Codebasis — reines stdio-MCP über Proxmoxer, kein HTTP-Server, keine Authentifizierungsebene, kein Schnickschnack
Rohe JSON-Ausgabe — keine Formatierung, keine Emojis; das LLM erhält saubere Daten
Schnellstart
Image: ghcr.io/akmalovaa/proxmox-mcp:latest (Multi-Architektur: amd64 + arm64).
1. Exportieren Sie die Anmeldedaten in Ihrem Shell-Profil (~/.zprofile, ~/.zshrc oder ~/.bashrc):
# base environment:
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_PASSWORD=your-password
# or use token auth (recommended):
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# optional:
export PROXMOX_RISK_LEVEL=readNeu laden: source ~/.zprofile (oder Shell neu starten).
2. Hinzufügen zu ~/.claude/settings.json (Claude Code) oder claude_desktop_config.json (Claude Desktop):
{
"mcpServers": {
"proxmox": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "PROXMOX_HOST",
"-e", "PROXMOX_USER",
"-e", "PROXMOX_PASSWORD",
"ghcr.io/akmalovaa/proxmox-mcp:latest"]
}
}
}oder Token-Authentifizierung:
{
"mcpServers": {
"proxmox": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "PROXMOX_HOST",
"-e", "PROXMOX_USER",
"-e", "PROXMOX_TOKEN_NAME",
"-e", "PROXMOX_TOKEN_VALUE",
"ghcr.io/akmalovaa/proxmox-mcp:latest"]
}
}
}docker run -e VAR ohne Wert leitet die Host-Variable durch — keine Geheimnisse in der Konfigurationsdatei. Starten Sie den Client neu — 38 Proxmox-Tools werden verfügbar.
Für die Passwort-Authentifizierung tauschen Sie die Token-Variablen gegen PROXMOX_PASSWORD aus.
Hinweis: Claude Desktop unter macOS wird über launchd gestartet und erbt nicht
~/.zprofile/~/.zshrc. Fügen Sie die Exporte entweder in~/.zshenvein oder greifen Sie auf einen Inline-"env": { ... }-Block in der Konfiguration zurück.
Konfiguration
Alle Einstellungen sind Umgebungsvariablen — legen Sie diese in Ihrem Shell-Profil fest, übergeben Sie sie inline an docker run -e oder deklarieren Sie sie im env-Block Ihres MCP-Clients.
Variable | Standard | Beschreibung |
| — | Proxmox-Host (IP oder Hostname) |
|
| API-Benutzer |
Auth | — | |
|
| API-Port |
|
| TLS-Zertifikat verifizieren |
|
|
|
Authentifizierung: Token oder Passwort
Wählen Sie eines aus. Wenn beide gesetzt sind, hat das Token Vorrang.
Token (empfohlen) — Erstellung in der Proxmox-Benutzeroberfläche: Datacenter → Permissions → API Tokens → Add (deaktivieren Sie Privilege Separation). Dann:
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxPasswort (Fallback):
export PROXMOX_PASSWORD=your-passwordRisikostufen
PROXMOX_RISK_LEVEL schützt destruktive Vorgänge:
Stufe | Fügt hinzu |
| schreibgeschützte Tools |
| + start / stop / reboot / suspend / clone / create-snapshot |
| + delete-snapshot / rollback-snapshot |
Jeder privilegierte Aufruf wird in stderr protokolliert (ALLOW / DENY + Tool + Stufe).
Tools
Nodes (7)
Tool | Beschreibung |
| Alle Cluster-Nodes mit Status, CPU, Arbeitsspeicher, Betriebszeit auflisten |
| Detaillierte Node-Metriken (CPU, Arbeitsspeicher, Festplatte, Auslastung, Kernel) |
| Netzwerkschnittstellen auf einem Node |
| Physische Festplatten auf einem Node |
| Kürzliche Aufgaben auf einem Node |
| Status einer bestimmten Aufgabe nach UPID |
| Protokollausgabe einer Aufgabe |
QEMU-VMs (14)
Tool | Stufe | Beschreibung |
| read | Alle VMs auflisten, optional nach Node filtern |
| read | Aktueller VM-Status (läuft/gestoppt, CPU, Arbeitsspeicher) |
| read | VM-Konfiguration (Hardware, Festplatten, Netzwerk) |
| read | Alle Snapshots einer VM auflisten |
| lifecycle | Eine VM starten |
| lifecycle | Eine VM zwangsweise stoppen |
| lifecycle | Sanftes ACPI-Herunterfahren mit Timeout |
| lifecycle | Neustart über ACPI |
| lifecycle | Eine VM anhalten |
| lifecycle | Eine angehaltene VM fortsetzen |
| lifecycle | Vollständiger oder verknüpfter Klon |
| lifecycle | Einen Snapshot erstellen |
| all | Einen Snapshot löschen |
| all | Auf einen Snapshot zurücksetzen |
LXC-Container (11)
Tool | Stufe | Beschreibung |
| read | Alle LXC-Container auflisten, optional nach Node filtern |
| read | Aktueller Container-Status |
| read | Container-Konfiguration |
| read | Alle Snapshots auflisten |
| lifecycle | Einen Container starten |
| lifecycle | Einen Container zwangsweise stoppen |
| lifecycle | Sanftes Herunterfahren mit Timeout |
| lifecycle | Einen Container neu starten |
| lifecycle | Einen Snapshot erstellen |
| all | Einen Snapshot löschen |
| all | Auf einen Snapshot zurücksetzen |
Speicher (2)
Tool | Beschreibung |
| Speicherpools mit Auslastung, optional nach Node filtern |
| Inhalte eines Speicherpools (ISOs, Backups, Images, Vorlagen) |
Cluster (4)
Tool | Beschreibung |
| Cluster-Integrität, Quorum, Node-Mitgliedschaft |
| Alle Ressourcen (VMs, Container, Speicher, Nodes) |
| Konfigurierte Backup-Jobs |
| Nächste verfügbare VM/Container-ID |
Architektur
src/proxmox_mcp/
├── server.py # FastMCP instance + entry point
├── config.py # Pydantic Settings (PROXMOX_ prefix)
├── client.py # Proxmoxer connection via lifespan
└── tools/ # nodes, vms, containers, storage, clusterStandardmäßig schreibgeschützt — privilegierte Tools durch
PROXMOX_RISK_LEVELgeschütztEinzelne Verbindung — Proxmoxer-Client wird einmal beim Start erstellt und über die Lebensdauer geteilt
Rohe JSON-Ausgabe — keine Formatierung; das LLM verarbeitet die Daten direkt
Entwicklung
Standalone ausführen (Testen)
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
docker run -i --rm \
-e PROXMOX_HOST -e PROXMOX_USER \
-e PROXMOX_TOKEN_NAME -e PROXMOX_TOKEN_VALUE \
ghcr.io/akmalovaa/proxmox-mcp:latestOhne Docker (UV)
git clone https://github.com/akmalovaa/proxmox-mcp.git && cd proxmox-mcp && uv syncMCP-Client-Konfiguration:
{
"mcpServers": {
"proxmox": {
"command": "uv",
"args": ["run", "--directory", "/path/to/proxmox-mcp", "proxmox-mcp"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_NAME": "mcp",
"PROXMOX_TOKEN_VALUE": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}
}Aus Quellcode bauen
git clone https://github.com/akmalovaa/proxmox-mcp.git
cd proxmox-mcp
docker build -t proxmox-mcp .Lizenz
MIT
Maintenance
Latest Blog Posts
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/akmalovaa/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server