vcf-ops-mcp
Sentania VCF Ops MCP (inoffiziell)
vcf-ops-mcp ist ein containerisierter, standardmäßig schreibgeschützter MCP-Server mit einer kleinen
Admin-Oberfläche für VCF Operations. Das aktuelle MVP stellt die implementierten Inventar-,
Metrik-, Alarm-, Report-Definitions-, Ziel- und Skills-Lesezugriffe über authentifiziertes
Streamable HTTP bereit. Jeder MCP-Toolaufruf durchläuft den dauerhaften Audit-Dispatcher.
Dies ist ein inoffizielles privates Laborprojekt. Es ist kein Broadcom- oder VMware-Angebot.
Testsuite ausführen
Python 3.12 oder höher ist erforderlich.
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-testDie Live-Appliance-Stufe wird übersprungen, sofern ihre expliziten Schutzvariablen nicht bereitgestellt werden. Normale Tests verwenden nur synthetische VCF-Ops-Antworten.
Related MCP server: afc-mcp
Container lokal bauen und starten
Der Dienst erstellt sein Sitzungssignierungsgeheimnis und den Schlüsselbund für Anmeldeinformationen
beim ersten Start auf dem /keys-Volume. Kein manuell erstelltes SESSION_SECRET ist erforderlich.
docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
--read-only \
--user 10001:10001 \
--security-opt no-new-privileges \
--cap-drop ALL \
-p 8000:8000 \
-e PUBLIC_BASE_URL=http://localhost:8000 \
-v vcf-ops-mcp-data:/data \
-v vcf-ops-mcp-keys:/keys \
-v vcf-ops-mcp-audit:/audit \
vcf-ops-mcp:localIn einem anderen Terminal:
curl --fail http://localhost:8000/healthzEine Bereitschaftsantwort ist HTTP 200 und meldet alle vier Abhängigkeiten als wahr:
audit_writable, configuration_ready, session_secret_persistent und
mcp_ready. Eine nicht verfügbare Audit-, Konfigurations-, Schlüssel- oder MCP-Abhängigkeit
hält den Prozess diagnostizierbar, gibt jedoch HTTP 503 zurück.
Die Laborbereitstellung besitzt ihr Image-Pinning und ihren Rollout. Die Referenz
deploy/compose.yml behält das externe docker-slots-Netzwerk
und dieselben drei persistenten Volumes bei, aber dieses Repository stellt es nicht bereit.
Laufzeitgeheimnisse durchlaufen niemals CI oder die Compose-Umgebung.
Erste Admin-Anmeldung
Der genehmigte Bootstrap-Pfad verwendet eine vom Betreiber bereitgestellte Passwortdatei. Der Dienst startet ohne sie gesund, aber die Admin-Ebene bleibt unzugänglich, bis die Datei existiert. Das Passwort muss mindestens 16 Bytes enthalten. Es wird mit scrypt in die Laufzeitdatenbank gehasht und die Bootstrap-Datei wird entfernt, wenn die erste Anmeldung das Konto initialisiert. Wenn diese Entfernung fehlschlägt, wiederholt eine spätere Anmeldung die Bereinigung, ohne das gespeicherte Admin-Passwort zu ändern.
Für den lokalen Container erstellen Sie die Datei, ohne das Passwort in den Shell-Verlauf oder in Prozessargumente zu legen:
docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exitFür den docker.int-Slot führt lab-admin dieselbe einmalige Operation über den normalen
administrativen Kanal des Hosts innerhalb des laufenden vcf-ops-mcp-web-Containers durch.
Der Deploy-Key kann und darf dies nicht ausführen, da seine erzwungene Befehls-Allowlist
exec absichtlich ausschließt. Dateipfad und -modus sind dieselben. CI erhält niemals das
Bootstrap-Passwort.
Öffnen Sie http://localhost:8000/admin/login, melden Sie sich als admin an, dann:
Registrieren Sie ein VCF-Ops-Ziel. Neue Ziele sind immer
read_only. Der Produktions-FQDN wird serverseitig erkannt und kann in diesem MVP niemals auf Aktionen umgestellt werden.Wählen Sie die erforderlichen implementierten Lese-Scopes und ein oder mehrere registrierte Ziele aus, und erstellen Sie dann einen MCP-API-Schlüssel. Der Klartextschlüssel wird einmal angezeigt. Nur sein SHA-256-Digest wird gespeichert.
Konfigurieren Sie den MCP-Client mit der Streamable-HTTP-URL
http://localhost:8000/mcp/und dem HeaderAuthorization: Bearer <displayed-key>.Verwenden Sie
list_targets, um zulässige Ziel-IDs zu entdecken, und rufen Sie dann ein Lesetool auf. VCF-Adapterargumente werden imarguments-Objekt dieses Tools übergeben.Prüfen Sie
/admin/audit, um die append-only Versuchs- und Enddatensätze zu sehen.
Die Produktion verwendet https://vcf-ops-mcp.int.sentania.net, das das Admin-Sitzungscookie
Secure hält. Lokales HTTP ist nur aktiviert, wenn PUBLIC_BASE_URL explizit http:// verwendet.
Persistente Daten und Wiederherstellung
Die drei Volume-Roots haben separate Aufgaben:
Volume-Pfad | Inhalt |
| Laufzeit-SQLite-Datenbank mit Admin-Hash, Zielmetadaten, verschlüsselten Anmeldeinformationen und API-Schlüssel-Digests |
| Generiertes Sitzungsgeheimnis, Audit-Argument-Digest-Schlüssel, versionierter AES-256-GCM-Schlüsselbund und die einmalige Admin-Bootstrap-Datei |
| Append-only SQLite-Audit-Ledger |
Sichern Sie /data, /keys und /audit als separate geschützte Artefakte. Der Verlust von
/keys bei verbleibenden verschlüsselten Zielaufzeichnungen ist absichtlich nicht wiederherstellbar.
Der Server weigert sich, den Schlüsselbund für Anmeldeinformationen über vorhandenen Chiffretext
neu zu generieren. Verwenden Sie für eine etablierte Bereitstellung nicht docker compose down -v.
Wenn ein Prozess nach dem Committen eines Audit-Versuchs, aber vor seinem Enddatensatz stirbt,
hängt der nächste Start outcome_unknown an. Er überschreibt niemals den Versuch oder erfindet
ein erfolgreiches Ergebnis.
MVP-Grenze
Geliefert:
Automatische dauerhafte
SESSION_SECRET-Generierung, mit einer expliziten Umgebungsüberschreibung für den direkten Prozessbetrieb.Dauerhafte verschlüsselte Zielkonfiguration, Bootstrap-Admin-Login, Scoped-API-Schlüssel-Mint und -Widerruf, Zielregistrierung und Audit-Anzeige.
Authentifiziertes Streamable HTTP mit den implementierten Lese-Adaptern, Zielerkennung und sowohl Skills-Tools als auch Skills-Ressourcen/Prompts. Skill-Inhalte über Ressourcen und Prompts erfordern dieselbe
read:skills-Fähigkeit wie die Skills-Tools; nur konkrete Ressourcen-Erkennung ist ohne sie verfügbar.Schreibgeschützte Zielhaltung, API-Schlüssel-Ziel-Allowlists, standardmäßig verweigerte implementierte Scopes, der Produktionsziel-Hard-Block, Antwortprojektion und -begrenzungen sowie dauerhaftes Pro-Tool-Audit.
Absichtlich verschoben:
Alle Aktionsausführung, aktionsfähige Schlüssel, Report-Läufe, Plan/Apply und asynchrones Task-Polling. Diese bleiben hinter dem menschlichen Phase-2-Gate.
Zielbearbeitung und Anmeldeinformationsrotation in der UI.
Download abgeschlossener Reports, da die Entwicklungs-Appliance keine abgeschlossenen Reports hat, ohne zuerst eine Report-Mutation auszuführen.
Externe Exposition, NSX, VCFA-Automatisierung, direkte vCenter-Tools und PII-Bereinigung.
Nicht-LOCAL-Authentifizierungsquellen-Erkennung. Der frühere willkürliche FQDN-Abruf wurde entfernt, da er eine SSRF-Grenze war, kein sicherer Erkennungsmechanismus.
Siehe docs/SPEC.md, die akzeptierten Aufzeichnungen in docs/decisions und docs/read-plane.md für den vollständigen Vertrag und gemessene VCF-Ops-Verhalten.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Read-only access to a Lumin project's logs, metrics, uptime checks, alerts and infrastructure.
Related MCP Servers
- AlicenseAqualityAmaintenanceRead-only MCP server for searching and aggregating logs from VMware Aria Operations for Logs (formerly vRealize Log Insight). Enables querying log events, aggregating with spike detection, and retrieving alert information.7179 PyPIMIT
- FlicenseNot gradedqualityBmaintenanceProvides read-only access to Aruba Fabric Composer inventory, network state, and VMware vCenter/vSphere visibility through MCP tools over streamable HTTP.-
- FlicenseNot gradedqualityCmaintenanceExposes VMware vROps resources, metrics, and alerts as MCP tools, allowing an LLM client to directly query monitored infrastructure.-
- AlicenseAqualityAmaintenanceProvides read-only, governance-audited operations for OLVM and oVirt 4.5 engines, enabling inventory, health, capacity, and diagnosis queries over MCP and CLI with audit logging and budget guards.18MIT