list_lightsLABSCO SUMMARY
Two interfaces to the same lights, and you pick per request.
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.
What it is
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.
What you get
- 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
Requirements
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).
Setup effort
Build from source — git clone https://github.com/lenvolk/mcp-lifx.git
USE CASES
Setting the room for what you are about to do
Activate the saved scene by name instead of adjusting each bulb, and check what scenes exist when you cannot remember.
Changing one room without touching the rest
Target by group or label rather than all lights, and set power, colour and brightness in a single call.
Using light as a notification
Fire a pulse or breathe effect when something finishes or breaks, then clear it once acknowledged.
Fiddling with colour until it looks right
Open the control panel in the chat and use the sliders and presets, rather than iterating one sentence at a time.
9 tools
Listed in project docs. Your client may show a different list.
set_statetoggle_powerbreathe_effectpulse_effectlist_scenesactivate_scenevalidate_coloreffects_offBEFORE YOU INSTALL
What to know first
Tools you get
9 tools named in the project's documentation. Six tools change your lights: set_state, toggle_power, breathe_effect, pulse_effect, activate_scene and effects_off. An interactive web UI also opens by prompt, such as 'Open LIFX control'.
Requires
LIFX_API_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/lenvolk/mcp-lifx.git
cd mcp-lifx
npm install
npm run buildGet a LIFX API token from https://cloud.lifx.com/settings and set the LIFX_API_TOKEN environment variable
MCP Clients
VS Code
{
"servers": {
"lifxmcp": {
"type": "stdio",
"command": "node",
"args": [
"${workspaceFolder}/build/index.js"
],
"envFile": "${workspaceFolder}/.env"
}
}
}This is the repository's own .vscode/mcp.json, so opening your clone in VS Code picks it up. It reads LIFX_API_TOKEN from a .env file at the root of the clone (copy .env.example).