cachito诱桃「失控4.0」BLE协议逆向 + MCP Server
通过逆向工程破解了诱桃(Cachito)失控 4.0 智能吮吸设备的 BLE 控制协议,并实现了一个 MCP (Model Context Protocol) Server,让 AI 助手可以直接控制设备。
与大多数 BLE 设备不同,失控 4.0 的电机控制不通过 GATT Write 特征值写入,而是通过 BLE Advertising(广播模式)实现:
- 手机作为 Peripheral(广播方),将控制参数编码进 128-bit Service UUID - 设备作为 Observer(扫描方),被动接收广播并解码执行
这也是为什么用 nRF Connect 连上设备后,往 GATT 写任何数据都不会有反应。
属性 值 ------------ 蓝牙名称 HJ-002 芯片厂商 connectBlue AB Manufacturer ID 0x0071 GATT Services FF12 (握手), FFE0 (未使用)
控制指令通过 BLE Advertising Data 中的 128-bit Service UUID 传递:
字段 位置 说明 ------------------ 计数 Byte 0 随机数/计数器,每帧变化 固定 Byte 1 始终为 0x02 强度 Byte 2 0x00-0x64 (0-100),设备物理最低启动阈值约 50 填充 Byte 3-5 00 00 64(64 = 最大强度标识) 固定 Byte 6-10 00 01 27 C6 00(设备配对参数) 模式 Byte 11 0x51=吮吸开, 0x01=关, 0x0F=休眠 校验 Byte 12 校验和 设备ID Byte 13-15 17 00 71(对应 Manufacturer ID 0x0071)
值 含义 ------------ 0x51 吮吸运行 0x01 停止 0x02 过渡态 0x52 未知模式 0x0F 休眠/断开
1. 设备识别 — 用 nRF Connect 扫描,通过开关机对比确认蓝牙名 HJ-002 2. GATT 探测 — 发现 FF12/FFE0 两组服务,尝试写入各种指令均无响应 3. 协议抓包 — 安装 Apple Bluetooth Logging Profile,用 Cachito 小程序操作设备,导出 sysdiagnose 4. HCI 日志分析 — 解析 .pklg 文件,发现 GATT 连接仅有握手,无控制指令 5. 关键突破 — 参考星轨工坊对诱桃大秀 3.0 的研究,意识到控制走 BLE 广播而非 GATT 6. 广播数据解码 — 在 HCI 日志的 LESetExtendedAdvertisingData 命令中找到 77 个控制帧,完整还原协议 7. 验证 — 用 macOS CoreBluetooth 的 CBPeripheralManager 广播控制 UUID,设备成功响应
- macOS(需要 CoreBluetooth) - Python 3.10+ - 蓝牙 4.0+
编辑 ~/Library/Application Support/Claude/claudedesktopconfig.json:
工具 说明 ------------ suctionstart(intensity) 开启吮吸,强度 1-100 suctionstop() 停止 suctionset(intensity) 调节强度 suctionstatus() 查询状态 suctionpattern(pattern, duration, maxintensity) 预设模式:wave / pulse / climb
From the project README.
Add the radar badge to your README — it shows your project was picked up by MCP Radar and links to this page:
[](https://mcp.liqiwa.com/s/Moonriseandset--cachito-shikong-mcp.html)
An OKF-backed Model Context Protocol (MCP) server delivering persistent long-term memory and SQLite FTS5 search for AI agents.
sosoj92/jarvis-assistant-vocalAssistant vocal local en francais : Claude ou Ollama (offline), domotique Hue, OBS, agenda, navigateur, appels Twilio, serveur MCP. Python.
Stupidoodle/swissdevjobs-cliSearch & apply to ~4,700 salary-transparent tech jobs across 7 countries (🇨🇭🇩🇪🇬🇧🇺🇸🇨🇦🇳🇱🇫🇷) from your terminal or AI agent — zero-dependency Python CLI + MCP server + Claude Code plugin
agents-universe/agents-universe让智能体像人一样学习和工作,共享智能体和项目记忆
bybit-exchange/kaasTurn scattered notes, docs and transcripts into a queryable Markdown wiki — an LLM knowledge-base compiler with MCP access, no embeddings, self-hosted.
alxgntv/substack-api-mcpMCP server for Substack posts (FastMCP + substack-api-client)
The top new MCP servers of the week, every Monday. No spam, unsubscribe anytime.