LIFX

Control LIFX smart lights through the LIFX HTTP API.

LIFX MCP Server

A Model Context Protocol (MCP) server that provides tools for controlling LIFX smart lights through the LIFX HTTP API.

Features

This MCP server exposes the following LIFX API functionality as tools:

  • šŸ” list_lights - Get all lights or filter by selector
  • ⚔ set_state - Control power, color, brightness of lights
  • šŸ”„ toggle_power - Toggle lights on/off
  • 🫁 breathe_effect - Create breathing light effects
  • šŸ’« pulse_effect - Create pulsing light effects
  • šŸŽ¬ list_scenes - List all saved scenes
  • ā–¶ļø activate_scene - Activate a specific scene
  • āœ… validate_color - Validate color string formats
  • ā¹ļø effects_off - Turn off any running effects

Prerequisites

  1. LIFX API Token: Get your token from LIFX Cloud Settings
  2. Node.js: Version 16 or higher
  3. MCP Client: Such as Claude Desktop or any MCP-compatible client

Installation

  1. Clone this repository:
git clone https://github.com/lenvolk/mcp-lifx.git
cd mcp-lifx
  1. Install dependencies:
npm install
  1. Build the project:
npm run build

Usage

With Claude Desktop

Add this server to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "lifx": {
      "command": "node",
      "args": ["C:/path/to/mcp-lifx/build/index.js"],
      "env": {}
    }
  }
}

Direct Usage

You can also run the server directly:

npm start

Example Usage

Once connected to an MCP client, you can use commands like:

  • "List all my LIFX lights"
  • "Turn on the kitchen lights"
  • "Set living room lights to blue"
  • "Start a breathe effect on all lights with red color"
  • "Show me all my saved scenes"
  • "Activate the movie night scene"

LIFX Selectors

Use selectors to target specific lights:

  • all - All lights
  • label:Kitchen - Lights labeled "Kitchen"
  • group:Living Room - Lights in "Living Room" group
  • location:Home - Lights at "Home" location
  • id:d073d5000000 - Specific light by ID

Color Formats

The server supports various color formats:

  • Named colors: red, blue, green, purple, etc.
  • RGB: rgb:255,0,0 (red)
  • HSB: hue:120 saturation:1.0 brightness:0.5
  • Kelvin: kelvin:3500 (warm white)

Development

Project Structure

mcp-lifx/
ā”œā”€ā”€ src/
│   └── index.ts      # Main MCP server implementation
ā”œā”€ā”€ build/            # Compiled JavaScript output
ā”œā”€ā”€ LIFX.md          # LIFX API documentation
ā”œā”€ā”€ mcp.md           # MCP tutorial reference
ā”œā”€ā”€ package.json     # Project configuration
ā”œā”€ā”€ tsconfig.json    # TypeScript configuration
└── README.md        # This file

Available Scripts

  • npm run build - Compile TypeScript to JavaScript
  • npm start - Run the compiled server
  • npm run dev - Build and run in one command

API Reference

All LIFX API endpoints and parameters are documented in LIFX.md.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

ISC License

Support

For issues with this MCP server, please open an issue on GitHub. For LIFX API issues, refer to the official LIFX API documentation.


Note: This is an unofficial LIFX MCP server. LIFX is a trademark of LIFX Pty Ltd.

Related Servers