MCP server — let AI control any computer through KVM hardware. BIOS, login screens, and crashes included.
Project description
mcp-kvm
The only AI that can fix a crashed computer, not just use one.
An MCP (Model Context Protocol) server that lets Claude, Cursor, or any
MCP-compatible AI client control any computer through KVM hardware —
including BIOS/UEFI, remote power on/off, login screens, blue screens, and locked machines.
When Anthropic's Computer Use or OpenAI's Operator hit a locked screen and
give up, mcp-kvm keeps working.
Status: Alpha (v0.1) — software, BliKVM, and PiKVM adapters all functional. 13 MCP tools including screenshot, mouse, keyboard, and ATX power control.
Why KVM instead of a software agent?
| Scenario | Software agents (Computer Use, Operator, UFO) | mcp-kvm |
|---|---|---|
| Automate a logged-in desktop | ✅ | ✅ |
| Log in to a locked Windows machine | ❌ | ✅ |
| Fix a blue screen or boot loop | ❌ | ✅ |
| Control BIOS / UEFI settings | ❌ | ✅ |
| Work on a machine where you can't install software | ❌ | ✅ |
| Operate industrial / POS / embedded systems | ❌ | ✅ |
| Handle air-gapped or compliance-restricted environments | ❌ | ✅ |
KVM (keyboard-video-mouse) hardware sits between your keyboard/mouse/monitor and the target computer. It's a physical layer — the target sees it as a normal USB keyboard and mouse, with zero software installed.
Quick Start
1. Install
# Easiest — one-line setup (auto-installs Python package, writes MCP config)
npx mcp-kvm init
# Or install Python package directly
pip install mcp-kvm[software] # for controlling this machine
pip install mcp-kvm[blikvm] # for BliKVM hardware
pip install mcp-kvm[pikvm] # for PiKVM hardware
pip install mcp-kvm[all] # all adapters
2. Configure your MCP client
After npx mcp-kvm init, a .mcp.json is written to your current directory
(for Claude Code / Cursor). For Claude Desktop, add to
claude_desktop_config.json:
{
"mcpServers": {
"mcp-kvm": {
"command": "uvx",
"args": ["mcp-kvm-server"],
"env": {
"MCP_KVM_ADAPTER": "software"
}
}
}
}
3. Restart your AI client and ask
"Take a screenshot and tell me what's on my screen."
"Open the Start menu and launch Notepad, then type 'Hello from Claude'."
The AI now has 13 tools: take_screenshot, get_screen_size, mouse_click,
mouse_move, mouse_scroll, type_text, send_key, send_shortcut,
power_on, power_off, reboot, get_power_state, adapter_info.
Adapters
mcp-kvm is adapter-based — the same MCP tools work across different
backends. Set MCP_KVM_ADAPTER in your client config to switch.
software (default)
Uses pyautogui to control the same machine the server runs on. Good for:
- Quick local testing
- Single-machine automation
- Running on a Pi/NAS with an attached display
"env": { "MCP_KVM_ADAPTER": "software" }
blikvm (hardware)
Controls a remote machine via BliKVM v4. Full support: screenshot, mouse, keyboard, ATX power on/off/reboot.
"env": {
"MCP_KVM_ADAPTER": "blikvm",
"KVM_HOST": "192.168.1.100",
"KVM_USER": "admin",
"KVM_PASSWORD": "..."
}
pikvm (hardware, community-tested)
Controls a remote machine via PiKVM. Implements full API support based on official PiKVM documentation. Not yet verified on real hardware — community testing and feedback welcome via GitHub Issues.
"env": {
"MCP_KVM_ADAPTER": "pikvm",
"KVM_HOST": "192.168.1.100",
"KVM_USER": "admin",
"KVM_PASSWORD": "..."
}
Write your own
Subclass mcp_kvm.adapters.base.KVMAdapter and register via entry points.
See docs/adapters/custom.md.
Remote Access (from outside your LAN)
mcp-kvm connects directly to your KVM device on the local network. To
control machines while traveling, you need a way to reach your home/office
network. The recommended approach is a mesh VPN — no port forwarding, no
cloud relay, end-to-end encrypted.
Tailscale (recommended — 5 minutes to set up)
- Install Tailscale on your laptop/phone and on
the machine running
mcp-kvm-server(or on the KVM device itself if it supports it — PiKVM has a Tailscale plugin). - Both devices join the same Tailnet.
- Use the Tailscale IP in your MCP config:
"env": {
"MCP_KVM_ADAPTER": "blikvm",
"KVM_HOST": "100.64.0.5"
}
Now Claude Desktop on your laptop can reach the BliKVM at home, anywhere in the world. Tailscale's free tier supports up to 100 devices.
Other VPN options
| Option | Complexity | Notes |
|---|---|---|
| Tailscale | Easy | Free, peer-to-peer, recommended |
| ZeroTier | Easy | Similar to Tailscale, self-hostable |
| WireGuard | Medium | Manual config, fastest raw performance |
| Cloudflare Tunnel | Medium | Good if you already use Cloudflare |
| SSH tunnel | Advanced | ssh -L 8080:blikvm:80 your-server |
Tip: Most homelab and sysadmin users already run Tailscale or WireGuard —
mcp-kvmslots right into your existing setup.
Security
mcp-kvmruns entirely on your machine — no cloud, no data upload.- Screenshots and inputs never leave the MCP protocol stream to your AI client.
- The
softwareadapter intentionally disables pyautogui's failsafe so the AI can operate freely. SetMCP_KVM_ALLOW_DESTRUCTIVE=false(default) to prevent the most dangerous shortcuts. - You control the AI. Treat MCP tools like any remote-execution capability and review what your AI is about to do before confirming.
Project relationship
mcp-kvm is the open-source core of the KiSum Bot
project — a commercial AI worker platform for sysadmins and automation teams.
The MCP server is Apache 2.0; premium enterprise features (Lexoffice /
DATEV skills, team collaboration, audit logs) live in the private
kisum platform.
If you like mcp-kvm, please star it and share your use case on
GitHub Discussions.
Roadmap
- v0.1 — Software, BliKVM, PiKVM adapters, 13 tools, npm + PyPI packaging
- v0.2 — Multi-display support, image-based click verification
- v0.3 — MCP Resources for knowledge injection (browser patterns, keyboard shortcuts)
- v0.4 — Context memory + action verification (AI remembers past actions, verifies success)
- v0.5 —
run_tasktool (built-in agent loop with self-healing and precision clicking) - v1.0 — Stable API, entry-point adapter plugins, certified adapter list
Contributing
We actively welcome new KVM adapters, bug reports, and documentation improvements. See CONTRIBUTING.md (coming soon).
License
Apache 2.0 — see LICENSE.
Copyright 2026 ki-sum
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_kvm-0.1.0.tar.gz.
File metadata
- Download URL: mcp_kvm-0.1.0.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d742cb2220728118ede9b5336fe212f695fe1af00763930b3d161a614219ae82
|
|
| MD5 |
dafe5bbe0311ea08462314d843479a54
|
|
| BLAKE2b-256 |
7920020b15ff8cdebc2d4314da1ab892069bc1940a5674051d08e9d65c0fe369
|
File details
Details for the file mcp_kvm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_kvm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
418bdc922f123eae4ffc37d7770194d67de661f3217239038c41bd01ebe7cbf7
|
|
| MD5 |
845fce99d56a3e572d69e5a0216d6aff
|
|
| BLAKE2b-256 |
1eb99a5ae2e9289e31f546c90aca98b4f9a516084b6d57d86530535ca2b87285
|