{"repo":"tianyupaipai-cmd/stackchan-cloud-mcp","free":true,"listed":false,"github":"https://github.com/tianyupaipai-cmd/stackchan-cloud-mcp","clone":"git clone https://github.com/tianyupaipai-cmd/stackchan-cloud-mcp.git","description":"Cloud MCP gateway that connects a StackChan desk robot to claude.ai — OAuth 2.1 bridge, reflex daemon, pixel avatar toolkit, and the field notes from making it work","language":"JavaScript","stars":24,"topics":["claude","desk-robot","esp32","m5stack","mcp","oauth2","robotics","stackchan"],"license":"MIT","category":"mcp-servers","readme_excerpt":"stackchan-cloud-mcp 把 StackChan 桌面机器人接到 claude.ai ， 让它从\"要连着一台电脑\"变成 一台自己在线的设备 ：手机上跟 Claude 说话，桌上的机器人开口、换表情、转头、亮灯。 Turn a StackChan desk robot into a device claude.ai can talk to directly — no laptop in the loop. Speak to Claude on your phone; the robot on your desk speaks back. 整套跑在一台便宜 VPS 上。设备直连 VPS，家里那台电脑可以关机。 这个仓库解决什么 上游 kisaragi-mochi/stackchan-mcp 已经把\"网关 ↔ 设备\"这段做得很好。这个仓库补的是 把它搬上公网、接进 claude.ai 之后 遇到的那一层问题： 问题 症状 在这里的解法 --- --- --- claude.ai 只认 OAuth 2.1 静态 token 连不上自定义连接器 cloud/oauth proxy.py — 最小可用 OAuth 授权服务器（DCR + PKCE + 单租户门禁） NAT 回收长连接 设备稳定 90 秒掉线，两端都没发关闭帧 密心跳 20s/60s（ patches/ ） 音频推不出去 TTS 合成成功但设备不出声 缺 opuslib （ patches/ ） 自定义表情包被拒 设备退回固件默认表情， set avatar 全无效 放开网关尺寸校验（ patches/ ） STT 模型下不动（中国大陆） listen 卡在 Loading model HF 镜像 + 禁 Xet（ patches/ ） 开机版本检查等超时 设备开机后一两分钟才连上网关 cloud/fake ota.py — 永远回\"已是最新版\" 断线后一身\"裸奔\" 重连后表情丢失、音量亮度被重置 cloud/reflex.py — 反射弧守护进程 踩坑全录在 patches/README.md ，每条都有症状 / 根因 / 修改 / 验证。 这部分大概是这个仓库最值钱的东西——照着走能省掉一整天。 组成 目录 内容 --- --- cloud/oauth proxy.py OAuth 2.1 门：让 claude.ai 自定义连接器能连上你的网关。单租户，一个门禁密钥。 cloud/fake ota.py 假 OTA 端点：让设备开机的版本检查秒过，不然它会等到超时才连网关。 cloud/reflex.py 反射弧守护进程：重连自动补表情/恢复设备偏好、说完自动收表情、摸头反馈、待机小动作与省电。 cloud/restore.sh 上游重装（ uv tool install --force ）会冲掉包目录里的补丁，这个脚本一键打回来。 patches/ 对上游网关的 4 处修改：说明 + 幂等打补丁脚本。 sprites/ 像素表情包生成器（纯 JS 无依赖）：16 表情 × A/B 帧，RGB565，直接生成设备能吃的 .bin 。 docs/ 部署指南。 快速开始 前置：一台能被公网访问的 VPS、一个域名（走 Cloudflare Tunnel 则不需要公网 80/443）、 一台刷了 xiaozhi-esp32 系固件的 StackChan。 完整步骤（systemd unit、Cloudflare Tunnel、claude.ai 连接器怎么加）见 docs/DEPL","default_branch":null,"files":null,"tree":[],"storefront":"/r/tianyupaipai-cmd","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tianyupaipai-cmd/stackchan-cloud-mcp/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}