kvm-auto-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KVM_AUTO_DEVICES | No | Path to the devices.toml fleet configuration file. Overrides the default location ~/.config/kvm-automation/devices.toml. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kvm_list_devicesA | List fleet devices: id, driver, label, capabilities, which is active. (read tier) |
| kvm_select_deviceA | Select the active device by id, host, or alias. Sends no input itself; required before other tools. (read tier) |
| kvm_statusA | Online/HDMI/resolution/HID state of the active device (plus ATX where wired). (read tier) |
| kvm_screenshotA | Capture the HDMI frame to a JPEG file. Read the returned path to see the screen; the image is never inlined. (read tier) |
| kvm_waitA | Wait, then return a fresh screenshot. Use during boots, installers, and Recovery instead of re-screenshotting in a loop. (read tier) |
| kvm_pasteB | Type text on the target via HID. Blocks until the typing has landed, then returns a post-paste screenshot — safe to send Enter after it returns. (input tier) |
| kvm_keystrokeA | Send one KeyboardEvent.code keystroke (Enter, Escape, Tab, KeyR, F7...) with optional modifiers. Returns a post-key screenshot. (input tier) |
| kvm_mouseB | Move/click/scroll. Pass BOTH relative_x AND relative_y (0.0-1.0), or BOTH pixel_x AND pixel_y of the last screenshot. Mouse is the LAST resort; prefer keyboard. Returns a post-action screenshot. (input tier) |
| kvm_key_holdA | Hold keys down (GLKVM/PiKVM only; e.g. MetaLeft+KeyR across a Mac reboot). Pass hold_ms or call kvm_key_release; auto-releases after 25s. (input tier) |
| kvm_key_releaseA | Release held keys (all when omitted). GLKVM/PiKVM only. (input tier) |
| kvm_hid_modeA | Switch the mouse gadget: usb (absolute), usb_rel (relative; better in Mac Recovery), usb_hybrid. GLKVM/PiKVM only. (input tier) |
| kvm_atxC | ATX power. Needs the 'power' capability on the device and confirm=true; errors where ATX is unwired or the backend is TinyPilot. (power tier) |
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 12 tools
Most tools target clearly distinct actions (device selection, status, screenshots, individual input types, power), but kvm_wait and kvm_screenshot both return screenshots and could be confused if an agent does not read the timing distinction carefully. The other input tools are well-separated by their descriptions.
All tools share the kvm_ prefix and use lowercase snake_case, which provides a predictable family identity. However, some names are verb-led (wait, paste, keystroke) while others are noun-led (status, screenshot, mouse, atx), making the pattern slightly inconsistent.
Twelve tools is well within the ideal range and each tool maps to a necessary KVM workflow: device selection, status/screenshot, keyboard/mouse input, HID configuration, and ATX power. Nothing feels redundant or missing enough to bloat the surface.
The surface covers the core KVM lifecycle well: select a device, inspect status, capture the screen, send text/keys/mouse input, and control power. Minor gaps exist such as file transfer or remote media mounting, but for a KVM-focused server the main operational needs are addressed.