Skip to main content

mcp-serial-hid-kvm

MCP (Model Context Protocol) server that gives AI agents full keyboard, mouse, and screen access to a physical PC. Thin client for serial-hid-kvm — all hardware control is delegated via TCP.

How It Works

Claude / AI Agent
  ↕ MCP (stdio)
mcp-serial-hid-kvm        ← this package (thin client + OCR)
  ↕ TCP (localhost:9329)
serial-hid-kvm             ← standalone KVM server (owns hardware)
  ↕ USB Serial + HDMI
Target PC

The KVM server (serial-hid-kvm) runs as a persistent process owning the serial port and capture device. This MCP server connects to it as a TCP client. Multiple MCP instances (multiple Claude sessions) can share a single KVM server without device conflicts.

Prerequisites

  1. Hardware: CH9329+CH340 USB HID cable + USB HDMI capture device (see serial-hid-kvm for details)
  2. serial-hid-kvm installed and running:
    pip install -e /path/to/serial-hid-kvm
    serial-hid-kvm --api              # with preview window
    serial-hid-kvm --api --headless   # or headless
    
  3. Tesseract OCR (for get_screen_text / execute_and_read):

Installation

pip install -e .

This automatically installs serial-hid-kvm as a dependency.

MCP Client Configuration

Claude Desktop / Claude Code

{
  "mcpServers": {
    "kvm": {
      "command": "mcp-serial-hid-kvm"
    }
  }
}

Custom KVM server address:

{
  "mcpServers": {
    "kvm": {
      "command": "mcp-serial-hid-kvm",
      "env": {
        "SHKVM_API_HOST": "127.0.0.1",
        "SHKVM_API_PORT": "9329"
      }
    }
  }
}

Configuration

Variable Default Description
SHKVM_API_HOST 127.0.0.1 KVM server address
SHKVM_API_PORT 9329 KVM server port
MCP_TESSERACT_CMD auto-detect Path to tesseract executable
MCP_CAPTURE_LOG_DIR platform default Capture log directory (empty string to disable)

Hardware settings (SHKVM_SERIAL_PORT, SHKVM_SCREEN_WIDTH, etc.) are configured on the KVM server side, not here. If the target PC uses a non-US keyboard, set --target-layout (or SHKVM_TARGET_LAYOUT) on the KVM server so that type_text and send_key produce correct characters.

Available Tools

Keyboard

Tool Description
type_text Type text with inline tags: ls -la{enter}, {ctrl+c}, {alt+f4}
send_key Single key press with modifiers
send_key_sequence Multiple key steps with per-step delays

Mouse

Tool Description
mouse_move Move cursor (absolute or relative)
mouse_click Click at optional position
mouse_drag Drag from one position to another (drag-and-drop, text selection, etc.)
mouse_scroll Scroll wheel

Screen

Tool Description
capture_screen Capture screen as image (high token cost)
get_screen_text Capture + OCR to text (preferred for text content)
execute_and_read Type command, Enter, wait, capture + OCR

Device Management

Tool Description
get_device_info Serial port, capture device, config info
list_capture_devices List available video devices
set_capture_device Switch capture device
set_capture_resolution Change capture resolution

Architecture

This package is intentionally minimal (~4 files):

mcp_serial_hid_kvm/
  server.py    MCP tool handlers → KvmClient TCP calls
  config.py    KVM host/port, tesseract, log settings
  ocr.py       Tesseract OCR (runs locally on fetched frames)
  __init__.py

All keyboard/mouse/capture logic lives in serial-hid-kvm. This package only translates MCP tool calls to TCP API calls and runs OCR locally.

Why Separate?

  • No device conflicts — multiple Claude sessions share one KVM server
  • Independent restarts — restart the MCP server without losing the KVM connection
  • Standalone use — serial-hid-kvm works without MCP (interactive preview, scripts, other AI frameworks)

License

MIT

Metadata

Release files for mcp-serial-hid-kvm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-serial-hid-kvm 0.1.0
File Size Uploaded
mcp_serial_hid_kvm-0.1.0.tar.gz 9.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-serial-hid-kvm 0.1.0
File Interpreter ABI Platform
mcp_serial_hid_kvm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.1 kB

Release files / mcp_serial_hid_kvm-0.1.0.tar.gz

Download URL mcp_serial_hid_kvm-0.1.0.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ad1870d1ff334e1ec98d854bb6948661236a9c84e05acd2876c45a2b8e1fdb0d
BLAKE2b-256 checksum
How to use checksums
52850795aeac5f938a905276b508e2920a3235c7bd3b498b6e73bb01ea6b7637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.

Transparency log

Release files / mcp_serial_hid_kvm-0.1.0-py3-none-any.whl

Download URL mcp_serial_hid_kvm-0.1.0-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fba38357eeb0bc590635f49a3ec073839587111d4af8a648a3bcfced4cb50365
BLAKE2b-256 checksum
How to use checksums
78d816181a3c9de599fd97f6bf126728e082792d92221b5828f72d488863cbc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page