{
  "markdown": "# Desktop Hypervisor MCP\n\nOne provider-neutral MCP server for the desktop hypervisors: **VirtualBox**,\n**VMware Fusion**, and **VMware Workstation**. Nine tools, ~1,800 context\ntokens, full coverage of what its two predecessor servers did in ~5,600.\n\nIt succeeds [virtualbox-mcp-server](../../tree/predecessor-virtualbox) (that\nhistory is preserved on the `predecessor-virtualbox` branch) and the never-\nreleased vmware-fusion-mcp-server, folding both into one capability-based\nsurface.\n\n**Versioning note:** stable releases of this server start at **v2.0.0**. The\nv1.x line (and its `v1.0.0` release, kept for anyone still pinning it) belongs\nto the virtualbox-only predecessor; the 0.x tags were this server's pre-stable\niterations. v2.0.0 is identical in content to v0.4.3, re-versioned as the\nstable line.\n\n## Design\n\n- **Capability-based, not lowest-common-denominator.** Providers advertise\n  what they can actually do (`provider action=list`): guest exec, OVA\n  import/export, linked clones, pre-boot guestinfo injection, DHCP-lease IP\n  discovery, ISO mastering… Unsupported operations fail by naming the missing\n  capability, not with a provider error.\n- **Intent, not mechanism.** \"Ensure the cluster nodes share a network the\n  host can reach\" is expressible on both families; \"create a host-only\n  interface\" is not. The neutral tools express intent; provider-native\n  mechanism stays reachable, unabstracted, through `execute_command`.\n- **Artifacts resolve per provider.** The same image name gives each\n  hypervisor the artifact it can actually import — Talos's `vmware-*.ova` vs\n  `virtualbox-*.ova`, Vagrant's `vmware_desktop` vs `virtualbox` boxes,\n  Microsoft's per-hypervisor dev VM — keyed on (image, provider family, host\n  arch).\n\n## Tools\n\n| Tool | Actions |\n|------|---------|\n| `provider` | list — installed hypervisors with status, capabilities, formats, and remediation when not ready |\n| `artifact` | catalog, resolve, fetch (dry_run) — verified downloads of official OS images, per provider |\n| `vm_lifecycle` | create, start, stop, suspend, reset, delete, clone, import, export |\n| `vm_info` | list, running, show, ip (in-guest tools, else DHCP leases by MAC — works for agentless guests like Talos) |\n| `vm_config` | resources, nested_virt, attach_iso, guestinfo (pre-boot key/value injection, VMware) |\n| `snapshot` | take, restore, delete, list (tree) |\n| `guest` | exec, script, copy_in, copy_out, screenshot |\n| `network` | ensure_cluster_network, expose_guest_port, make_iso, repack_iso |\n| `execute_command` | raw `VBoxManage` / `vmrun` argv on the selected provider |\n\nWith one hypervisor installed it is selected automatically; with several, the\nambiguity is surfaced, never guessed.\n\n## Image catalog\n\n`artifact action=catalog` lists maintained images: Talos (appliance and metal\nISO), Ubuntu (cloud image and Vagrant), Debian, Fedora, Rocky, Alma,\nopenSUSE, FreeBSD, Kali, TurnKey, the Windows dev VM, plus `vagrant:org/box`\npassthrough to the whole registry. Downloads are sha256-verified wherever the\npublisher provides a digest (GitHub release assets always do); unverified\nsources say so loudly. Vagrant boxes are fetched for the *right* provider and\nauto-extracted to their importable machine file. The cache lives in\n`~/.hypervisor-images` (`HV_IMAGE_DIR` overrides).\n\n## Prerequisites\n\n- VirtualBox (`VBoxManage`) and/or VMware Fusion / Workstation (`vmrun`).\n  Detection is per-call, so a hypervisor installed mid-session is picked up.\n- Nothing else: a single static Go binary, no Python, no Node.\n\nOptional, detected at runtime: `ovftool` enables OVA import/export on VMware;\n`xorriso` enables `repack_iso`.\n\n## Installing\n\nPublished on the [official MCP Registry](https://registry.modelcontextprotocol.io)\nas `io.github.bryanjbelanger/desktop-hypervisor-mcp` — that name is what\nregistry-aware clients install by. The registry has no per-server page yet, so\nthe listing itself is the API record:\n[current entry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.bryanjbelanger/desktop-hypervisor-mcp&version=latest).\n\nFor hosts that support MCP Bundles, download the `.mcpb` from the\n[latest release](https://github.com/bryanjbelanger/desktop-hypervisor-mcp/releases/latest)\nand open it — guest credentials and the image cache directory are prompted for\nin the host's own UI. One bundle covers every platform; it carries a binary per\n(os, arch) and picks one at startup, so it is ~16 MB.\n\nOtherwise take the bare binary for your platform from the same release, or\nbuild it:\n\n```bash\ngo build -o desktop-hypervisor-mcp .\n```\n\n## Registration with Claude Code\n\n```bash\nclaude mcp add --scope user hypervisor -- /path/to/desktop-hypervisor-mcp\n```\n\nGuest-operation credentials come from the server environment, never from\ntool parameters:\n\n```bash\nclaude mcp add --scope user hypervisor \\\n  --env HV_GUEST_USER=vagrant --env HV_GUEST_PASSWORD=vagrant \\\n  -- /path/to/desktop-hypervisor-mcp\n```\n\n(`VMRUN_GUEST_USER`/`VMRUN_GUEST_PASSWORD` are honored for compatibility.)\n\nThe server ships usage recipes in the MCP initialize handshake, generated\nfrom what was actually detected on the host — a session on a\nVirtualBox-only machine never pays context for VMware guidance.\n\n## Permissions\n\nPer-tool allowlisting in `.claude/settings.json` keeps prompts meaningful —\nread-only tools are safe to always-allow:\n\n```json\n{\n  \"permissions\": {\n    \"allow\": [\n      \"mcp__hypervisor__provider\",\n      \"mcp__hypervisor__vm_info\",\n      \"mcp__hypervisor__artifact\",\n      \"mcp__hypervisor__snapshot\"\n    ]\n  }\n}\n```\n\nKeep mutating tools (`vm_lifecycle`, `execute_command`) behind prompts\nunless you accept unattended VM mutation.\n\n## Bundled skills\n\n[`skills/`](skills/) contains workflow skills for Claude Code — procedures that\ncompose this server's tools across either hypervisor:\n[hv-vm](skills/hv-vm/SKILL.md) (provisioning),\n[hv-network](skills/hv-network/SKILL.md) (networks, guest reachability, seed ISOs),\n[hv-snapshot](skills/hv-snapshot/SKILL.md) (safety workflows),\n[hv-maintenance](skills/hv-maintenance/SKILL.md) (inventory & cleanup),\n[hv-transfer](skills/hv-transfer/SKILL.md) (clone/export/move).\nInstall by copying (or symlinking) into `~/.claude/skills/`. They supersede the\npredecessor's `vbox-*` skills.\n\n## Related projects\n\n- [talos-mcp-server](https://github.com/bryanjbelanger/talos-mcp-server) —\n  Talos/Kubernetes orchestration; consumes this server for node provisioning\n  and stays deliberately hypervisor-agnostic.\n",
  "bytes": 6502,
  "sha": "0630f9acf0f4c60266917ccbe277e36a6cb634b8e07c9244bece76f5fd70acb1",
  "repo_slug": "bryanjbelanger/desktop-hypervisor-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_bryanjbelanger_desktop_hypervi_1a376320/readme"
}