这是一个用于控制 Nanoleaf 智能灯的模型上下文协议(MCP)服务器。该服务器提供了通过 Warp 终端或任何兼容 MCP 的客户端来控制 Nanoleaf 设备的工具。
为了获得最简单的安装体验,可使用提供的安装脚本:
./setup.sh
此脚本将完成以下操作:
git clone
cd nanoleaf-mcp-server
docker build -t nanoleaf-mcp-server-nanoleaf-mcp-server .
选项 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 扫描
# 扫描网络中在 Nanoleaf 端口上响应的设备
nmap -p 16021 192.168.1.0/24
选项 C:查看路由器管理面板中的已连接设备
将 Nanoleaf 设备置于配对模式:
立即获取授权令牌(30 秒内):
# 将 192.168.1.100 替换为你的设备 IP
curl -X POST http://192.168.1.100:16021/api/v1/new
你应该会收到类似如下的响应:
{"auth_token":"YourAuthTokenHere123456789"}
在项目目录中创建一个 .env 文件:
NANOLEAF_IP=192.168.1.100
NANOLEAF_AUTH_TOKEN=YourAuthTokenHere123456789
NANOLEAF_PORT=16021
NANOLEAF_PROTOCOL=http
# 使用环境变量进行测试
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 设备的详细信息!
使用示例脚本测试所有功能:
./examples.sh
这将展示所有可用功能,包括开关灯、更改颜色和应用特效。
# 开灯
curl -X PUT http://your-ip:16021/api/v1/your-token/state \
-H "Content-Type: application/json" \
-d '{"on":{"value":true}}'
# 关灯
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"}'
以下是一个使用实际值的完整工作示例(请替换为你自己的值):
: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
将以下内容添加到你的 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 替换为你实际的授权令牌。nanoleaf-mcp-server-nanoleaf-mcp-server 构建了 Docker 镜像。如果你遇到与路径相关的问题,也可以使用以下替代方法:
{
"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 中使用 Nanoleaf 工具:
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 - 在设备配对模式下进行授权。nmap -p 16021 192.168.1.0/24--network=host)。.env 文件是否存在且值正确。--env-file .env。--env-file。nanoleaf-mcp-server-nanoleaf-mcp-server。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
docker images | grep nanoleaf已在以下设备上进行测试:
该服务器应该适用于大多数支持 v1 API 的 Nanoleaf 设备。
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
欢迎提交问题、功能请求或拉取请求!