Skip to main content

MCP server — let AI control any computer through KVM hardware. BIOS, login screens, and crashes included.

Project description

mcp-kvm

License Python MCP

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)

  1. 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).
  2. Both devices join the same Tailnet.
  3. 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-kvm slots right into your existing setup.


Security

  • mcp-kvm runs entirely on your machine — no cloud, no data upload.
  • Screenshots and inputs never leave the MCP protocol stream to your AI client.
  • The software adapter intentionally disables pyautogui's failsafe so the AI can operate freely. Set MCP_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.5run_task tool (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_kvm-0.1.0.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_kvm-0.1.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

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

Hashes for mcp_kvm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d742cb2220728118ede9b5336fe212f695fe1af00763930b3d161a614219ae82
MD5 dafe5bbe0311ea08462314d843479a54
BLAKE2b-256 7920020b15ff8cdebc2d4314da1ab892069bc1940a5674051d08e9d65c0fe369

See more details on using hashes here.

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

Hashes for mcp_kvm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 418bdc922f123eae4ffc37d7770194d67de661f3217239038c41bd01ebe7cbf7
MD5 845fce99d56a3e572d69e5a0216d6aff
BLAKE2b-256 1eb99a5ae2e9289e31f546c90aca98b4f9a516084b6d57d86530535ca2b87285

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page