摩尔斯电灯控制服务

通过摩尔斯电码控制飞利浦Hue灯并发送消息的服务,适用于任务完成提醒等场景。

  • by ykhli
  • TypeScript
  • 本地部署
  • 22 星标
  • 更新于
在 GitHub 查看 ykhli/mcp-light-control

使用说明

摩尔斯电码灯MCP服务器(飞利浦秀)💡

此MCP服务器允许Cursor或Claude Desktop 控制飞利浦秀灯,并使用莫尔斯电码通过它们发送信息.

💡示例用例💡: 告诉Cursor代理在任务完成后向您发送莫尔斯电码消息。

演示

https://www.youtube.com/watch?v=GM1l98TtZmk

内置:

设置

先决条件

  • 飞利浦秀桥和灯
  • Hue桥接用户名(API密钥)
  • Node.js(v14或更高版本)
  • 光标或克劳德桌面

本地API设置

  1. 在本地克隆此存储库。

  2. 获取您的飞利浦秀桥接器IP地址和用户名。如果没有,请运行发现脚本:

    node build/discover-bridge.js
    

    按照提示按下Hue桥上的链接按钮并接收API密钥。

  3. 跑 npm install 随后 npm run build 在项目目录中。这将在中生成MCP服务器脚本 /build 目录。

  4. 添加以下MCP配置。在Cursor中,它位于“设置”->“MCP”->“添加新的MCP服务器”下。在Claude Desktop中,它位于“设置”->“MCP”->“添加新的MCP服务器”下。

{
  "mcpServers": {
    "control_lights": {
      "command": "node",
      "args": ["ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js"],
      "env": {
        "HUE_USERNAME": "YOUR_HUE_USERNAME",
        "BRIDGE_IP": "YOUR_BRIDGE_IP"
      }
    }
  }
}

远程API设置

该项目支持使用Hue Remote API远程控制Philips Hue灯(从本地网络外部)。这使您能够通过互联网连接从任何地方控制灯光。

正在获取远程API凭据

  1. 创建Hue开发人员帐户:

    • 注册地址:https://developers.meethue.com/
  2. 创建远程色调API应用程序:

    • 首选https://developers.meethue.com/my-apps/
    • 使用以下详细信息创建新应用程序:
      • 应用程序名称:为您的应用程序选择一个名称
      • 回调URL:使用 http://localhost/ 用于简单测试
      • 应用程序描述:应用程序的简要描述
    • 创建应用程序后,您将收到:
      • 客户端ID
      • 客户端密钥
  3. 获取访问权限并刷新令牌:

    a.构造一个授权URL并在浏览器中打开它:

    https://api.meethue.com/oauth2/auth?clientid=YOUR_CLIENT_ID&response_type=code&state=anystring&appid=YOUR_APP_NAME&deviceid=test-device&devicename=TestDevice
    

    替换 YOUR_CLIENT_ID 和 YOUR_APP_NAME 与你的价值观。

    b.使用您的Hue开发者帐户登录并授权该应用程序。

    c.您将被重定向到带有代码参数的回调URL。

    d.从URL中提取代码(例如。, ?code=abcd1234&state=anystring).

    e.使用cURL或Postman将代码兑换为代币:

    curl -X POST https://api.meethue.com/oauth2/token \
      -d "code=YOUR_AUTHORIZATION_CODE&grant_type=authorization_code" \
      -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
    

    f.答复将包括:

    {
      "access_token": "YOUR_ACCESS_TOKEN",
      "refresh_token": "YOUR_REFRESH_TOKEN",
      "token_type": "bearer",
      "expires_in": 604800
    }
    

    安全地存储这些令牌。访问令牌的有效期约为7天,刷新令牌的有效期限约为100天。

将此添加到MCP配置中:

{
  "mcpServers": {
    "control_lights": {
      "command": "node",
      "args": ["ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js"],
      "env": {
        "USE_REMOTE": "true",
        "REMOTE_CLIENT_ID": "YOUR_CLIENT_ID",
        "REMOTE_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
        "REMOTE_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN",
        "REMOTE_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN"
      }
    }
  }
}

可用工具

control_lights

打开或关闭特定或所有飞利浦秀灯。

参数:

  • state (boolean):True表示开灯,false表示关灯
  • specific_lights (字符串数组,可选):要控制的特定灯光ID列表

get_lights_info

检索所有可用飞利浦秀灯的信息。

参数:无

send_morse_code_through_light

使用莫尔斯电码通过飞利浦秀灯发送信息。

参数:

  • message (string):通过灯光发送的信息
  • speed_multiplier (数字,可选):莫尔斯电码的速度倍增器(0.1到5,默认值1)
  • restore_state (布尔值,可选):发送后是否将灯光恢复到原始状态

发展

npm install
npm run build