Skip to main content
Glama
sentania-labs

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-test

Die Live-Appliance-Stufe wird übersprungen, sofern ihre expliziten Schutzvariablen nicht bereitgestellt werden. Normale Tests verwenden nur synthetische VCF-Ops-Antworten.

Related MCP server: appd-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:local

In einem anderen Terminal:

curl --fail http://localhost:8000/healthz

Eine 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: "))'
exit

Fü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:

  1. 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.

  2. 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.

  3. Konfigurieren Sie den MCP-Client mit der Streamable-HTTP-URL http://localhost:8000/mcp/ und dem Header Authorization: Bearer <displayed-key>.

  4. Verwenden Sie list_targets, um zulässige Ziel-IDs zu entdecken, und rufen Sie dann ein Lesetool auf. VCF-Adapterargumente werden im arguments-Objekt dieses Tools übergeben.

  5. 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

/data

Laufzeit-SQLite-Datenbank mit Admin-Hash, Zielmetadaten, verschlüsselten Anmeldeinformationen und API-Schlüssel-Digests

/keys

Generiertes Sitzungsgeheimnis, Audit-Argument-Digest-Schlüssel, versionierter AES-256-GCM-Schlüsselbund und die einmalige Admin-Bootstrap-Datei

/audit

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.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to query and retrieve information about devices, fleets, events, and configurations managed by Flight Control through a safe integration layer supporting filtering and selector-based queries.
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server for AppDynamics that exposes 12 task-oriented tools to query applications, topology, metrics, snapshots, health rules, anomalies, events, alerting config, analytics events, and dependency maps via OAuth API-client credentials.
    12
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    14
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

View all MCP Connectors

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/sentania-labs/vcf-mcp'

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