hyperv-console-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HYPERV_MCP_LAB_ROOT | No | Directory confining lab package sources. | |
| HYPERV_MCP_ALLOWED_VMS | No | Explicit VM allowlist required for mutations, e.g. 'NORTH-Test'. | |
| HYPERV_MCP_ALLOW_GUEST | No | Capability flag allowing PowerShell Direct guest operations. Read-only mode uses 'false'. | false |
| HYPERV_MCP_ALLOW_MEDIA | No | Capability flag allowing media mount/eject operations. Read-only mode uses 'false'. | false |
| HYPERV_MCP_ALLOW_POWER | No | Capability flag allowing power actions. Read-only mode uses 'false'. | false |
| HYPERV_MCP_ALLOW_CONSOLE | No | Capability flag allowing console input operations. Read-only mode uses 'false'. | false |
| HYPERV_MCP_EVIDENCE_ROOT | No | Directory confining lab evidence downloads. | |
| HYPERV_MCP_ALLOW_DEBUGGER | No | Capability flag allowing debugger preparation operations. Read-only mode uses 'false'. | false |
| HYPERV_MCP_ALLOW_CHECKPOINTS | No | Capability flag allowing checkpoint operations. Read-only mode uses 'false'. | false |
| HYPERV_MCP_ALLOW_SCREENSHOTS | No | Capability flag allowing screenshot capture. Read-only mode uses 'false'. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hyperv_host_statusA | Read Hyper-V host and service health. |
| vm_listA | List VMs visible through the optional allowlist. |
| vm_getA | Get VM state, devices, memory, network, and checkpoint count. |
| vm_waitA | Poll until a VM reaches one of the requested states. Returns matched=false on timeout and never changes power state. |
| vm_powerA | Start, gracefully shut down, save, pause, resume, forcibly turn off, or reset a VM. turn_off/reset require confirm_vm equal to vm_name. Requires ALLOW_POWER and an allowlist. |
| checkpoint_listB | List checkpoint IDs, names, parents, and creation times. |
| checkpoint_createB | Create a manual checkpoint. Requires ALLOW_CHECKPOINTS and an allowlist. |
| checkpoint_restoreA | Restore a checkpoint, discarding later guest state. confirm_vm and confirm_snapshot_id must match exactly. |
| checkpoint_deleteA | Delete one checkpoint and merge its disks. Child checkpoints are not recursively included. Requires exact confirmations. |
| guest_statusA | Read guest OS, boot time, memory, system-drive free space, and kernel debug settings through PowerShell Direct. |
| guest_processesA | List up to 200 guest processes, optionally filtered by process name. Requires ALLOW_GUEST and guest credentials. |
| guest_servicesA | List up to 200 guest services filtered by name; stopped services are excluded by default. |
| guest_eventsB | Read recent System, Application, Security, or Setup event records with optional event ID and level filters. |
| guest_execB | Run PowerShell in the guest through PowerShell Direct. Credentials come only from the server environment. Returns combined output, exit code, and truncation status. A host-side timeout may leave the guest command running. |
| guest_read_fileA | Read an absolute guest file path as base64, with SHA-256. Default limit 64 KiB; maximum 8 MiB. For large files, request bounded chunks through the lab APIs rather than inflating model context. |
| guest_write_fileA | Write base64 content to an absolute guest path. Existing files require overwrite=true and confirm_path equal to guest_path. |
| lab_initB | Install or verify fixed lab tools in C:\DriverLab and create package/run/evidence directories. Never executes a payload. Requires confirm_vm. |
| lab_diagnosticsB | Read guest boot, Secure Boot, VBS/HVCI, test-signing, debugger, disk, and crash-dump configuration. |
| lab_stageA | Stage a hash-verified package from a subdirectory of HYPERV_MCP_LAB_ROOT. Supports chunked large files and never executes staged content. |
| lab_verifyB | Re-verify all package files and the exact manifest SHA-256 in the guest without executing the package. |
| lab_collectB | Collect a new run's logs, events, diagnostics and dumps into HYPERV_MCP_EVIDENCE_ROOT. A kernel dump is opt-in; no new test is started. |
| events_snapshotB | Read recent operation lifecycle events from this MCP instance, without commands, passwords, typed text, or file contents. |
| console_infoB | Read guest video-head resolutions for mouse coordinate planning. |
| console_type_textA | Type printable ASCII, tab, CR, or LF through Msvm_Keyboard. Unicode/ABNT2 text is rejected; use guest_exec for Unicode and match the guest keyboard layout. No VMConnect focus is required. |
| console_press_keysB | Press and release a key chord (for example ['ctrl','s'] or ['enter']) using Hyper-V virtual-key codes. |
| console_key_stateA | Explicitly press or release one supported key. Release held keys when finished; prefer console_press_keys for ordinary chords. |
| console_mouse_buttonsB | Set explicit left, right, and middle synthetic-mouse button states for drag operations. |
| console_batchA | Run up to 32 ordered text, key-chord, click, move, scroll, wait, or Ctrl+Alt+Delete actions. Stops at the first failure. |
| console_ctrl_alt_deleteB | Send the Hyper-V secure-attention sequence to the guest. |
| console_mouse_moveB | Move the synthetic mouse to absolute guest-display pixel coordinates, not host-window coordinates. |
| console_clickC | Click left, right, or middle. Optionally move to guest-display x/y first. |
| console_scrollC | Apply a relative synthetic-mouse wheel delta. Positive values normally scroll up. |
| media_listB | List VM DVD drives, mounted ISO paths, controller locations, generation, and power state. |
| media_mountA | Mount an existing host ISO in an existing VM DVD drive while the VM is Off, optionally making it first boot device. Never stops the VM automatically. Requires ALLOW_MEDIA and confirm_vm equal to vm_name. |
| media_ejectA | Eject an existing VM DVD drive while the VM is Off. Requires ALLOW_MEDIA and confirm_vm equal to vm_name. |
| serial_statusB | Read COM1 configuration and whether this server has an attached serial-console reader. |
| serial_connectA | Attach a dedicated reader to the existing COM1 named pipe of a Running VM and append output to a local .log file. Requires ALLOW_DEBUGGER and confirm_vm; does not configure the port or guest. |
| serial_readA | Read the retained tail of an attached serial console. Requires ALLOW_DEBUGGER. |
| serial_sendB | Write UTF-8 text to an attached COM1 serial console, with CRLF appended by default. |
| serial_disconnectA | Detach this server's serial reader and close its pipe handle without changing the VM COM port. |
| debug_serial_statusB | Read Hyper-V COM port debug configuration and local WinDbg/KDNET availability. |
| debug_serial_prepareA | Configure COM1 kernel debugging over a local named pipe while the VM is Off. Guest BCD settings are a separate Running-VM operation. Never stops or reboots automatically. Requires ALLOW_DEBUGGER and confirm_vm. |
| debug_guest_prepareA | Enable fixed COM1/115200 guest BCD debugging through PowerShell Direct while the VM is Running. Requires ALLOW_DEBUGGER, guest credentials, and confirm_vm. A deliberate later reboot is required. |
| console_screenshotA | Experimental PNG capture of an existing visible VMConnect window in the MCP server's interactive session. It does not read the guest framebuffer. Requires ALLOW_SCREENSHOTS and an allowlist. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 44 tools
Most tools target distinct Hyper-V objects and actions, with category prefixes that help separate VM, checkpoint, guest, console, media, serial, debug, and lab operations. A few boundaries could still confuse an agent, such as guest_status versus lab_diagnostics, console_key_state versus console_press_keys, and serial_status versus debug_serial_status, but descriptions generally clarify them.
Names consistently use snake_case and mostly follow a domain-prefixed action pattern such as vm_list, checkpoint_create, guest_exec, media_mount, and console_click. Minor deviations like hyperv_host_status and events_snapshot exist, but the overall convention is readable and predictable.
At 44 tools, the surface is heavy for a single MCP server and spans many subdomains: VM lifecycle, checkpoints, guest OS access, console input, media, serial, debugging, and lab workflows. While each tool may be useful, the count is well above a well-scoped set and raises selection overhead.
The server covers a broad lifecycle: VM listing/status/power/wait, checkpoints, guest execution and files, console control, media mounting, serial access, debugging, and lab evidence collection. Some notable gaps remain, such as VM creation/deletion/cloning and virtual network/switch management, but most core lab-console workflows are covered.