使用说明
LIFX LAN MCP
A. 模型上下文协议(MCP) 服务器,允许LLM在没有云连接的情况下通过局域网(LAN)控制LIFX灯。
备注 MCP服务器必须与LIFX灯在同一wifi网络上运行,才能使工具工作。
特性
- 列出网络上所有可用的LIFX灯
- 获取灯光的当前状态(颜色、开/关、标签)
- 打开/关闭灯
- 更改灯光颜色
- 本地网络操作(不需要云,服务器必须在同一网络上运行)
- 可配置传输(sse或stdio)
安装
NPX(通过本地stdio配置)-默认值
将此或类似内容添加到LLM MCP配置文件中(例如 克劳德桌面 这是 claude_desktop_config.json).
{
"mcpServers": {
"lifx-lan-mcp": {
"command": "npx",
"args": [
"-y",
"lifx-lan-mcp"
]
}
}
}
运行服务器
服务器可以在两种模式下运行:stdio(默认)或HTTP服务器模式。服务器支持2025-03-26和2024-11-05协议版本。
标准模式(默认)
Stdio模式是运行服务器的最简单方式,它通过标准输入/输出直接与LLM通信。这是默认模式,不需要额外的配置。在此模式下,MCP服务器 由与其通信的客户端直接启动。
# Run in stdio mode (default)
npx lifx-lan-mcp
# Or explicitly specify stdio mode
npx lifx-lan-mcp --mode stdio
HTTP服务器模式
警告: HTTP服务器模式是危险的。它目前不支持身份验证,这意味着攻击者可以欺骗您的LLM提供数据,或者允许恶意客户端控制您的LIFX灯。在支持身份验证之前,使用风险由您自行承担。
HTTP服务器模式允许服务器作为可通过HTTP访问的独立服务运行。当您希望将服务器与LLM客户端分开运行时,例如通过网络运行,这非常有用。
# 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_list_lights
- 列出用户局域网(LAN)上当前可用的所有Lifx灯
- 每个灯都由一个唯一的字符串标签指定
- 包括有关灯光的其他信息,如组和位置
- 输入:无需
-
lifx_lan_get-lights_state
- 获取一个或多个LIFX灯的当前状态,包括颜色、开/关状态、组和位置
- 输入:
labels(string[]):用于获取状态的灯光标签数组
-
lifxlan_set_lights_color
- 设置一个或多个Lifx灯光的颜色
- 输入:
labels(string[]):用于设置颜色的灯光标签数组color(对象):颜色规格hue(数字):色调值(0.0-1.0)saturation(数字):饱和度值(0.0-1.0)brightness(数字):亮度值(0.0-1.0)kelvin(数字,可选):色温,单位为开尔文(1500-9000,默认为3500)
duration(数字,可选):转换持续时间(毫秒)
-
lifx_lan_turn_on_lights
- 打开一个或多个Lifx灯,可选择特定颜色
- 输入:
labels(string[]):要打开的灯光标签数组color(对象,可选):更改颜色时的颜色规格hue(数字,可选):色调值(0.0-1.0)saturation(数字,可选):饱和度值(0.0-1.0)brightness(数字,可选):亮度值(0.0-1.0)kelvin(数字,可选):色温(开尔文)
duration(数字,可选):转换持续时间(毫秒)
-
lifx_lan_turn_off_lights
- 关闭一个或多个Lifx灯
- 输入:
labels(string[]):要关闭的灯光标签数组duration(数字,可选):转换持续时间(毫秒)
发展
先决条件
- 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,其中包含LLM可用的所有工具。工具调用的API在 src/ 文件夹。
开发脚本
npm run prepare-编译项目(构建dist/index.js)
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
联系
请随时联系 lifx-lan-mcp@duchastel.com 或通过 打开GitHub问题.
如果你觉得这个项目有用,你可以 给我买杯咖啡.