Naming a scene is faster typed; picking a colour is faster with a swatch. Shipping both a tool surface and a rendered panel means neither is a compromise, and the panel is themed to the client so it does not look bolted on. Worth knowing: this is unofficial and goes through the LIFX cloud API rather than the local network, so the bulbs need to be reachable from LIFX's side, not just from yours.
An unofficial MCP server for LIFX bulbs. It maps the LIFX HTTP API onto tools an assistant can call, and ships an interactive UI that renders inside the client, so a lighting change can come from a sentence or from a slider.
- Light discovery, all of them or narrowed by selector — `list_lights`
- State control in one call — power, colour and brightness together — plus a straight on/off flip — `set_state`, `toggle_power`
- Two effects and a way to stop them — `breathe_effect`, `pulse_effect`, `effects_off`
- Saved scenes: list what exists and activate one — `list_scenes`, `activate_scene`
- A colour-format check before you send a state change, so a malformed string fails loudly rather than silently doing nothing — `validate_color`
- Targeting that matches how LIFX is organised: everything, a label, a group, a location, or a single bulb by id
- Colour accepted the way you would say it — named colours, RGB triples, hue-saturation-brightness, or a Kelvin value for warm white
- An interactive control panel rendered in the client with power, brightness, colour presets and effect controls, themed to match the surrounding UI
A LIFX API token from LIFX Cloud settings, set as `LIFX_API_TOKEN`. Node.js version 16 or higher. There is no package install: clone the repository, `npm install`, `npm run build`, then start it — the build produces both the compiled server and the bundled single-file UI. The README's documented client is VS Code with the GitHub Copilot extension, where the built server is discovered automatically. The package is `mcp-lifx` (1.0.0 in package.json).
