mcpField
C
clawtouch-mcp

clawtouch-mcp

本地服务
github.com/tinqiao-oss其他132 周前更新

关于 clawtouch-mcp

clawtouch-mcp 是一个 Python MCP 服务,通过 ClawTouch USB HID 设备让兼容的 Agent 控制计算机。它提供真实键盘和鼠标输入,并支持可选屏幕捕获及无硬件模拟模式。

主要功能

  1. 01USB HID 鼠标和键盘控制
  2. 02点击、输入、滚动及组合键
  3. 03可选截图和窗口工具
  4. 04检测并限制屏幕坐标
  5. 05调用限速与紧急释放工具

适用场景

  1. 01通过 Agent 辅助操作计算机
  2. 02使用外接 HID 输入测试软件
  3. 03操作自助终端或受限设备
  4. 04通过 Agent 驱动测试机器

MCP 相关

该 stdio MCP 服务向 MCP 客户端提供 HID 操作和设备信息工具。截图与窗口工具为可选项,截图默认关闭。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tinqiao-oss-clawtouch": {
"command": "uvx",
"args": [
"clawtouch-mcp"
]
}
}
}
启动命令uvx clawtouch-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiclawtouch-mcp0.5.2

工具

16

收录的工具列表 · 更新于 2 周前

参数类型必填说明
xinteger是
yinteger是
buttonenum否left | right | middle
doubleboolean否
move_msinteger否滑动模式:在 N 毫秒内将移动拆分为约 10 ms 的 HID 报告(线性插值 + 滑动后收敛)。0 = 瞬移模式(默认,立即移动)。
relativeboolean否若为 true,则 x/y 表示像素位移;跳过绝对模式。

详细介绍

English | 简体中文

clawtouch-mcp

让你的 AI Agent 真正拥有一双手。 一个 MCP 服务,可将任何兼容 MCP 的客户端——Claude Desktop、 Cline、Continue、 Cursor、OpenClaw、 Hermes Agent 以及其他客户端—— 变成能够通过 USB HID 设备移动真实鼠标、按下真实按键的工具。

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

clawtouch-mcp 数据流:AI Agent 通过 stdio JSON-RPC 发送 MCP 工具调用至 clawtouch-mcp,后者通过 USB-CDC 将带帧字节转发至运行 ClawTouch HID 固件的 Raspberry Pi Pico 2,再由该设备向目标操作系统(Windows / macOS / Linux)发送标准 USB HID 报告。


这是什么?

一个独立的 Python 进程,通过 stdio 使用 Model Context Protocol(MCP)通信,并向你正在使用的 AI Agent 提供鼠标/键盘操作——hid.click、hid.type、 hid.scroll、组合键、hid.screenshot。在底层,它通过 USB 串口与 ClawTouch HID 设备通信(运行开源 ClawTouch HID 固件的 Raspberry Pi Pico 2,或任何即插即用的 ClawTouch 设备),并将每次工具调用转换为真实的 USB HID 报告。目标操作系统看到的是真正的物理键盘和鼠标——输入通过与任何接入的外设相同的驱动程序路径到达,而不是通过软件注入合成事件。

📦 采用 MIT 许可。没有 ClawTouch 后端、没有大模型,也没有额外的 Agent 循环—— 只有原始 HID 连接机制,供其他 Agent 技术栈与真实硬件通信。

⚠️ 这会让 Agent 获得对机器的真实键盘/鼠标操作能力—— 与坐在键盘前的人拥有同等权限。请先阅读安全。

为什么使用硬件 HID?

软件自动化(PyAutoGUI、操作系统级输入 API、多模态点击屏幕模型)会向会话注入合成输入事件——这要求 Agent 进程在目标机器上、对应用户会话中运行,并且拥有焦点。USB HID 外设的工作方式则相反:它会发出真实 HID 报告,这些报告通过标准的操作系统 HID 驱动程序栈传输,就像插入的键盘或鼠标一样。操作系统会原生将 Pico 识别为标准 USB HID 类设备,目标端无需鼠标/键盘驱动程序,也无需 HID Agent 进程。这正是本项目的核心价值——下面的其他部分都建立在此基础上。

开发板会在插入它的机器上执行操作。 它通过输入所用的同一根 USB 线缆接收命令,因此 clawtouch-mcp 也会在那台机器上运行——输入端仍然不需要驱动程序。Agent 本身可以在其他位置运行;请参阅部署模式。

适用场景:

  • 信息亭/受限机器——无需安装或持续运行输入驱动程序或输入 Agent:开发板就是标准 USB 键盘和鼠标(clawtouch-mcp 本身在该机器上运行)。
  • 无障碍辅助——让用户通过 Agent 发出 HID 命令来操作自己的电脑,无需应对各应用对合成输入的兼容性问题。
  • 兼容性测试——验证软件能否正确处理外部 HID 输入,这可能与注入的合成事件有所不同。
  • 测试环境——在开发笔记本电脑上运行的 Agent 操作运行着 clawtouch-mcp 的测试机器(例如通过 SSH 启动——请参阅部署模式)。

不适用场景:

  • 批量创建账号/多账号操作——单主机有线外设在结构上并不适合此类用途;一个设备只能操作一台目标机器,要操作十台机器就得购买十台设备。
  • 特定应用的脚本化快捷操作(选择器、针对某个网站或应用的固定流程脚本)。这类功能应该由构建在此基础原语层之上的 Agent/RPA 框架提供,而不是由本层实现。

对于标准桌面应用(浏览器、IDE、办公套件),纯软件方案已经足够——硬件只是额外选项,并非必需。它不可替代的价值在于上述场景:输入必须以真实物理 HID 设备的形式到达目标端,且目标端无需输入驱动程序或输入 Agent。关于“不适用”场景的合规边界,请参阅可接受的使用方式。

快速开始

⚠️ 开始之前:请阅读安全——已连接的 Agent 可以像使用键盘的人一样操作这台机器。

安装
pip install clawtouch-mcp                     # minimal (serial only)
pip install 'clawtouch-mcp[screenshot]'       # + mss + Pillow (JPEG, Retina resize)
pip install 'clawtouch-mcp[screenshot-min]'   # mss only — no native deps, works
                                              # under hardened-runtime hosts
pip install 'clawtouch-mcp[window]'          # pyobjc — macOS needs it for
                                              # screen.windows; no-op elsewhere

平台专属设置指南(建议首次安装时阅读):

  • Windows — docs/windows-setup.md:双 COM 端口枚举、VS Code Claude 扩展 .mcp.json 配置、需要完整重启窗口、显示缩放说明。
  • macOS — docs/macos-setup.md:首次插入时出现的“键盘设置助理”对话框、双 USB-CDC 端口、屏幕录制权限、拼音输入法标点注意事项。
运行
# 1. Auto-detect HID board AND auto-detect screen size (v0.2.3+)
clawtouch-mcp

# 2. Explicit port (Windows), screen still auto-detected
clawtouch-mcp --port COM7

# 3. Pin screen size manually (e.g. clamp to one monitor in a multi-monitor setup)
clawtouch-mcp --screen 1920x1080

# 4. No hardware — everything is logged, nothing moves (dev/CI mode)
clawtouch-mcp --mock --log-level INFO

v0.2.3+ 会在启动时自动检测主显示器的物理像素尺寸,因此坐标会限制在实际屏幕范围内,而不是硬编码的 1920x1080。使用 MCP 客户端中的 device.info 查看检测结果(screen.source 为 "detected"/"explicit"/"unset")。

与 Claude Desktop 搭配使用

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "clawtouch": {
      "command": "clawtouch-mcp",
      "args": ["--port", "COM7", "--screen", "1920x1080"]
    }
  }
}

重启 Claude Desktop。你应该会在 MCP 服务列表中看到 clawtouch,其中提供 16 个工具(14 个 HID 工具 + 2 个设备工具;若传入 --allow-screenshot,则会额外提供 2 个工具,启用 hid.screenshot 和 screen.windows)。试试:

截取我的屏幕,找到搜索框,点击它,然后输入 "hello world"。

(需传入 --allow-screenshot 才能启用 hid.screenshot 工具 — 默认关闭以保护隐私。)

其他 MCP 客户端

适用于 7 个已验证客户端(Claude Desktop / Code、 Cursor、OpenClaw、Hermes Agent、ChatGPT Desktop / Codex CLI、 Cherry Studio、Trae IDE)的可复制粘贴配置 — 请参阅 examples/integrations/INTEGRATIONS.md。 欢迎提交添加新客户端的 PR。

部署模式

Agent 是否与屏幕位于同一台机器上? clawtouch-mcp 涵盖输入端(Agent 工具调用 → HID 报告 → 实际输入),以及可选启用的 hid.screenshot,用于截取其运行所在机器的屏幕。Agent 如何处理屏幕 — 读取屏幕内容、决定下一步操作 — 不在此代码库的范围内。

本地模式 — 最常见的情况。 Agent、clawtouch-mcp、Pico 和受控屏幕都位于同一台 PC 上。hid.screenshot 会截取同一屏幕,因此视觉反馈闭环可以自然形成;Pico 是标准 USB HID 设备,无需驱动。适用于无障碍辅助、单机 RPA、兼容性测试、机器内自助服务终端。

Agent 位于另一台机器上。 开发板通过 USB CDC 数据通道接收命令 — 与传输键盘和鼠标数据的通道共用同一根线缆 — 因此它始终在连接的机器上执行操作,clawtouch-mcp 也在该机器上运行。Agent 仍可在其他地方运行:让 MCP 客户端通过其支持的任意传输方式(例如 SSH 命令),在目标机器上启动 clawtouch-mcp。按键、输入文字和相对鼠标移动都能像本地一样工作。绝对点击和移动需要读取光标位置,而 hid.screenshot 需要读取屏幕,因此使用这些功能时,服务必须在已登录的桌面会话内运行 — 而普通 SSH 登录通常不在该会话中:在 Linux 上,为桌面 X 服务器设置 DISPLAY(和 XAUTHORITY);在 Windows 上,OpenSSH 会话位于交互式桌面之外,因此应在会话内启动服务;在 macOS 上,授予屏幕录制权限后即可使用(参见 macOS 设置)。此固件无法驱动完全没有运行任何程序的机器:这需要为开发板提供第二条命令通路,不属于此代码库的范围。

安全

在连接自主 Agent 之前,请先阅读此内容。上文的运行时限制用于防止洪泛 / 输入错误,并非防范行为异常 Agent 的安全边界。

运行时安全限制
  • 坐标会被限制在 --screen WxH 范围内,以防 Agent 将鼠标移动到无效的像素位置。
  • 每次调用输入的文本最多为 4096 个字符。
  • hid.type 适用于 ASCII / 美式键盘布局文本。默认会剔除控制字符(换行符、制表符等),以免 Agent 的多行草稿被意外提交——请用 hid.key("enter") 发送 Enter,用 hid.key("tab") 发送 Tab。包含任何非 ASCII 字符(中文、表情符号、弯引号)的文本会在输入任何内容之前被拒绝——否则固件会在遇到第一个此类字符时停止,导致文本只输入了一部分;请将此类文本放到剪贴板中再粘贴。
  • 所有操作都受 --ops-per-sec 限速(默认值为 20)。计数单位是工具调用,而非单个 HID 报告——一次 hid.drag 或较长的 hid.type 调用会发出许多报告,因此实际的 HID 报告速率更高。这是用于防止操作洪泛或输入错误的保护措施,不是安全限流机制。
  • 除非传入 --allow-screenshot,否则会禁用 hid.screenshot。
  • 提供 hid.release_all,供 Agent 将其用作紧急停止工具。
连接到此工具的 Agent 可以做什么

clawtouch-mcp 会将 Agent 的工具调用转化为真实的 USB HID 输入——正是这一特性让其适用于正当用途(自助服务终端、无障碍访问、兼容性测试、测试平台),但也带来了相应的风险:

**实际上,连接到此处的自主 Agent 能够像坐在键盘前的人一样操作主机。**它可以打开任何应用程序、在终端中运行命令、安装或移除软件,以及读取、移动或删除文件。由于输入是以普通 HID 的形式送达的,确认提示本身并非可靠的防护措施——请将任何许可对话框都视为 Agent 可能会操作的对象。clawtouch-mcp 不会检查意图或内容;它会如实将每次调用转发给硬件。

这可能会在违背你的意愿时发生,因为决定采取什么操作的是 Agent。常见诱因包括:

  • **提示注入。**Agent 从屏幕、网页或图像中读取的不可信文本,可能包含会覆盖你指令的内容。
  • **模型错误。**模型误解任务,操作了错误的窗口、文件或按钮。
  • **自主权限过宽。**任务越开放、检查点越少,造成严重影响的范围就越大。

这是非预期的故障模式,而非受支持的用途——根据下文的可接受用途,故意使用 HID 输入来绕过系统安全控制不在支持范围内。它也不同于 SECURITY.md 中的软件漏洞:其中提到的问题都不涉及 Agent 违背你的意愿采取行动。MIT 许可中的“按现状提供 / 不作任何保证”条款是责任免责声明,并非已知风险告知;安全运行自主 Agent 的责任由你作为部署者承担。本告知仅供参考——不会修改、缩小或扩大 MIT License,也不会产生任何保证或注意义务,亦不会将责任转移给 Tinqiao;MIT 中的无保证 / 无责任条款仍全面适用。

操作人员缓解措施

将 Agent 驱动 HID 输入视同让一名能力出众但尚未完全可信的操作人员亲自操作机器。建议:

  • 使用专用、可擦除数据的机器(或 VM / 容器)——而不是你的主用电脑。本地模式会让 Agent 和目标位于同一台 PC 上:虽方便,但影响范围最大;条件允许时,优先使用另一台机器。
  • 使用遵循最小权限原则的 OS 账户运行,切勿以管理员 / root 身份运行——Agent 会继承该账户拥有的所有权限。
  • 不要在目标机器上保留机密信息或已登录的账户——不要保存密码,不要保留已通过身份验证的会话,也不要在提示词中提供凭据。
  • 对于后果重大或不可逆的操作,让人工参与把关(安装 / 删除软件、发送消息、金融交易、同意条款);不要让 Agent 无人看管地执行开放式任务。
  • 隔离网络(例如,使用域名允许列表),以限制接触恶意内容或包含提示词注入的内容。
  • 将从屏幕或网页读取的所有内容视为不可信输入,并使其远离敏感数据和操作。
  • 确保随时可以触发紧急停止。 hid.release_all 会从 Agent 端释放所有按住的按键和按钮;直接拔掉 HID 设备的 USB 线是最可靠的停止方式,并能彻底切断 Agent 的输入通路。

如果你代表他人部署此工具(用于无障碍访问、托管式 RPA),请告知最终用户这些风险并征得他们同意。

工具

共注册 17 个工具:14 个始终启用的 hid.* 输入工具,加上 hid.screenshot(选择启用——除非传入 --allow-screenshot,否则默认关闭),以及两个只读的 device.* 诊断工具。这与启动日志行 14 HID tools + 2 device tools registered 一致(--allow-screenshot 标志会额外启用 hid.screenshot,总计 17 个)。

工具引入版本用途
hid.clickv1.0在 (x, y) 处单击
hid.movev1.0将鼠标移至 (x, y)
hid.hoverv1.0移至 (x, y),然后停留
hid.typev1.0输入 ASCII 文本(US 布局)
hid.scrollv1.0向上 / 向下滚动滚轮
hid.keyv1.0按下指定按键或快捷键(enter、ctrl+c、…)
hid.release_allv1.0紧急停止——释放所有按住的按钮和按键
hid.mouse_button_downv1.1按下鼠标按钮但不释放(开始拖动)
hid.mouse_button_upv1.1释放按住的鼠标按钮(结束拖动)
hid.dragv1.1按住按钮,将指针从一个位置拖至另一个位置
hid.key_pressv1.1按下按键 / 快捷键但不释放
hid.key_releasev1.1释放按住的按键(不带参数 = 释放所有按键)
hid.hold_keyv1.1按下按键、等待,然后释放
hid.batchv0.4.0在一次调用中运行预先规划的 ≤10 个 HID 操作序列(严格按顺序执行)
hid.screenshotv1.0截取显示器或 region 的屏幕截图——默认 JPEG q80;设置 format='png' 可获得无损图像。max_width 限制返回图像的宽度;markers 会添加两个校准标记,用于视觉模型坐标操作(选择启用,需使用 --allow-screenshot)
screen.windowsv0.5.0列出可见的顶层窗口及其标题和屏幕矩形,以便将捕获内容裁剪为单个窗口。在 Windows 上,每个条目还包含 visible_fraction——窗口实际显示在最上层的比例,因为捕获被覆盖窗口的矩形时,捕获到的其实是覆盖它的内容——以及 enabled 和 raise_point。在无法测量的情况下(macOS,或矩形太小而无法采样),这三项不会提供。两个平台都会测量 foreground,但遵循相同规则——极少数情况下,操作系统完全无法响应查询时不会提供该项;minimized 仅在 Windows 上测量。未提供表示未测量,绝不表示已测量且一切正常(选择启用,需使用 --allow-screenshot;支持 Windows + macOS)
device.listv1.0列出候选 HID 板卡端口
device.infov1.0当前活动连接信息
坐标与行为。 点击 / 移动 / 悬停默认使用绝对坐标:
服务会查询 OS 光标位置(Win32 / CoreGraphics / X11),计算到目标位置的偏移量,
并向固件发送相对增量——因此 {"x": 640, "y": 360} 会到达屏幕上的该像素位置。传入
relative=true 可跳过 OS 查询,改为发送原始像素增量。如果无法读取 OS 光标(Wayland,或任何 OS 查询失败),调用会返回明确错误——
绝不会默默猜测并点错位置。hid.drag 会依次组合
mouse_button_down → 平滑移动 move → mouse_button_up;v1.1 按钮 / 按键
按下配对操作(mouse_button_*、key_press / key_release、hold_key)映射到 Computer-Use Anthropic(CUA)动作集。hid.batch 会在一次调用中按严格顺序运行一份简短的、
预先规划的操作列表(≤10)——
这是为已确定的操作列表提供的传输便利(例如求解器计算出的若干固定坐标),不是控制流或“操作 →
观察 → 决策”层;这类流程仍需分别调用。
连续点击会自动以较短的默认间隔(约 50 ms)错开,避免 OS 将其合并或丢弃;可针对每项操作使用 delay_ms 覆盖(设为 0 即可关闭)。

工具选择。 服务内置了选择指导,帮助 Agent 仅在适当时使用物理 HID:在 initialize 响应中提供 MCP instructions 字段,并为每个工具的描述添加前缀 HID_PREFIX,该前缀会附加到所有 hid.* 工具描述前(即使客户端忽略服务级字段,也能保留提示)。两者表达的内容相同——仅在没有文件 / 浏览器 / OS API 可完成任务,或用户明确要求使用物理键盘 / 鼠标输入时,才将 hid.* 作为备用方案。只读的 device.* 工具不带此前缀。

示例

大多数 Agent 会通过 MCP 客户端(Claude Desktop / Code、Cursor 等)使用 clawtouch-mcp——已验证客户端的可复制粘贴配置见 examples/integrations/INTEGRATIONS.md。

如果你要自行构建 Computer Use 循环, examples/computer_use/ 中有两个参考实现,可通过 ClawTouch HID 路由 Agent 操作:

关于各应用的 LLM 指南,clawtouch-skills 是一个配套仓库,包含 LLM 在操作特定应用前可加载的 Markdown 操作手册。Skills 仅提供参考指导——仍由 LLM 决定采取何种操作。

查看实际效果

针对你的桥接设备启动服务后,任意 MCP 客户端(Claude Desktop、Cline 或你自己的循环)都可通过 stdio 发送纯 MCP tools/call。每次调用都会转换为发送至真实硬件的真实 USB-CDC 帧—— 并非模拟操作。

$ clawtouch-mcp --port COM7
[INFO] connected to Pico 2 on COM7 (serial: E660ABCD12345678)
[INFO] screen auto-detected: 2560x1440 (Windows SM_CXSCREEN/SM_CYSCREEN)
[INFO] 14 HID tools + 2 device tools registered; listening on stdio

# client → server : one click, then one typed string
#                   (the cursor and keys actually move)
→ tools/call  hid.click  {"x": 640, "y": 360}
← result       "clicked at (640, 360)"

→ tools/call  hid.type   {"text": "Hello from MCP"}
← result       "typed 14 chars in 0.42s"

可接受的使用方式

此服务为合法用途而构建,例如无障碍辅助、RPA、测试自动化,以及无法安装输入驱动的自助终端。本项目不支持、记录或协助以下用途:

  • 绕过、规避或干扰任何目标平台的反欺诈、反滥用、速率限制或风险控制措施。
  • 操作用户不依法拥有或未获明确授权操作的账户。
  • 违反目标应用在用户所在司法管辖区的服务条款。
  • 违反适用法律,包括但不限于中国《反不正当竞争法》第 13 条(互联网领域特别规定;于 2025-06-27 颁布,2025-10-15 生效),该条涉及以不正当手段(包括规避技术管理措施)获取或使用其他经营者的数据;《个人信息保护法》;《网络安全法》;以及其他司法管辖区的同等法律。

这些声明阐述了维护者提供支持和文档的范围,并非对 MIT License 的额外限制;MIT License 仍适用于源代码的所有使用、修改和再分发。用户应自行评估其具体用途是否符合适用法律及目标平台的服务条款。

内容生成——不在范围内

clawtouch-mcp 将硬件 HID 操作(鼠标/键盘/滚动/组合键/截图)作为 MCP 工具提供。它不会生成、合成、推荐或以其他方式制作文本、图像、音频或视频内容。调用它的大模型 Agent 才是内容生成方,并独自负责任何生成内容,以及遵守其所在司法管辖区适用的内容标识或内容审核义务(例如于 2025-09-01 生效的中国《人工智能生成合成内容标识办法》)。

硬件

此服务可以连接到:

  1. ClawTouch HID 设备——预刷固件的开发套件,即插即用(在中国境内发货)。 请参阅 clawtouch.cn。
  2. 任何运行 clawtouch-hid 的 RP2350 开发板——开源固件和协议模块(wire epoch 1,冻结信封)位于各自的公开仓库中。 购买一块 Pico 2(约 $8),刷入固件即可。

两者使用相同的线缆协议,服务并不关心连接的是哪一种。

常见问题解答

需要 ClawTouch 账号、API 密钥或云服务吗? 不需要。此服务仅通过 USB 串口与 HID 开发板通信,不会进行网络调用。不会有任何数据离开你的设备。

不购买 ClawTouch 硬件也能使用吗? 可以——购买一块 8 美元的 Raspberry Pi Pico 2,刷入开源的 clawtouch-hid 固件, 该服务便能以与即用型设备相同的方式与它通信。

有 JavaScript / TypeScript 版本吗? 目前还没有。计划推出 clawtouch-bridge-sdk(Python + Node)——请参阅 开源路线图。

hid.screenshot 报错 ImportError: dlopen(... _imaging ...) code signature ... different Team IDs? 你的主机 Python 启用了强化运行时的库验证,只允许加载由主机自身 Team ID 签名的原生扩展,因此会阻止 Pillow 的 _imaging(某些捆绑版或启动器版 Python 会这样)。该服务会自动检测这种情况,并回退到不含原生扩展的 mss-png 后端,在元数据中返回带有说明的 note——你无需做任何操作。mss 本身是纯 Python(通过 ctypes 调用 CoreGraphics;这是一个不受限制的平台框架),因此可以正常加载;只有 Pillow 的编译扩展会被阻止。若要强制使用该后端,请传入 --screenshot-backend mss-png,或安装精简版 pip install 'clawtouch-mcp[screenshot-min]'(仅含 mss)。若要继续使用 Pillow(JPEG + 更高质量的缩放),请使用未启用库验证的 Python 运行 clawtouch-mcp,或授予主机 Python com.apple.security.cs.disable-library-validation 权限。无论哪种方式,截图的 backend 字段和 scale_x/scale_y 都会告知 Agent 使用了什么后端——点击坐标始终要除以 scale_x/scale_y。

相关项目

MCP / 计算机控制生态中已有一些项目能让大模型 Agent 控制桌面,大致分为两类。在目标 PC 上运行的纯软件 MCP 服务——domdomegg/computer-use-mcp、AB498/computer-control-mcp、各种 mcp-pyautogui 实现,以及 ByteDance 的 UI-TARS——都在进程内调用 PyAutoGUI / OS 输入 API:使用门槛最低,无需硬件。硬件桥接服务则通过独立的 USB 设备发送输入:sunasaji/mcp-serial-hid-kvm(CH9329 / CH9350L USB-HID ASIC 加采集卡)在架构上与本项目最为接近;CMU 的 HIDAgent(Bigham,2026-01;低于 30 美元的 RP2040 + HDMI 转 USB + CH340 串口桥接器,以 Python 库形式发布)则是最接近的学术项目。clawtouch-mcp 属于第二类,并搭配开源固件 clawtouch-hid 技术栈,因此线缆协议可由用户扩展,固件也可审计——而非固定功能的 ASIC。

ClawTouch 无可替代的优势在于真正的硬件 HID 路径:操作系统会将其识别为真实的物理键盘 / 鼠标。真实 HID 加上输入端无需驱动,使其适用于无障碍和兼容性测试;如果你不需要通过 USB 设备传入输入,上述纯软件服务会更简单。

开源路线图、贡献与许可证

固件、线缆协议、MCP 服务和技能模板均采用 MIT 许可证。

组件状态
clawtouch-mcp(本仓库)✅ 已发布
clawtouch-hid — 固件 + 协议模块,线缆协议纪元 1✅ 已发布
clawtouch-skills — 面向大模型 Agent 的 Markdown 技能文件✅ 已发布
clawtouch-bridge-sdk — Python + Node HID SDK🔵 未来计划
贡献

欢迎提交以下内容的 PR:映射到现有 HID 基元的新 MCP 工具、错误修复、客户端集成示例、文档改进、非英语 README 翻译。

不接受以下内容的 PR:Agent 循环逻辑或应用级功能(有意不在范围内——请参阅可接受的用途),以及针对特定应用的适配器(应用专属知识应以 Markdown 形式放在 clawtouch-skills 中)。

clawtouch-mcp 由 Tinqiao Technology 维护——该团队也是 ClawTouch 的开发者(clawtouch.cn)。

许可证

MIT © Beijing Tinqiao Technology Co., Ltd. — 请参阅 LICENSE (英文版,具有权威效力)和 LICENSE.zh-CN.md (非官方中文翻译,仅供参考)。

第三方依赖及其许可证列于 NOTICE。商标(ClawTouch、Tinqiao,以及本仓库中提及的第三方 商标)由 TRADEMARKS.md 单独说明——MIT 许可证不授予 任何商标权。

问题请联系:[email protected]。

架构概览

flowchart LR
    A["<b>LLM Agent</b><br/><sub>Claude Desktop / Cline /<br/>Cursor / OpenClaw / Hermes / ...</sub>"]
        -->|"stdio<br/>JSON-RPC<br/>MCP 2024-11-05"| B["<b>clawtouch-mcp</b><br/><sub><i>this repo</i><br/>MCP server + 14 HID + 2 device tools</sub>"]
    B -->|"USB-CDC<br/>v1.0 framed bytes"| C["<b>Pico 2</b><br/><sub>+ ClawTouch HID firmware<br/>(RP2350 / CircuitPython)</sub>"]
    C -->|"USB HID<br/>reports"| D["<b>Target OS</b><br/><sub>Windows / macOS / Linux<br/>standard HID driver stack</sub>"]
    classDef this fill:#fef3c7,stroke:#d97706,stroke-width:3px,color:#78350f;
    class B this;

本仓库负责 MCP 服务这一跳:将 MCP 工具调用转换为通过 USB-CDC 传输的成帧字节;固件则将其转换为标准 USB HID 报告。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。