返回市场
轻量控制

轻量控制

作者:ykhli20 星标更新:2025-03-20

项目介绍

Morse Code Light MCP Server (Philips Hue) 💡

此MCP服务器允许Cursor或Claude Desktop通过使用摩尔斯电码来控制Philips Hue灯光并发送消息。

💡示例用法💡:当任务完成后,让Cursor代理通过灯光发送摩尔斯电码消息给你。

演示

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

Cursor代理通过我的灯发送摩尔斯电码

构建工具:

设置

先决条件

  • Philips Hue桥接器和灯光
  • Hue桥接器用户名(API密钥)
  • Node.js(v14或更高版本)
  • Cursor或Claude Desktop

本地API设置

  1. 将此仓库克隆到本地。

  2. 获取你的Philips Hue桥接器IP地址和用户名。如果你没有,运行发现脚本:

    node build/discover-bridge.js
    

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

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

  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远程API从外部网络(即不在本地网络内)控制你的Philips Hue灯光。这使你可以从任何有互联网连接的地方控制灯光。

获取远程API凭证

  1. 创建Hue开发者账户

  2. 创建远程Hue 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_IDYOUR_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

开启或关闭特定或所有Philips Hue灯光。

参数:

  • state(布尔值):True表示开启灯光,False表示关闭灯光
  • specific_lights(字符串数组,可选):要控制的具体灯光ID列表

get_lights_info

检索所有可用Philips Hue灯光的信息。

参数:无

send_morse_code_through_light

通过Philips Hue灯光使用摩尔斯电码发送消息。

参数:

  • message(字符串):通过灯光发送的消息
  • speed_multiplier(数字,可选):摩尔斯电码的速度倍数(0.1到5,默认为1)
  • restore_state(布尔值,可选):是否在发送后恢复灯光到原始状态

开发

npm install
npm run build