Skip to main content

BLE-to-USB HID wireless keyboard bridge as MCP server

Project description

ClawTap

Wireless keyboard bridge — type on any computer from your phone or AI assistant

PyPI tests License


A tiny USB stick that receives text over Bluetooth and types it as a real USB keyboard. Works with Claude, any MCP-compatible AI, or any BLE app on your phone.

Phone / AI  →  BLE  →  ClawTap  →  USB HID  →  💻

Quick Start

claude mcp add clawtap -- uvx clawtap-mcp

Or install manually:

pip install clawtap-mcp

MCP Tools

Tool What it does
type_text(text) Type text as keystrokes. Supports ASCII + Cyrillic
press_key(key, count) Press a special key: enter, escape, backspace, f1f12, arrows
combo_keys(keys) Key combo up to 5 keys: ["ctrl","c"], ["alt","tab"], ["win","r"]
health_check() Check wireless connection and device status

Examples

# Type text
type_text("Hello World!\n")

# Cyrillic (target must have RU layout active)
type_text("Привет мир")

# Key combos
combo_keys(["ctrl", "c"])      # Copy
combo_keys(["alt", "tab"])     # Switch window
combo_keys(["win", "r"])       # Run dialog

# Special keys
press_key("backspace", 5)      # Delete 5 chars
press_key("enter")

Troubleshooting

Problem Fix
Device not found Power cycle device. Make sure no other app is connected to it
Wrong characters Check keyboard layout on target computer (EN for English, RU for Cyrillic)
Disconnects Stay within 10m. Check USB power stability

FAQ

Does the target need any software installed? No. The target sees a plain USB keyboard — no drivers, no agent, no admin rights. That's the whole point: ClawTap works on kiosks, industrial HMIs, locked-down corporate laptops, BIOS screens, and anywhere Selenium / Playwright cannot reach.

What's the typical end-to-end latency? For a single key, ~30–80 ms from MCP tool call to the character landing on the target (BLE round-trip dominates). For a 1000-character paragraph, expect roughly 1–2 seconds of streaming.

Which operating systems can host the MCP server? Anywhere bleak works: Windows 10/11, macOS 10.15+, Linux with BlueZ. The target (the machine plugged into ClawTap via USB) can be literally anything that accepts a USB HID keyboard, including Android, game consoles, and Raspberry Pi.

Does ClawTap see what's on the target screen? No. The link is one-way — host → ClawTap → target. There is no return channel and no camera. If you want a feedback loop (AI reads what it just typed), point a phone camera at the target screen and pipe that through your own MCP image source.

Can the device type non-ASCII without changing the target's layout? No. ClawTap is a deterministic HID channel: it sends US-QWERTY scancodes, the OS interprets them under the active layout. Cyrillic works by mapping characters to the keys that produce them in the RU layout — switch with Win+Space (Windows) on the target before sending.

Is the BLE link encrypted? Pairing uses BLE Just Works (no MITM protection); after that the channel is encrypted with the link key. Treat ClawTap as you would a wireless keyboard — fine for personal use, not a substitute for a hardened authentication channel.

Can I drive several ClawTap devices from one host? Not yet. The current MCP server keeps a single BLE client. Extending it to a pool keyed by device name is on the roadmap — see examples/ for the patterns that need to be parameterised.

Where do I look next?

  • examples/ — five short scripts (clipboard, Cyrillic, browser launcher, vim session, stress test).
  • CONTRIBUTING.md — for bug reports and PRs.

License

MIT


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

clawtap_mcp-1.1.0.tar.gz (128.6 kB view details)

Uploaded Source

Built Distribution

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

clawtap_mcp-1.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file clawtap_mcp-1.1.0.tar.gz.

File metadata

  • Download URL: clawtap_mcp-1.1.0.tar.gz
  • Upload date:
  • Size: 128.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for clawtap_mcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ec5aa4938af9df8fd9a0d49ee6bec5b0e80ea914c0e7b2d21b664e90597bc934
MD5 894886212e671802cc3d923f8ea1e838
BLAKE2b-256 402f9b99db12e0453eccd1b21d301d34a4839793320e2f75d04d8bdbda6985f6

See more details on using hashes here.

File details

Details for the file clawtap_mcp-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: clawtap_mcp-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for clawtap_mcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b576a99ebca2184c570282d87e27830eea61c9961a5a8591fe1cb24bf96cb308
MD5 372398157d63ccf440051b6ff8548785
BLAKE2b-256 3e2c0606109a2fe77317757ad5841083b14a20a2b7e8c279ca720d020e0e0705

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