Community程式設計與開發github.com

workled MCP 控制器

一個用於控制 WorkLED 裝置的 MCP 技能,可管理 LED 狀態、亮度、效果、巨集,並強制執行代理狀態協定。

workled MCP 控制器 是什麼?

此技能專為 AI 代理(如 Claude Code 或 Cursor)設計,用於控制 WorkLED LED 硬體裝置。它定義了一個強制的代理狀態協定,要求代理在每輪互動中透過 MCP 工具 `set_agent_state` 精確報告其狀態(思考中、閒置、等待輸入、錯誤),確保 LED 指示燈與代理的實際活動同步。支援的 MCP 工具包括設定/讀取 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 格式取得 effect_name 的設定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

貢獻

相關技能