LIFX API MCP Server

by furey

3 stars
220 downloads
Not rated
GitHub

About

LIFX API MCP Server is a local Model Context Protocol (MCP) server that provides access to LIFX smart devices using natural language via LLMs. It allows users to list lights, set states, activate scenes, and trigger effects through the LIFX HTTP API.

Details

Author
furey
GitHub stars
3
Downloads
220
Categories
Developer Tools

- 18 tools for LIFX device control and scene management
- Live resources: light list, light state, and scenes
- Prompts: effect-creator, troubleshooter, selector-helper
- Config file customization with component disabling
- Supports Docker, NPX, and source-based installation
- Uses standard LIFX selectors and color strings

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name LIFX API MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Obtain a LIFX API token from the LIFX Cloud settings page. Install the server via npx (npx -y lifx-api-mcp-server@latest) or Docker (docker run --rm -i --network=host furey/lifx-api-mcp-server). Configure the token using a config file (~/.lifx-api-mcp-server.jsonc), environment variable (CONFIG_API_TOKEN), or command-line argument. Set up an MCP client (e.g., Claude Desktop) and control lights using natural language. Use resources like lifx://lights and prompts like effect-creator.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "lifx api mcp server": {
            "lifx-api-mcp-server": {
                "command": "npx",
                "args": [
                    "-y",
                    "lifx-api-mcp-server@latest"
                ]
            }
        }
    }
}

McpServers

{
    "lifx-api-mcp-server": {
        "command": "npx",
        "args": [
            "-y",
            "lifx-api-mcp-server@latest"
        ]
    }
}

LIFX API MCP Server

License
Docker Hub Version <!-- Placeholder -->
NPM Version <!-- Placeholder -->
Buy Me a Coffee <!-- Optional -->

LIFX API MCP Server is a local Model Context Protocol (MCP) server providing access to LIFX devices using natural language via LLMs to perform actions like listing lights, setting states, activating scenes, and triggering effects through the LIFX HTTP API. Includes contextual resources and helpful prompts.

Contents

- Quick Start
- Features
- Installation
- Configuration
- Client Setup
- Data Protection
- Tutorial
- Dockerfile
- Disclaimer
- Support

Quick Start

1. Get a LIFX API Token:
Go to your LIFX Cloud settings page.
Generate a new personal access token. Keep this token secure!
2. Install LIFX MCP Server: (Choose one method)
NPX (Recommended):

        npx -y lifx-api-mcp-server@latest

Docker:
        docker run --rm -i --network=host --pull=always furey/lifx-api-mcp-server

3. Configure API Token:
Crucial Step: Set your token via one of these methods (priority order):
1. Config File (Recommended): Edit ~/.lifx-api-mcp-server.jsonc (generate with npx -y lifx-api-mcp-server@latest config:create) and add your token to the apiToken field.
2. Environment Variable: Set CONFIG_API_TOKEN=YOUR_LIFX_API_TOKEN.
3. Command Line Argument (Least Recommended): Pass the token when running the server (e.g., npx ... YOUR_TOKEN).
4. Set up MCP Client:
Configure your client (e.g., Claude Desktop, MCP Inspector) to launch the server without the token argument if using config/env.
5. Control Your Lights:
Start interacting with your LIFX devices using natural language (see Tutorial). Use resources like @lix-api:lifx://lights and prompts like @lix-api:effect-creator.

Features

Tools

list-lights: Gets lights belonging to the account, filterable by selector.
set-state: Sets the state (power, color, brightness, etc.) of selected lights.
set-states: Sets multiple states across multiple selectors in one request.
state-delta: Changes state properties (brightness, hue, saturation, kelvin, infrared) by a relative amount.
toggle-power: Toggles the power state of selected lights.
breathe-effect: Performs a breathe (fade) effect.
pulse-effect: Performs a pulse (flash) effect.
move-effect: Performs a move effect on linear devices (LIFX Z strips).
morph-effect: Performs a morph effect on Tile devices.
flame-effect: Performs a flame effect on Tile devices.
clouds-effect: Performs a clouds effect on Tile devices (FW >= 4.8).
sunrise-effect: Performs a sunrise effect on Tile devices (FW >= 4.8).
sunset-effect: Performs a sunset effect on Tile devices (FW >= 4.8).
effects-off: Turns off any running effects.
list-scenes: Lists available scenes in the account.
activate-scene: Activates a specified scene by its UUID.
cycle: Cycles selected lights through a list of predefined states.
validate-color: Validates a color string and returns its components.
clean: Controls LIFX Clean devices.

Resources

lifx://lights: Provides a summary list of available lights (ID, Label, Power, Connected). Fetches live data.
lifx://light/{selector}/state: Provides the detailed current state for the light(s) matching the selector. Supports autocompletion for selectors. Fetches live data.
lifx://scenes: Provides a list of available scenes (Name, UUID). Fetches live data.

Prompts

effect-creator: Guides the user through creating effect parameters and generates the corresponding tool command.
troubleshooter: Helps diagnose basic connectivity issues for specific lights by checking their status (fetches live data).
selector-helper: Lists available identifiers (labels, groups, locations, IDs) from live data to help users construct accurate selectors.

Other Features

Config File: Customize settings via ~/.lifx-api-mcp-server.jsonc.
Environment Variables: Override config settings (e.g., CONFIG_API_TOKEN, CONFIG_LOG_LEVEL).
Component Disabling: Selectively disable tools, resources, or prompts via config.
Direct API Mapping: Tools generally correspond 1:1 with LIFX API endpoints.
Error Handling: Provides feedback based on LIFX API responses and HTTP status codes.
Selector Support: Uses LIFX selectors (all, id:, label:, etc.) for targeting lights.
Color Support: Accepts standard LIFX color strings.
Docker Support: Run easily within a Docker container.

Installation

LIFX MCP Server can be installed and run in several ways:

NPX (Easiest)
Docker Hub
Node.js from Source
Docker from Source

Installation: NPX

> [!NOTE]<br>
> NPX requires Node.js (v18+) installed.

```console

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.