drumfire-proxmox-mcp
drumfire-proxmox-mcp
Ein Remote-MCP-Server, der es Claude ermöglicht, den DRUMFIRE-Proxmox-Cluster per Chat zu verwalten — Inventar, Energieverwaltung, Live-Konfigurationsänderungen, Erstellen/Klonen von VMs und Containern, Snapshots, Netzwerk-/Firewall-/Cluster-Sichtbarkeit, Ausführen von Befehlen innerhalb eines Gasts und das direkte Schreiben einer Datei auf das Dateisystem einer VM über den QEMU Guest Agent (hier verwendet, um den Net-Worth-Rechner auf VM 107 mit einem frischen Export aus Firefly III zu aktualisieren).
Es ist ein Cloudflare Worker, der auf dieselbe Weise bereitgestellt wird wie der bestehende Firefly-III-MCP-Server: Button klicken, ein paar Secrets setzen, als benutzerdefinierten Connector zu Claude hinzufügen.
Was er bewusst NICHT tut
Es gibt keine Lösch-Tools für VMs/Container/Datenträger/Snapshots und keine Rollback-Tools für Snapshots – kein „vorher fragen“, sondern schlicht nicht im Code vorhanden, sodass sie über diesen Server nicht einmal versehentlich passieren können.
Das heißt aber: Lies den Sicherheitshinweis unten. Da das Erstellen von VMs/Containern im Aufgabenbereich liegt, kann das zugrunde liegende Proxmox-Token technisch gesehen ebenfalls Löschungen vornehmen (Proxmox bündelt diese Berechtigungen) – die Garantie hier ist softwarebasiert (ein solches Tool existiert nicht, und Claude ist angewiesen, immer zu fragen, bevor etwas Destruktives geschieht), keine harte Mauer auf Credential-Ebene, wie es bei v1 dieses Servers der Fall war. Siehe „Sicherheitsmodell“ weiter unten.
Related MCP server: proxmox-mcp
Tools dieses Servers
Tool | Funktion |
| Cluster-Knoten und deren Status auflisten |
| QEMU-VMs / LXC-Container auf einem Knoten (oder allen Knoten) auflisten |
| Status einer VM/eines Containers |
| Energieverwaltung ( |
| Prüfen, ob der QEMU Guest Agent in einer VM läuft |
| Textinhalte über den Gast-Agenten an einen absoluten Pfad in einer beliebigen VM schreiben |
| Bequemer Wrapper um |
| Cluster-/Knotenintegrität und Quorum |
| Bridges/VLANs/Bonds eines Knotens |
| Schreibgeschützte Firewall-Regeln auf Rechenzentrums-/Knoten-/Gast-Ebene |
| Die tatsächlichen Live-IPs/Schnittstellen einer VM, die von innerhalb des Gasts gemeldet werden |
| Einen Befehl in einer VM ausführen (z. B. |
| Nächste freie VM-/Container-ID |
| Konfiguration von CPU, Speicher, Netzwerk, Datenträger-Anhängen usw. ändern |
| Datenträger vergrößern (Proxmox erlaubt über diese API nur das Vergrößern, nie das Verkleinern) |
| Eine neue VM / einen neuen LXC-Container erstellen |
| Eine vorhandene VM oder Vorlage klonen |
| Snapshots erstellen und auflisten (kein Rollback-/Lösch-Tool) |
Sicherheitsmodell
Tools für Energieverwaltung/Status/Konfiguration/Erstellung/Klonen/Snapshot-Erstellung: gelten als „fair game“ im Sinne deiner Abgrenzung und dürfen ohne vorherige Rückfrage ausgeführt werden – nichts hiervon ist inhärent destruktiv.
run_guest_command: führt aus, was ihm im Gast aufgetragen wird, gleichbedeutend mit SSH-/RDP-Zugriff. Gut für Diagnosen und Routineänderungen; Claude ist angewiesen, innezuhalten und bei dir nachzufragen, bevor im Gast etwas Destruktives oder Unumkehrbares passiert.Nichts in diesem Server löscht eine VM, einen Container, einen Datenträger oder einen Snapshot und führt bei ihnen kein Rollback durch. Das ist die eigentliche Absicherung, nicht die Berechtigungen des Proxmox-Tokens – siehe die Rolle unten, die sehr wohl
VM.Allocategewährt (erforderlich für das Erstellen, und Proxmox verwendet sie auch zum Löschen – es gibt keine Möglichkeit, das auf Berechtigungsebene zu trennen).
1. Ein Proxmox-API-Token mit begrenztem Umfang erstellen
Verwende kein Root-/Admin-Token. In der Proxmox-Web-UI:
Datacenter → Permissions → Roles → Create Name:
ClaudeHomelabOps. Berechtigungen:VM.Audit,VM.Monitor,VM.PowerMgmt,Sys.Audit,VM.Allocate,VM.Clone,VM.Snapshot,VM.Config.CPU,VM.Config.Memory,VM.Config.Disk,VM.Config.Network,VM.Config.Options,VM.Config.HWType,VM.Config.CDROM,VM.Config.Cloudinit.Schließt bewusst
VM.Snapshot.Rollbackaus (ein Rollback verwirft den aktuellen Datenträgerzustand – wirklich destruktiv) sowieVM.Backup/VM.Migrate/VM.Console(für nichts von dem nötig, was dieser Server tut). Wie oben erwähnt, istVM.Allocatefürcreate_vm/create_container/clone_vmerforderlich, und Proxmox verwendet es auch zum Löschen von Gästen – es gibt keine feinere Trennung auf Berechtigungsebene, daher stammt die „kann nicht löschen“-Garantie hier schlicht daher, dass dieser Server kein Lösch-Tool besitzt, nicht von den Berechtigungen des Tokens.Wenn du die härtere Garantie auf Credential-Ebene im Alltag lieber beibehalten und die Erstellung nur vorübergehend gewähren möchtest, kannst du stattdessen ein zweites, stärker eingeschränktes Token erstellen (dieselbe Rolle ohne
VM.Allocate/VM.Config.*) und umschalten, welches Secret dieser Worker verwendet, wenn du tatsächlich etwas erstellen/neu konfigurieren möchtest – die frühere Abwägungsfrage hat der Einfachheit halber standardmäßig ein Token gewählt, aber nichts hier erfordert das.Datacenter → Permissions → Users → Add einen dedizierten Benutzer hinzufügen, z. B.
claude-agent@pve(kein Passwort nötig, er authentifiziert sich ausschließlich über das API-Token).Datacenter → Permissions → Add → Pfad
/, Benutzerclaude-agent@pve, RolleClaudeHomelabOps.Datacenter → Permissions → API Tokens → Add → Benutzer
claude-agent@pve, Token-ID z. B.homelab-mcp. Lasse „Privilege Separation“ aktiviert und gewähre dem Token selbst dieselbe/→ClaudeHomelabOps-ACL. Kopiere die Token-ID (claude-agent@pve!homelab-mcp) und das Secret (wird nur einmal angezeigt) – du benötigst beides weiter unten.
2. Sicherstellen, dass der Gast-Agent der Net-Worth-Rechner-VM aktiviert ist
Die Tools write_vm_file / update_networth_calculator benötigen den QEMU Guest Agent, der in VM 107 (VM-OnPremTest) läuft:
Stelle im Tab Options der VM in Proxmox sicher, dass „QEMU Guest Agent“ aktiviert ist.
Installiere in der Windows-VM den Gast-Agent-Dienst, falls er noch nicht installiert ist (er ist auf der virtio-win-ISO als
qemu-ga-x86_64.msienthalten), und stelle sicher, dass der Windows-Dienst „QEMU Guest Agent“ läuft.Notiere, unter welchem Windows-Benutzerkonto der Datenordner der App liegt – der Gast-Agent-Dienst läuft als SYSTEM, daher benötigen Dateischreibvorgänge einen vollständigen absoluten Pfad, z. B.
C:\Users\<username>\Documents\net-worth\data.json, keinen relativen.
3. Bereitstellen
(Pushe dieses Repo zuerst auf GitHub und ersetze dann REPLACE_WITH_THIS_REPO_URL oben durch https://github.com/<you>/<repo> – GitHub erlaubt es dem Button nicht, auf sich selbst zu verlinken, bevor das Repo existiert.)
Ein Klick auf den Button forkt/verbindet das Repo mit Cloudflare Workers Builds und führt die Bereitstellung für dich aus. Nutzbar ist es aber noch nicht – siehe Schritt 4.
Manuelle Bereitstellung (Alternative zum Button)
npm install
npx wrangler secret put PROXMOX_TOKEN_ID
npx wrangler secret put PROXMOX_TOKEN_SECRET
npx wrangler secret put MCP_BEARER_TOKEN # any long random string you generate
npx wrangler deploy4. Nach der Bereitstellung die Secrets setzen
Egal, ob du den Button oder die CLI verwendet hast: Drei Secrets sind erforderlich und befinden sich bewusst nicht in diesem Repo (sie stehen nicht in wrangler.jsonc, was in Ordnung ist, da diese Datei öffentlich sein darf).
Secret | Wert |
|
|
| das Token-Secret (aus Schritt 1) |
| eine beliebige lange zufällige Zeichenkette, die du selbst erzeugst, z. B. |
Setze sie im Cloudflare-Dashboard unter deinem Worker → Settings → Variables and Secrets → Add → Encrypt oder über npx wrangler secret put <NAME>.
Überprüfe außerdem die normale (nicht geheime) Variable NETWORTH_VM_PATH in wrangler.jsonc – sie wird mit einem Platzhalter (C:\Users\CHANGE_ME\Documents\net-worth\data.json) ausgeliefert, der den echten Windows-Benutzernamen aus Schritt 2 benötigt. Bearbeite sie im Cloudflare-Dashboard auf derselben Seite Variables and Secrets (als Klartext-Variable, nicht als Secret) oder bearbeite wrangler.jsonc und stelle erneut bereit.
5. Als benutzerdefinierten Connector zu Claude hinzufügen
Füge in den Connector-Einstellungen von Claude einen benutzerdefinierten Connector hinzu, der auf Folgendes zeigt:
https://<your-worker-subdomain>.workers.dev/mcpDieser Worker prüft jede Anfrage auf Authorization: Bearer <MCP_BEARER_TOKEN>, bevor er irgendetwas tut – ohne diesen Header erhält jeder Tool-Aufruf eine 401. Falls deine Claude-Connector-Konfiguration das Anhängen eines benutzerdefinierten Headers/API-Keys erlaubt, setze diesen Header dort. Falls nicht, gibt es zwei Optionen:
Stattdessen eine Cloudflare Access-Richtlinie vor die Route des Workers setzen (empfohlen — das ist die Standardmethode, um einen persönlichen MCP-Endpunkt abzusichern, wenn der Client keinen benutzerdefinierten Header senden kann), oder
Als Fallback mit geringerer Sicherheit die Bearer-Token-Prüfung in
src/index.tsentfernen (fetch(), am Anfang der Funktion) und sich darauf verlassen, dass die URL des Workers selbst nicht erraten werden kann. Für alles, was Proxmox erreichen kann, ist das nicht zu empfehlen.
6. Ausprobieren
Sobald die Verbindung steht, sollten in einem Claude-Chat „liste die VMs auf drumfire03 auf“ oder „wie ist der Status von VM 107“ echte Daten zurückgeben. Für den Net-Worth-Workflow holt Claude Daten von Firefly III (bereits verbunden), erstellt das JSON, das der Rechner erwartet, und ruft update_networth_calculator mit diesem JSON als String auf.
Sobald das funktioniert, kannst du auch die neueren Tools ausprobieren — „prüfe den Zustand des Clusters“, „wie lautet die aktuelle IP von VM 107 gerade“, „klone VM-OnPremTest in eine Testkopie“, „gib der VM 4 Kerne“.
Hinweis zu Berechtigungen: Die genauen Anforderungen von Proxmox an Privilegien für Firewall-Regel- und einige Netzwerk-Lese-Endpunkte variieren je nach Version etwas, und die obige Rolle ist eine Best-Effort-Zuordnung, die nicht gegen deine spezifische Proxmox-Version getestet wurde. Wenn ein Tool-Aufruf mit einem 403 zurückkommt, enthält die Fehlermeldung die tatsächliche Antwort von Proxmox — die Lösung ist fast immer, ClaudeHomelabOps ein weiteres Privileg hinzuzufügen (in der Regel genügt es, erneut zu bestätigen, dass Sys.Audit auf / angewendet ist, nicht nur auf einen Unterpfad).
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables management of Proxmox VE infrastructure through natural language, providing 120+ tools to control virtual machines, containers, storage, cluster resources, users, and network configurations via the Proxmox API.10024MIT
- AlicenseAqualityCmaintenanceProvides tools to manage Proxmox VE clusters via Claude Code, enabling listing nodes, VMs, templates, power actions, and creation of LXC containers and VMs through the Proxmox REST API.1024MIT
- AlicenseBqualityCmaintenanceEnables Claude to manage Proxmox VE infrastructure — VMs, LXC containers, snapshots, storage, and more.372MIT
- AlicenseCqualityDmaintenanceEnables management of Proxmox VE environments, including VMs, containers, storage, and cluster operations through natural language.7648MIT
Related MCP Connectors
Read, edit, publish, and preview your pepita websites from Claude.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Drumfire01/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server