关于 LIFX LAN MCP
LIFX LAN MCP 是一个 MCP 服务,可在本地网络中控制 LIFX 灯,无需云连接。它面向需要查询灯具并更改其状态或颜色的 LLM 客户端。
主要功能
- 01发现局域网中的 LIFX 灯
- 02读取灯具状态和标签
- 03开灯或关灯
- 04设置颜色和渐变时长
- 05支持 stdio 与 HTTP/SSE 传输
适用场景
- 01查找灯具并查看当前状态
- 02开关指定灯具
- 03调整颜色、亮度或色温
MCP 相关
提供用于发现 LIFX 灯、读取状态、开关灯和设置颜色的工具。服务必须与灯具连接到同一 Wi-Fi 网络。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
LIFX LAN MCP

一个 Model Context Protocol (MCP) 服务,可让大模型通过本地局域网(LAN)控制 LIFX 灯具,无需连接云端。
注意: MCP 服务必须与 LIFX 灯具连接到同一个 Wi-Fi 网络,工具才能正常工作。
功能
- 列出网络中所有可用的 LIFX 灯具
- 获取灯具的当前状态(颜色、开/关状态、标签)
- 打开/关闭灯具
- 更改灯具颜色
- 在本地网络中运行(无需云端;服务必须运行在同一网络中)
- 可配置传输方式(sse 或 stdio)
安装
NPX(通过本地 stdio 配置)- 默认
将以下内容或类似配置添加到大模型的 MCP 配置文件中(例如,对于 Claude Desktop,该文件为 claude_desktop_config.json)。
{
"mcpServers": {
"lifx-lan-mcp": {
"command": "npx",
"args": [
"-y",
"lifx-lan-mcp"
]
}
}
}
运行服务
服务有两种运行模式:stdio(默认)或 HTTP 服务模式。服务支持 2025-03-26 和 2024-11-05 两个协议版本。
Stdio 模式(默认)
Stdio 模式是运行服务最简单的方式,它通过标准输入/输出与大模型直接通信。这是默认模式,无需额外配置。在此模式下,MCP 服务由与其通信的客户端直接启动。
# Run in stdio mode (default)
npx lifx-lan-mcp
# Or explicitly specify stdio mode
npx lifx-lan-mcp --mode stdio
HTTP 服务模式
警告: HTTP 服务模式存在危险。目前它不支持身份验证,这意味着攻击者可能诱骗大模型向其提供数据,或者让恶意客户端控制你的 LIFX 灯具。在支持身份验证之前,请自行承担风险。
HTTP 服务模式可将服务作为独立服务运行,并通过 HTTP 访问。当你想要让服务独立于大模型客户端运行时(例如,通过网络运行),此模式会很有用。
# Run in HTTP server mode on default port (3000)
npx lifx-lan-mcp --mode sse
# Run in HTTP server mode on a specific port
npx lifx-lan-mcp --mode sse --port 8080
协议版本
HTTP 服务支持两个协议版本:
-
2025-04-21 协议(最新)
- 所有操作都使用
/mcp端点 - 支持 HTTP 和 SSE 传输
- 客户端配置示例:
{ "mcpServers": { "lifx-lan-mcp": { "url": "http://localhost:3000/mcp" } } } - 所有操作都使用
-
2025-03-26 协议(旧版)
- 使用
/sse端点建立连接 - 使用
/message端点发送消息 - 客户端配置示例:
{ "mcpServers": { "lifx-lan-mcp": { "url": "http://localhost:3000/sse" } } } - 使用
工具
-
lifx_lan_list_lights
- 列出用户局域网(LAN)中当前可用的所有 Lifx 灯
- 每盏灯都由唯一的字符串标签标识
- 包含灯的其他信息,例如组和位置
- 输入:无需输入
-
lifx_lan_get_lights_state
- 获取一个或多个 LIFX 灯的当前状态,包括颜色、开关状态、组和位置
- 输入:
labels(string[]):要获取状态的灯标签数组
-
lifx_lan_set_lights_color
- 设置一个或多个 Lifx 灯的颜色
- 输入:
labels(string[]):要设置颜色的灯标签数组color(object):颜色规格hue(number):色相值(0.0-1.0)saturation(number):饱和度值(0.0-1.0)brightness(number):亮度值(0.0-1.0)kelvin(number, optional):以开尔文为单位的色温(1500-9000,默认为 3500)
duration(number, optional):渐变时长,单位为毫秒
-
lifx_lan_turn_on_lights
- 打开一个或多个 Lifx 灯,可选设置特定颜色
- 输入:
labels(string[]):要打开的灯标签数组color(object, optional):更改颜色时使用的颜色规格hue(number, optional):色相值(0.0-1.0)saturation(number, optional):饱和度值(0.0-1.0)brightness(number, optional):亮度值(0.0-1.0)kelvin(number, optional):以开尔文为单位的色温
duration(number, optional):渐变时长,单位为毫秒
-
lifx_lan_turn_off_lights
- 关闭一个或多个 Lifx 灯
- 输入:
labels(string[]):要关闭的灯标签数组duration(number, optional):渐变时长,单位为毫秒
开发
先决条件
- Node.js
- TypeScript
- 接入本地网络的 LIFX 灯
从源代码构建
- 克隆仓库:
git clone https://github.com/simon-duchastel/lifx-lan-mcp.git
cd lifx-lan-mcp
- 安装依赖:
npm install
- 构建项目:
npm run build
MCP 定义位于 index.ts 中,其中包含所有可供大模型使用的工具。工具调用的 API 位于 src/ 文件夹中。
开发脚本
npm run prepare- 编译项目(构建dist/index.js)
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
联系方式
欢迎通过 [email protected] 联系我们,或提交 GitHub 问题。
如果您觉得这个项目有用,可以请我喝杯咖啡。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。