Smart hands for your AI agents - write-capable KVM+BMC+SSH MCP server: gated, verified, audited.
Connect Runs on your machine
claude mcp add kvm-pilot -e KVM_PILOT_PROFILE=<KVM_PILOT_PROFILE> -e KVM_PILOT_MCP_READ_ONLY=<KVM_PILOT_MCP_READ_ONLY> -e KVM_PILOT_MCP_DRY_RUN=<KVM_PILOT_MCP_DRY_RUN> -e KVM_PILOT_MCP_ALLOW_POWER=<KVM_PILOT_MCP_ALLOW_POWER> -e KVM_PILOT_HOST=<KVM_PILOT_HOST> -e KVM_PILOT_USER=<KVM_PILOT_USER> -e KVM_PILOT_PASSWD=<KVM_PILOT_PASSWD> -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> -- uvx kvm-pilot==1.0.1
{
"mcpServers": {
"kvm-pilot": {
"command": "uvx",
"args": [
"kvm-pilot==1.0.1"
],
"env": {
"KVM_PILOT_PROFILE": "<KVM_PILOT_PROFILE>",
"KVM_PILOT_MCP_READ_ONLY": "<KVM_PILOT_MCP_READ_ONLY>",
"KVM_PILOT_MCP_DRY_RUN": "<KVM_PILOT_MCP_DRY_RUN>",
"KVM_PILOT_MCP_ALLOW_POWER": "<KVM_PILOT_MCP_ALLOW_POWER>",
"KVM_PILOT_HOST": "<KVM_PILOT_HOST>",
"KVM_PILOT_USER": "<KVM_PILOT_USER>",
"KVM_PILOT_PASSWD": "<KVM_PILOT_PASSWD>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
{
"mcpServers": {
"kvm-pilot": {
"command": "uvx",
"args": [
"kvm-pilot==1.0.1"
],
"env": {
"KVM_PILOT_PROFILE": "<KVM_PILOT_PROFILE>",
"KVM_PILOT_MCP_READ_ONLY": "<KVM_PILOT_MCP_READ_ONLY>",
"KVM_PILOT_MCP_DRY_RUN": "<KVM_PILOT_MCP_DRY_RUN>",
"KVM_PILOT_MCP_ALLOW_POWER": "<KVM_PILOT_MCP_ALLOW_POWER>",
"KVM_PILOT_HOST": "<KVM_PILOT_HOST>",
"KVM_PILOT_USER": "<KVM_PILOT_USER>",
"KVM_PILOT_PASSWD": "<KVM_PILOT_PASSWD>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
{
"servers": {
"kvm-pilot": {
"type": "stdio",
"command": "uvx",
"args": [
"kvm-pilot==1.0.1"
],
"env": {
"KVM_PILOT_PROFILE": "<KVM_PILOT_PROFILE>",
"KVM_PILOT_MCP_READ_ONLY": "<KVM_PILOT_MCP_READ_ONLY>",
"KVM_PILOT_MCP_DRY_RUN": "<KVM_PILOT_MCP_DRY_RUN>",
"KVM_PILOT_MCP_ALLOW_POWER": "<KVM_PILOT_MCP_ALLOW_POWER>",
"KVM_PILOT_HOST": "<KVM_PILOT_HOST>",
"KVM_PILOT_USER": "<KVM_PILOT_USER>",
"KVM_PILOT_PASSWD": "<KVM_PILOT_PASSWD>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
KVM_PILOT_PROFILEOptional | Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to target |
KVM_PILOT_MCP_READ_ONLYOptional | Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1) |
KVM_PILOT_MCP_DRY_RUNOptional | Rehearsal posture: destructive calls are logged, never sent (set to 1) |
KVM_PILOT_MCP_ALLOW_POWEROptional | Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE) |
KVM_PILOT_HOSTOptional | Device address (KVM/BMC) when not using a config-file profile |
KVM_PILOT_USEROptional | Device username when not using a config-file profile |
KVM_PILOT_PASSWDOptional, secret | Device password when not using a config-file profile (KVM_PILOT_HOST / KVM_PILOT_USER accompany it) |
ANTHROPIC_API_KEYOptional, secret | Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 23 Oct 2026 |
| Last updated | 23 Oct 2026 |
| Registry name | io.github.DustinTrap/kvm-pilot |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
