v1.0.0 (beta) — Horizon VDI intelligent operations (27 MCP tools)
vmware-vdi is the 14th skill in the VMware skill family — AI-powered intelligent operations for VMware / Omnissa Horizon VDI through the Horizon 8 Connection Server REST API. MCP server + full CLI parity.
Why it exists
Every other family skill stops at the vCenter VM. A Horizon desktop pool sits on those VMs — so vmware-aiops can reset the backing VM, but it can't see a user session, log a user off, disable a pool, or push a golden image. This skill fills that day-2 VDI gap with the family's governed-ops harness.
27 MCP tools (16 read / 11 write) + CLI
- Sessions — list/get, logoff, disconnect, send-message (help-desk core)
- Machines — list/get, reset, enter/exit maintenance, remove
- Pools — list/get, enable/disable, push-image (recreates every desktop — highest blast radius in the family; preview states affected-desktop + in-session-user counts)
- Monitoring & statistics — one-glance health, session concurrency stats, pool utilization, audit events
- Catalog & access — RDS farms, application pools, instant-clone images, AD search, entitlement list/add/remove
- Tasks — pool-scoped task status + cancel (image push / provisioning)
Governance
Every write routes through @vmware_tool/@guarded → ~/.vmware/audit.db; destructive CLI writes preview blast radius + double-confirm + --dry-run; Connection-Server text is sanitize()d; authorization is delegated to the Horizon admin role (a read-only role refuses writes at the server, un-bypassably).
Friendly onboarding
vmware-vdi init connects to a Connection Server and discovers your pools, machines, and sessions with next-step hints.
Install
uv tool install vmware-vdi && vmware-vdi initSupported
Horizon 8.x (primary) + latest Omnissa Horizon (2406/2412+) — same /rest/v1 API.
⚠️ Beta caveat
REST endpoints are verified against the official Horizon Server API operation index. GET-response field names and a few write bodies are defensive (.get() fallbacks) and pending validation against a live Connection Server — a field-name mismatch yields empty results, not a crash. First real-Horizon use should run vmware-vdi init and confirm the session/machine/pool projections; please file an issue with raw *_get output if a projection looks empty.
Quality: 32 regression tests, ruff clean, bandit 0 issues, two rounds of adversarial code review, tool endpoints pinned to a verified spec set.
Install: uv tool install vmware-vdi · PyPI · MIT