Skip to content

v1.0.0 (beta) — Horizon VDI intelligent operations (27 MCP tools)

Choose a tag to compare

@zw008 zw008 released this 31 Jul 12:43
· 29 commits to main since this release

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 init

Supported

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