kvm-pilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KVM_PILOT_PROFILE | Yes | The name of the profile to use for the KVM device, as defined in the config file. | |
| KVM_PILOT_MCP_READ_ONLY | No | Set to 1 to enable read-only mode for the MCP server, restricting the agent to non-destructive operations. Recommended for initial setup. |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| infoC | Return device / system info (read-only). |
| healthcheckA | Audit the device's readiness/recovery, security posture, and firmware (#80). Read-only. Returns per-check findings with a tiered severity; a |
| capabilitiesA | List the capabilities the target's driver supports (read-only, offline). Structural — makes no network call and runs no preflight; it answers "which
tools/actions can this device serve?" so you can pick the right interface up
front (a Redfish BMC has no video; a PiKVM has no BootProgress). Returned in
the capability enum's declaration order for stable output. |
| support_matrixA | What has actually been exercised on real hardware, per device+firmware+capability (read-only, offline — no device call). Aggregated from the test-run ledger shipped in the package (the same data
behind the wiki Hardware-Compatibility page), with each combo's derived
maturity level (#98) joined from the shipped firmware registry. This is
EVIDENCE, not a guarantee: a capability listed in |
| doctrineA | Re-serve the bundled operating doctrine (read-only; offline, no device I/O). The skill's playbooks ship inside this package; this tool re-serves them so
a session that never loaded the skill file — or has long since compacted it
away — can re-anchor on the written doctrine instead of a faded memory of
it. Call with no |
| sessionA | Report this server's current operating posture (read-only; offline, no device I/O — answers even when the device is down). Call this after a context compaction, when resuming a long flow, or before
planning act calls: it names the target, dry-run/read-only state, which
effect gates are open (by class name only — opening one is operator-only,
out of band), the approval posture, any live standing approvals (#192) with
their scope and time left, the recent act journal, and the last
|
| power_stateB | Return whether the host is powered on, plus ATX detail where the driver has it (read-only). |
| logsA | Return the device/host event log as text (read-only).
|
| snapshotA | Capture the current KVM screen (read-only). Returns It also carries the live |
| classify_screenA | Classify the current screen's boot/run phase (read-only). Uses the server-side vision backend when configured; cheap on-device gates (power-off, no-signal, boot-progress, OCR rules) resolve with no credentials at all. Return shapes:
|
| wait_for_stateA | Wait (bounded) until the screen reaches a boot/run phase (read-only). Server-side twin of CLI |
| powerA | Change host power state. DESTRUCTIVE. Gated by the power effect gate + per-invocation approval (elicitation, or
|
| boot_optionsA | Show the host's current boot override (Redfish BootSourceOverride) — read-only. Reports |
| set_boot_deviceA | Set the next-boot (or persistent) boot device via BootSourceOverride. CONFIG MUTATION. Gated by the config effect gate + per-invocation approval; denials come
back through the same path with a typed |
| amt_enableA | Enable an Intel AMT redirection listener over WS-Man (Intel AMT/vPro only). CONFIG MUTATION.
|
| wakeA | Send a Wake-on-LAN magic packet to power the host on. POWER (soft). Gated by the power effect gate + per-invocation approval (typed same-path
denials, #234). |
| type_textA | Type Requires the operator to enable HID ( |
| press_keyA | Press a single key (a kvmd key code, e.g. Same gating as |
| send_shortcutA | Send a key chord — comma-separated kvmd key codes, e.g.
Gated by effect, not transport: a reboot/power chord (Ctrl+Alt+Del, Magic
SysRq) is classified |
| ctrl_alt_deleteA | Send Ctrl+Alt+Del to the managed host. DESTRUCTIVE. A reboot delivered over the keyboard — classified |
| mouseA | Move the mouse (and optionally click) on the host. DESTRUCTIVE (HID input). A click must carry the
|
| calibrate_mouseA | Measure and store this host's mouse commanded→observed correction (#128). Fixes "clicks where the button should be and misses". Pointer moves only —
no clicks, no keystrokes — but it visibly moves the live cursor ~10-30s,
so it is gated like HID input ( |
| list_virtual_mediaA | Inventory the KVM's virtual-media (MSD) storage (read-only). Check this BEFORE asking the operator to download or upload an ISO — the
image may already be on the device (#127). Returns stored images, the
selected image, and attach state ( |
| mount_isoA | Mount an ISO as virtual media on the host. GATED act (media effect gate); reversible.
|
| ejectA | Detach virtual media (the inverse of Needs |
| ssh_reachableA | Is the managed host's OS reachable over SSH? (read-only, in-band). Targets the host behind the KVM (its own
|
| ssh_execA | Run a command on the managed host's OS over SSH. DESTRUCTIVE / in-band. Gated by its own SSH effect gate (never the HID gate) + per-invocation
approval, with typed same-path denials (#234). |
| appliance_statusA | Read-only diagnostics from the KVM APPLIANCE's own OS over SSH. Targets the KVM appliance itself (its |
| appliance_rebootA | Reboot the KVM APPLIANCE (not the target) to clear a wedged encoder. DESTRUCTIVE. Recovers the RV1126 encoder wedge (the only fix — the stuck threads are unkillable kernel threads). Drops all KVM control for ~60s; the target's power is untouched. Gated by the appliance effect gate + per-invocation approval, with typed same-path denials (#234). There is no out-of-band power to the appliance, so use this deliberately, never in an automated loop. |
| access_pathsA | Which INDEPENDENT recovery paths are live for the device — the lockout view. Rolls up the REST API, appliance-SSH, target-SSH, out-of-band power, and
console-HID paths, each labeled by its failure domain so redundancy is not
oversold: several live paths that all ride the same appliance are ONE
independent domain. |
| eventsA | Collect typed device events from the kvmd stream (read-only, bounded). MCP twin of CLI |
| firmware_checkA | Report the device's firmware currency vs the bundled registry (read-only). The read half of |
| file_firmware_reportA | File the device's firmware-currency report as a GitHub issue when the
registry is behind (MCP twin of CLI The read/reconcile half always runs; registry current → nothing to file,
the result says so. Filing is gated as its own |
| ssh_discoverA | Scan a CIDR for hosts with an open SSH port. RISKY — opt-in. An active network scan: noisy, and only acceptable on networks the user owns or
is authorized to probe. Use it ONLY to help find a target whose address the user
doesn't know, after they confirm the range — never by default. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DustinTrap/kvm-pilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server