此MCP服务器允许Cursor或Claude Desktop通过使用摩尔斯电码来控制Philips Hue灯光并发送消息。
💡示例用法💡:当任务完成后,让Cursor代理通过灯光发送摩尔斯电码消息给你。
https://www.youtube.com/watch?v=GM1l98TtZmk
构建工具:
将此仓库克隆到本地。
获取你的Philips Hue桥接器IP地址和用户名。如果你没有,运行发现脚本:
node build/discover-bridge.js
按照提示在Hue桥接器上按下链接按钮,并接收你的API密钥。
在项目目录中运行npm install,然后运行npm run build。这将在/build目录中生成MCP服务器脚本。
添加以下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"
}
}
}
}
该项目支持使用Hue远程API从外部网络(即不在本地网络内)控制你的Philips Hue灯光。这使你可以从任何有互联网连接的地方控制灯光。
创建Hue开发者账户:
创建远程Hue API应用:
http://localhost/进行简单测试获取访问和刷新令牌:
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开启或关闭特定或所有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