nandi-proxmox-mcp
NANDI Proxmox MCP
Verwandeln Sie Ihren Proxmox-Cluster in eine KI-gesteuerte Plattform mit über 140 Tools für Automatisierung, Überwachung und kontrollierte Ausführung.
Open-Source-MCP-Server für Proxmox VE, bereitgestellt von NANDI Services.
nandi-proxmox-mcp bietet Zugriff auf Proxmox-Bestände, Lebenszyklus, Speicher, Backups, Netzwerke, Firewalls, Zugriffskontrolle, Überwachung, SSH-Diagnose sowie geschützte Remote-/Container-Operationen, ohne die für Produktionscluster erforderlichen Sicherheitsvorkehrungen zu entfernen.
Was aktiviert bleibt
Über 140 Tools für Knoten, Cluster, QEMU, LXC, Speicher, Backups, Aufgaben, Netzwerk, Firewall, Pools, Zugriff, Vorlagen, Überwachung und Remote-Operationen.
Zugriffsebenen:
read-only,read-execute,full.Modulaufteilung:
PVE_MODULE_MODE=core|advanced.Tool-Filter:
PVE_CATEGORIES,PVE_TOOL_BLACKLIST,PVE_TOOL_WHITELIST.Sicherheitsvorkehrungen für destruktive Aktionen via
confirm=true.Abwärtskompatible Aliase wie
listNodes,getVMStatus,startVM,stopContainer.stdio-Transport für MCP-Clients und Streamable-HTTP-Transport für kontrollierte Remote-Bereitstellungen.
Erforderliche Berechtigungen
Der Server benötigt zwei Vertrauenskanäle, die beide bewusst beibehalten werden:
Proxmox-API-Token
Wird für Bestands-, Lebenszyklus-, Konfigurations- und Verwaltungsendpunkte verwendet.
Halten Sie ACLs minimal: Erteilen Sie nur die Rollen, die für die tatsächlich aktivierten Tools erforderlich sind.
SSH-Batch-Zugriff auf den Proxmox-Host
Erforderlich für
pct exec, Batch-SSH-Diagnosen und Docker-Inspektionstools auf Containerebene.Dies ist weiterhin notwendig, da die Proxmox-API-Abdeckung die hostseitigen
pct- und SSH-basierten Diagnosen nicht ersetzt.
Weitere Details: docs/PERMISSIONS.md
Bestätigung destruktiver Aktionen
Als destruktiv markierte Operationen werden nicht ausgeführt, es sei denn, der Aufrufer sendet confirm=true.
Beispiele:
VM/Container stoppen, herunterfahren, neu starten, anhalten, löschen, migrieren, Snapshot-Rollback
Schreibzugriffe auf Speicher/Netzwerk/Firewall/Zugriff, die den Cluster-Status ändern können
Erweiterte Remote-Ausführung wie
pve_exec_in_container
Der Server gibt einen strukturierten CONFIRMATION_REQUIRED-Fehler zurück, wenn die Bestätigung fehlt. Dieses Verhalten ist unverändert und verstärkt.
Zugriffsebenen
read-onlyBestand, Status, Protokolle, Metriken und nicht-mutierende Diagnosen.
read-executeNur-Lese-Zugriff plus ausgewählte Ausführungs-/Lebenszyklusaktionen.
fullErstellen, Aktualisieren, Löschen, Migrieren, Wiederherstellen und Operationen auf Admin-Ebene.
PVE_MODULE_MODE=core verbirgt erweiterte Tools, ohne die kanonischen Tool-IDs im Codebase umzubenennen oder zu entfernen.
Laufzeitkonfiguration
Umgebungsvariablen
Erforderlich:
PROXMOX_HOSTPROXMOX_USERPROXMOX_REALMPROXMOX_TOKEN_NAMEPROXMOX_TOKEN_SECRETPROXMOX_SSH_HOSTPROXMOX_SSH_USERPROXMOX_SSH_KEY_PATH
Optional:
PROXMOX_PORTStandard8006PROXMOX_SSH_PORTStandard22PROXMOX_ALLOW_INSECURE_TLSStandardfalsePVE_ACCESS_TIER=read-only|read-execute|fullPVE_MODULE_MODE=core|advancedPVE_CATEGORIESPVE_TOOL_BLACKLISTPVE_TOOL_WHITELIST
HTTP-Transport:
MCP_TRANSPORT=stdio|httpMCP_HOSTStandard0.0.0.0MCP_PORTStandard3000MCP_ALLOWED_HOSTSMCP_ALLOWED_ORIGINSMCP_RATE_LIMIT_WINDOW_MSMCP_RATE_LIMIT_MAXMCP_MAX_BODY_SIZE_BYTESMCP_HEADERS_TIMEOUT_MSMCP_REQUEST_TIMEOUT_MSMCP_KEEPALIVE_TIMEOUT_MSMCP_MAX_HEADERS_COUNT
Lokale Konfigurationsdatei
Das Setup schreibt .nandi-proxmox-mcp/config.json und .vscode/mcp.json.
Der Konfigurations-Loader lehnt nun ab:
leere oder fehlerhafte Konfigurationspfade
zu große Konfigurationsdateien
Steuerzeichen in Konfigurationspfaden
Schnellstart
Geführtes Setup:
npx nandi-proxmox-mcp setup
npx nandi-proxmox-mcp doctor --check mcp-config,nodes,vms,cts,node-status,remote-opDirekter Start mit Umgebungsvariablen:
$env:PROXMOX_HOST="pve.local"
$env:PROXMOX_PORT="8006"
$env:PROXMOX_USER="svc_mcp"
$env:PROXMOX_REALM="pve"
$env:PROXMOX_TOKEN_NAME="nandi-mcp"
$env:PROXMOX_TOKEN_SECRET="<SECRET>"
$env:PROXMOX_SSH_HOST="pve.local"
$env:PROXMOX_SSH_USER="root"
$env:PROXMOX_SSH_KEY_PATH="$env:USERPROFILE\.ssh\id_ed25519"
npx nandi-proxmox-mcp runSicherheitsmodell & Restrisiko
Dieser MCP-Server betreibt echte Proxmox-Infrastruktur und ist keine Sandbox-Umgebung.
Vertrauensannahmen
Der Server wird in einer vertrauenswürdigen Umgebung bereitgestellt
Nur autorisierte Bediener haben Zugriff
Die Netzwerkkonfiguration ist kontrolliert (nicht öffentlich zugänglich)
Anmeldedaten werden sicher verwaltet
Restrisiken
Die folgenden Risiken sind dem Systemdesign inhärent:
Privilegierte Operationen Die volle Zugriffsebene und die Möglichkeiten zur Containerausführung können destruktive oder systemweite Aktionen ausführen.
SSH-Ausführungsgrenze Die Remote-Befehlsausführung basiert auf SSH und erbt die Sicherheitslage des Zielsystems.
Optionaler unsicherer TLS-Modus Wenn aktiviert (
PROXMOX_ALLOW_INSECURE_TLS=true), wird die TLS-Zertifikatsvalidierung umgangen, was Verbindungen für MITM-Angriffe anfällig machen kann. Nur für Laborzwecke gedacht.Synchronisation externer Abhängigkeiten Die Paketverteilung und die Sichtbarkeit der Auflistung hängen von npm, der MCP-Registry und den Propagierungszeiten des Marktplatzes ab.
Sicherheitsverantwortlichkeiten
Benutzer sind verantwortlich für:
Die Beschränkung des Zugriffs auf vertrauenswürdige Bediener
Die Verwendung von API-Token und SSH-Schlüsseln mit minimalen Berechtigungen
Das Vermeiden von unsicherem TLS in Produktionsumgebungen
Die ordnungsgemäße Sicherung der zugrunde liegenden Infrastruktur
Implementierte Sicherheitskontrollen
Zugriffsebenen (read-only, read-execute, full)
Bestätigung für destruktive Operationen erforderlich
Eingabevalidierung und Befehlshärtung
Ratenbegrenzung und Anforderungsvalidierung
HTTP-Härtung
Wenn MCP_TRANSPORT=http aktiviert ist, wendet der Server nun Folgendes an:
Durchsetzung einer Host-Allowlist, einschließlich Schutz vor Wildcard-Bindungen
Ursprungsvalidierung für Anfragen, die einen
Origin-Header sendenExplizite Limits für die Body-Größe und bereinigte
413-AntwortenRatenbegrenzung auf
/mcpTimeouts für Anfragen/Header/Keep-Alive
X-Content-Type-Options: nosniffCache-Control: no-storeBereinigte Fehler-Payloads ohne Stack-Traces
Health/Readiness-Endpunkte:
GET /healthGET /readyPOST /mcp
SSH- und Befehlsausführungshärtung
Die Funktionalität ist unverändert, aber der Ausführungspfad ist strenger:
Die lokale Befehlsausführung verwendet weiterhin
spawn(..., { shell: false })SSH-Host/Benutzer-Werte können keine CLI-Optionen einschleusen
SSH verwendet
BatchMode,IdentitiesOnly, Public-Key-Authentifizierung und explizite Kontrollen für die VerbindungslebendigkeitAusgabepuffer sind begrenzt, um unbegrenztes Speicherwachstum zu verhindern
dockerLogsInContainervalidiert und maskiert nun Containernamen, anstatt rohe Benutzereingaben zu interpolierenDie willkürliche Ausführung von Container-Befehlen bleibt nur über den bereits destruktiven
pve_exec_in_container-Ablauf mit erforderlicher Bestätigung verfügbar
Sicherheitslage
Mitigationen im Repo:
Fixierte direkte Abhängigkeitsversionen und npm
overridesfür kritische transitive PaketeÜberprüfbare Paketmetadaten und Repository-Links für npm/Paket-Scanner
Validierung der Deskriptor-/Versionssynchronisierung für npm, Registry und Marktplatz-Artefakte
Schwärzung von Token-/Header-/Passwort-ähnlichen Werten in Protokollen
Keine Stack-Traces oder Geheimnisse werden an Clients zurückgegeben
CI-Gates für Lint, Typecheck, Build, Tests, Metadatenvalidierung, Deskriptor-Sync,
npm pack --dry-runund Audit
Bedrohungsmodell und Restrisiken: docs/THREAT_MODEL.md
Veröffentlichungsablauf
Die Release-Reihenfolge ist strikt:
npm run lintnpm run typechecknpm run buildnpm testnpm audit --include=dev --audit-level=moderatenpm ls expressnpm ls path-to-regexpnpm pack --dry-runnpm packnpm whoaminpm publish --access publicnpm view nandi-proxmox-mcp versionmcp-publisher validate .mcp/server.jsonmcp-publisher publish .mcp/server.json
Das tag-basierte release.yml veröffentlicht nun zuerst npm und erst danach den MCP-Registry-Deskriptor, um eine Drift zwischen npm und Registry bei derselben Version zu verhindern.
Manueller Fallback und Fehlerbehebung: docs/RELEASE.md
Entwicklung
npm ci
npm run lint
npm run typecheck
npm run build
npm test
npm run validate:release
npm pack --dry-runWartungsrichtlinie für Dokumentation
Dieses Repository erzwingt ein Pre-Commit-Gate für die Dokumentationssynchronisierung.
Bevor ein
change,fixoderrefactorgeschlossen wird, ist zu prüfen, obREADME.md,AGENTS.mdundCONTRIBUTING.mdaktualisiert werden müssen.Wenn ein Dokument für die verhaltensbezogenen oder prozessualen Auswirkungen relevant ist, muss es im selben Änderungssatz aktualisiert werden.
Wenn kein Update erforderlich ist, ist eine explizite
no-doc-change-Begründung erforderlich.Eine Aufgabe gilt erst dann als bereit für den Commit, wenn dieses Gate erfüllt ist.
Dokumente
Registry und Marktplatz
npm:
https://www.npmjs.com/package/nandi-proxmox-mcpMCP Registry:
https://registry.modelcontextprotocol.io/MCP Marketplace-Eintrag:
https://mcp-marketplace.io/server/io-github-nandi-services-nandi-proxmox-mcp
Lizenz
MIT. Siehe LICENSE.
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.
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/NANDI-Services/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server