tinqiao-oss avatar

Clawtouch Mcp

tinqiao-oss/clawtouch-mcp

Routes Claude and other MCP clients to physical USB HID hardware so an agent can move a real mouse and press real keys on the target machine. Exposes primitives like hid.click, hid.type, hid.scroll, and optional hid.screenshot. Runs as a stdio MCP server that talks over USB serial to a Raspberry Pi Pico 2 running open ClawTouch firmware. The target OS sees a genuine USB keyboard and mouse, not synthetic input events, which matters for kiosks, locked-down machines, or cross-host test rigs where you can't install software on the driven side. Includes a mock mode for development without hardware. Read the safety notes before connecting it to a production machine.

GitHub stars
13
tools
18
transport
STDIO
last updated
Sep 15, 2026

Tools

18 tools

Public tool metadata for what this MCP can expose to an agent.

hid.clickClick at (x, y)

Click at (x, y)

No parameter schema in public metadata yet.

hid.moveMove the mouse to (x, y)

Move the mouse to (x, y)

No parameter schema in public metadata yet.

hid.hoverMove to (x, y), then idle

Move to (x, y), then idle

No parameter schema in public metadata yet.

hid.typeType ASCII text (US layout)

Type ASCII text (US layout)

No parameter schema in public metadata yet.

hid.scrollWheel scroll up / down

Wheel scroll up / down

No parameter schema in public metadata yet.

hid.keyPress a named key or shortcut (`enter`, `ctrl+c`, …)

Press a named key or shortcut (`enter`, `ctrl+c`, …)

No parameter schema in public metadata yet.

hid.release_allPanic stop — release every held button and key

Panic stop — release every held button and key

No parameter schema in public metadata yet.

hid.mouse_button_downPress a mouse button without releasing (drag start)

Press a mouse button without releasing (drag start)

No parameter schema in public metadata yet.

hid.mouse_button_upRelease a held mouse button (drag end)

Release a held mouse button (drag end)

No parameter schema in public metadata yet.

hid.dragDrag from one point to another while holding a button

Drag from one point to another while holding a button

No parameter schema in public metadata yet.

hid.key_pressPress a key/shortcut without releasing

Press a key/shortcut without releasing

No parameter schema in public metadata yet.

hid.key_releaseRelease a held key (no args = release everything)

Release a held key (no args = release everything)

No parameter schema in public metadata yet.

hid.hold_keyPress, wait, then release

Press, wait, then release

No parameter schema in public metadata yet.

hid.batchRun a pre-planned sequence of ≤10 HID actions in one call (strict order)

Run a pre-planned sequence of ≤10 HID actions in one call (strict order)

No parameter schema in public metadata yet.

hid.screenshotScreenshot a monitor or a `region` — JPEG q80 default, `format='png'` for lossless.

Screenshot a monitor or a `region` — JPEG q80 default, `format='png'` for lossless.

No parameter schema in public metadata yet.

screen.windowsList visible top-level windows with titles and screen rectangles, so a capture can be cropped to one window.

List visible top-level windows with titles and screen rectangles, so a capture can be cropped to one window.

No parameter schema in public metadata yet.

device.listList candidate HID board ports

List candidate HID board ports

No parameter schema in public metadata yet.

device.infoActive connection info

Active connection info

No parameter schema in public metadata yet.

Sponsors

Readme

English | 简体中文

clawtouch-mcp

Give your AI agent real hands. An MCP server that turns any MCP-compatible client — Claude Desktop, Cline, Continue, Cursor, OpenClaw, Hermes Agent and any other — into something that can move a real mouse and press real keys through a USB HID device.

PyPI version Python License: MIT Website: clawtouch.cn clawtouch-mcp MCP server


View the full README on GitHub

Details

Repository
github.com/tinqiao-oss/clawtouch-mcp
Package
clawtouch-mcp
Transport
STDIO
Registry
MCP registry, active