Community编程与开发github.com

workled MCP 控制器

通过 MCP 协议控制 workled 设备,管理 LED 状态、亮度和特效,并配置触控手势宏。

workled MCP 控制器 是什么?

workled MCP 控制器是一个用于与 workled 硬件设备交互的 AI 代理技能,允许代理通过标准化的 MCP 工具集实时管理设备状态。该技能支持在 Claude Code、Cursor、Codex 等兼容 MCP 的平台上使用。它强制要求代理在每次状态转换时调用 `set_agent_state` 工具,使 LED 能够反映思考、空闲、输入或错误等状态。此外,它提供了设置亮度、应用颜色或动画效果、以及为触控垫手势(如单击、双击、长按)配置宏的功能。内置了自然语言到 HSV 颜色的映射表,简化了颜色控制。该技能还包含调试和故障排除指南,确保设备响应不及时能快速恢复。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add git-hub-cloud/workled

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

workled MCP 控制器 是做什么的?

强制性状态协议

在每次状态转换时通过 MCP 调用 set_agent_state:

状态时机
thinking每次回复的首次工具调用;用户提交消息时
idle对话结束;会话被拆除时
input代理等待用户输入时——调用输入工具(question/ask/confirm)、处于客户端模态框内(hermes _confirm_destructive_slash 等)、或渲染纯文本选项列表/多选问题并等待用户选择时
error运行时错误发生时

每轮流程(每轮均需执行,按顺序):

  1. 轮次开始/收到用户消息 → set_agent_state("thinking") —— 第一个动作,在任何其他工具调用之前。
  2. 在渲染选项/选择/打开任何模态框/提问之前 → set_agent_state("input")。
  3. 轮次结束、工作完成、无待处理输出 → set_agent_state("idle")。
  4. 运行时错误/工具调用失败 → set_agent_state("error")。

回复前检查 —— 在发出最终可见消息之前检查:

  • 本轮是否至少调用了一次 set_agent_state?
  • LED 状态是否匹配即将显示的内容(完成时 idle,询问时 input,工作中 thinking)?
  • 如果其中任何一项为否,先发出正确的 set_agent_state 调用,然后再回复。

MCP 工具参考

工具属性描述用法
set_agent_statestate_name: string设置 LED 以反映代理状态(thinking/idle/input/error)set_agent_state("thinking")
get_agent_state—返回当前代理 LED 状态:idle/thinking/input/error(未设置时返回空字符串)get_agent_state()
set_brightnessbrightness: integerLED 亮度 0-255;0 = 关闭set_brightness(128)
get_brightness—返回当前 LED 亮度 0-255;get_brightness()
set_effecteffect_name: string, effect_json: stringeffect_name ∈ led(手动效果)/idle/thinking/input/error;effect_json 是 JSON 字符串 {"type","hue","saturation","value","speed"}。必须先打开灯(set_brightness > 0)。将自然语言颜色映射到 HSV(见下表)。set_effect("led", '{"type":"breathe","hue":180,"speed":50}')
get_effecteffect_name: string以 JSON 形式获取效果名称的配置get_effect("thinking")
set_macromacro_name: string, macro_json: string设置触摸板手势的宏;macro_name ∈ single_click/double_click/long_press_start;macro_json 是一段数组的 JSON(参见宏格式);空 macro_json 重置set_macro("single_click", '[{"combo":"ctrl+c"}]')
get_macromacro_name: string以 JSON 数组字符串形式返回宏,未设置时返回空字符串(密码值将被屏蔽)get_macro("single_click")

将自然语言颜色映射到 set_effect

除非用户要求动画,否则使用 type:"solid"。将颜色名称映射到 HSV:

描述typehuesaturationvalue
纯白solid00255
暖白solid3080255
红色solid0255255
橙色solid30255255
黄色solid60255255
绿色solid120255255
青色/蓝绿色solid180255255
蓝色solid240255255
紫色/紫罗兰solid270255255
粉色solid330200255
昏暗/夜间模式solid308060
彩虹(动画)rainbow---

经验法则:hue 0-359 选择色调,saturation 0-255(0 = 白色/柔和,255 = 鲜艳),value 0-255 亮度。柔和/白色调使用低饱和度;鲜艳色调使用 255。

宏格式

完整宏参考 macro_format.md

设置与故障排除

如果设备无响应,请运行 node <skill-dir>/index.js status 并按照输出的 JSON 中的 hint 操作。完整安装/部署/故障排除参考:device_setup.md

贡献

相关技能