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 stdioHTTP服务器模式
警告: 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 buildMCP定义见 index.ts,其中包含LLM可用的所有工具。工具调用的API在 src/ 文件夹。
开发脚本
npm run prepare-编译项目(构建dist/index.js)
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
联系
请随时联系 lifx-lan-mcp@duchastel.com 或通过 .
如果你觉得这个项目有用,你可以 给我买杯咖啡.

