mcpField
L
LIFX LAN MCP

LIFX LAN MCP

本地服务
github.com/simon-duchastel其他078 周前更新

关于 LIFX LAN MCP

LIFX LAN MCP 是一个 MCP 服务,可在本地网络中控制 LIFX 灯,无需云连接。它面向需要查询灯具并更改其状态或颜色的 LLM 客户端。

主要功能

  1. 01发现局域网中的 LIFX 灯
  2. 02读取灯具状态和标签
  3. 03开灯或关灯
  4. 04设置颜色和渐变时长
  5. 05支持 stdio 与 HTTP/SSE 传输

适用场景

  1. 01查找灯具并查看当前状态
  2. 02开关指定灯具
  3. 03调整颜色、亮度或色温

MCP 相关

提供用于发现 LIFX 灯、读取状态、开关灯和设置颜色的工具。服务必须与灯具连接到同一 Wi-Fi 网络。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"lifx-lan": {
"command": "npx",
"args": [
"-y",
"lifx-lan-mcp"
]
}
}
}
启动命令npx -y lifx-lan-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmlifx-lan-mcp

工具

5

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

LIFX LAN MCP

封面图片

npm MCP Server Buy Me A Coffee

一个 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 服务支持两个协议版本:

  1. 2025-04-21 协议(最新)

    • 所有操作都使用 /mcp 端点
    • 支持 HTTP 和 SSE 传输
    • 客户端配置示例:
    {
      "mcpServers": {
        "lifx-lan-mcp": {
          "url": "http://localhost:3000/mcp"
        }
      }
    }
    
  2. 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 灯
从源代码构建
  1. 克隆仓库:
git clone https://github.com/simon-duchastel/lifx-lan-mcp.git
cd lifx-lan-mcp
  1. 安装依赖:
npm install
  1. 构建项目:
npm run build

MCP 定义位于 index.ts 中,其中包含所有可供大模型使用的工具。工具调用的 API 位于 src/ 文件夹中。

开发脚本
  • npm run prepare - 编译项目(构建 dist/index.js)

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

联系方式

欢迎通过 [email protected] 联系我们,或提交 GitHub 问题。

如果您觉得这个项目有用,可以请我喝杯咖啡。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。