clawtouch-mcp — Claude Code MCP server: what it does, how to install
This MCP server lets an agent operate a physical keyboard and mouse through USB HID. It fits hardware test rigs, kiosks, and locked-down machines.
claude mcp add clawtouch-mcp -- uvx clawtouch-mcpWhat clawtouch-mcp does
clawtouch-mcp is a standalone Python process that communicates over MCP on stdio. Its tools cover mouse clicks, text entry, scrolling, key combinations, and screenshots. The server sends those requests to a Raspberry Pi Pico 2 or another ClawTouch device, which presents the target system with ordinary USB HID input.
It can be added to Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and the other listed clients. The --mock mode runs without hardware and logs actions instead of moving anything. Screenshot support can be installed with mss and Pillow; macOS window operations require pyobjc.
Physical control requires a Raspberry Pi Pico 2 running ClawTouch HID firmware, or a ClawTouch box. For development and CI, use clawtouch-mcp --mock --log-level INFO; with hardware attached, the port can be set with --port COM7 and the display size with --screen 1920x1080.
What it helps with
- send keyboard and mouse input as USB HID
- test software against genuine external input
- drive a separate machine in a test rig
- exercise MCP workflows without moving hardware
Example prompts for the agent
- Use
device.infoto report the detected screen size and input device details. - Click the requested coordinates, type the supplied text, and capture a screenshot.
- Run the workflow in
--mockmode and log every action without touching the hardware.
How to install clawtouch-mcp
Platform CLI
claude mcp add clawtouch-mcp -- uvx clawtouch-mcpuvx runs the command named after the package; if the README names another one, use uvx --from clawtouch-mcp <command>
Platform CLI
codex mcp add clawtouch-mcp -- uvx clawtouch-mcpuvx runs the command named after the package; if the README names another one, use uvx --from clawtouch-mcp <command>
Config file
{
"mcpServers": {
"clawtouch-mcp": {
"command": "uvx",
"args": [
"clawtouch-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from clawtouch-mcp <command>
Config file
{
"servers": {
"clawtouch-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"clawtouch-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from clawtouch-mcp <command>
Platform CLI
gemini mcp add clawtouch-mcp uvx clawtouch-mcpuvx runs the command named after the package; if the README names another one, use uvx --from clawtouch-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about clawtouch-mcp
How do I install clawtouch-mcp in Claude Code?
Run claude mcp add clawtouch-mcp -- uvx clawtouch-mcp.
What does clawtouch-mcp do?
It exposes MCP tools for physical USB HID input, including clicks, typing, scrolling, key combinations, and screenshots.
Can clawtouch-mcp run without the board?
Yes. clawtouch-mcp --mock --log-level INFO records actions without moving a device, which suits development and CI runs.