Nanoleaf MCP服务器
用于控制Nanoleaf智能灯的模型上下文协议(MCP)服务器。该服务器提供工具,通过Warp终端或任何兼容MCP的客户端控制您的Nanoleaf设备。
特性
- 🔍 自动发现 您网络上的Nanoleaf设备
- 🔗 直接IP连接 用于特定设备定位
- 🔐 授权支持 用于安全设备配对
- 💡 完全控制 灯光、亮度、颜色和效果
- 🐳 Docker化 便于部署
- 🖥️ 曲速终端集成
- 🔒 安全审计 具有定期漏洞检查的依赖关系
可用工具
get_nanoleaf_info-获取详细的设备信息turn_on_nanoleaf/turn_off_nanoleaf-控制电源状态set_brightness-调整亮度(0-100)set_color-使用色调(0-360)和饱和度(0-100)设置颜色set_effect-应用灯光效果get_effects-列出所有可用效果discover_nanoleaf-发现网络上的设备connect_to_ip-连接到特定IP地址authorize_nanoleaf-在配对模式下使用设备进行授权
快速设置指南
自动设置(推荐)
为了获得最简单的安装体验,请使用附带的安装脚本:
./setup.sh此脚本将:
- 构建Docker镜像
- 扫描网络上的Nanoleaf设备
- 帮助您获取授权令牌
- 创建所有配置文件
- 测试设置
- 生成扭曲配置
手动设置
先决条件
- Docker已安装在您的系统上
- 网络上的Nanoleaf设备
- 翘曲端子(可选,用于MCP集成)
步骤1:克隆和构建
git clone
cd nanoleaf-mcp-server
docker build -t nanoleaf-mcp-server-nanoleaf-mcp-server .第二步:找到你的Nanoleaf设备
选项A:自动发现
docker run --rm -i --network=host nanoleaf-mcp-server echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "discover_nanoleaf", "arguments": {}}}'选项B:手动IP扫描
# Scan your network for devices responding on Nanoleaf port
nmap -p 16021 192.168.1.0/24选项C:检查路由器管理面板中连接的设备
步骤3:获取授权令牌
- 将您的Nanoleaf设备置于配对模式:
- 按住Nanoleaf设备上的电源按钮5-7秒 - 寻找配对指示器(通常是闪烁的灯)
- 立即获取身份验证令牌(30秒内):
# Replace 192.168.1.100 with your device's IP
curl -X POST http://192.168.1.100:16021/api/v1/new你应该得到这样的回应:
{"auth_token":"YourAuthTokenHere123456789"}步骤4:配置环境
创建一个 .env 项目目录中的文件:
NANOLEAF_IP=192.168.1.100
NANOLEAF_AUTH_TOKEN=YourAuthTokenHere123456789
NANOLEAF_PORT=16021
NANOLEAF_PROTOCOL=http步骤5:测试您的设置
# Test with environment variables
docker run --rm -i --network=host --env-file .env nanoleaf-mcp-server echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_nanoleaf_info", "arguments": {}}}'如果成功,您将看到有关Nanoleaf设备的详细信息!
步骤6:运行示例(可选)
使用示例脚本测试所有功能:
./examples.sh这将演示所有可用功能,包括打开/关闭灯光、更改颜色和应用效果。
工作示例
以下是一个完整的实际值示例(替换为您自己的值):
- 在以下位置发现设备:
:16021 - 已获得身份验证令牌: ``
- 翘曲配置:
{
"mcpServers": {
"nanoleaf": {
"command": "docker",
"args": [
"run", "--rm", "-i", "--network=host",
"-e", "NANOLEAF_IP=",
"-e", "NANOLEAF_AUTH_TOKEN=",
"-e", "NANOLEAF_PORT=16021",
"-e", "NANOLEAF_PROTOCOL=http",
"nanoleaf-mcp-server-nanoleaf-mcp-server"
],
"env": {}
}
}
}- 测试命令:
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "set_effect", "arguments": {"effect": "Cyberpunk 2077"}}}' | docker run --rm -i --network=host -e NANOLEAF_IP= -e NANOLEAF_AUTH_TOKEN= nanoleaf-mcp-server-nanoleaf-mcp-server曲速终端集成
添加到曲速MCP配置
将此添加到您的Warp MCP服务器配置中(用您的实际设备IP和身份验证令牌替换这些值):
{
"mcpServers": {
"nanoleaf": {
"command": "docker",
"args": [
"run", "--rm", "-i", "--network=host",
"-e", "NANOLEAF_IP=192.168.1.100",
"-e", "NANOLEAF_AUTH_TOKEN=YourAuthTokenHere123456789",
"-e", "NANOLEAF_PORT=16021",
"-e", "NANOLEAF_PROTOCOL=http",
"nanoleaf-mcp-server-nanoleaf-mcp-server"
],
"env": {}
}
}
}重要提示:
- 替换
192.168.1.100使用您的Nanoleaf设备的IP地址 - 替换
YourAuthTokenHere123456789使用您的实际身份验证令牌 - 确保你已经构建了带有标签的Docker镜像
nanoleaf-mcp-server-nanoleaf-mcp-server
备选配置(如果出现路径问题)
如果您遇到与路径相关的问题,也可以使用此替代方法:
{
"mcpServers": {
"nanoleaf": {
"command": "bash",
"args": ["-c", "cd /path/to/nanoleaf-mcp-server && docker run --rm -i --network=host --env-file .env nanoleaf-mcp-server-nanoleaf-mcp-server"],
"env": {}
}
}
}在Warp中使用
配置后,您可以直接在Warp中使用Nanoleaf工具:
- 要求开灯/关灯
- 更改亮度和颜色
- 应用“北极光”或“赛博朋克”等酷炫效果
- 获取设备信息
手动使用示例
打开/关闭灯
# Turn on
curl -X PUT http://your-ip:16021/api/v1/your-token/state \
-H "Content-Type: application/json" \
-d '{"on":{"value":true}}'
# Turn off
curl -X PUT http://your-ip:16021/api/v1/your-token/state \
-H "Content-Type: application/json" \
-d '{"on":{"value":false}}'设置亮度
curl -X PUT http://your-ip:16021/api/v1/your-token/state \
-H "Content-Type: application/json" \
-d '{"brightness":{"value":50}}'应用效果
curl -X PUT http://your-ip:16021/api/v1/your-token/effects \
-H "Content-Type: application/json" \
-d '{"select":"Northern Lights"}'故障排除
找不到设备
- 确保设备位于同一网络上
- 检查防火墙设置
- 尝试手动IP扫描:
nmap -p 16021 192.168.1.0/24
授权失败
- 设备必须处于配对模式(按住电源按钮5-7秒)
- 配对模式仅持续约30秒
- 确保没有其他设备正在控制它
连接问题
- 验证IP地址是否正确
- 检查设备是否使用HTTPS(一些较新的型号)
- 确保Docker具有网络访问权限(
--network=host)
环境变量不起作用
- 检查
.env文件存在并且具有正确的值 - 验证Docker命令是否包含
--env-file .env - 确保Warp配置中的文件路径是绝对的
翘曲终端问题
“系统找不到指定的路径”错误
- 使用直接环境变量配置,而不是
--env-file - 确保你的Docker镜像标签完全匹配:
nanoleaf-mcp-server-nanoleaf-mcp-server - 如果路径问题仍然存在,请尝试其他bash配置
MCP服务器在Warp中没有响应
- 验证Docker镜像是否使用正确的标签构建
- 检查配置中的IP地址和身份验证令牌是否正确
- 首先手动测试Docker命令:
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_nanoleaf_info", "arguments": {}}}' | docker run --rm -i --network=host -e NANOLEAF_IP=your-ip -e NANOLEAF_AUTH_TOKEN=your-token nanoleaf-mcp-server-nanoleaf-mcp-server日志中“MCP服务器已退出”
- 这通常表示存在配置问题
- 检查所有环境变量是否设置正确
- 确保Docker镜像存在:
docker images | grep nanoleaf
设备兼容性
测试方法:
- Nanoleaf帆布
- Nanoleaf灯板
- Nanoleaf六边形
应与大多数支持v1 API的Nanoleaf设备配合使用。
文档
- 依赖性审计报告 -详细的安全审计和依赖关系更新信息
- 设置脚本 -包括自动设置和测试脚本
- Docker配置 -容器化部署,便于管理
贡献
请随时提交问题、功能请求或拉取请求!
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
