A Model Context Protocol (MCP) server that provides tools for controlling LIFX smart lights through the LIFX HTTP API.
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
NEW! This server includes an interactive web-based UI that provides:
- Visual controls for all your LIFX lights
- Real-time power, color, and brightness adjustments
- One-click color presets
- Visual effects (breathe & pulse) controls
- Theme-aware design that adapts to your client
See MCP_APP_GUIDE.md for details on using the interactive UI.
- LIFX API Token: Get your token from LIFX Cloud Settings
- Node.js: Version 16 or higher
- VS Code with GitHub Copilot extension
- Clone this repository:
git clone https://github.com/lenvolk/mcp-lifx.git
cd mcp-lifx- Install dependencies:
npm install- Build the project:
npm run buildThe LIFX MCP server works seamlessly with VS Code's GitHub Copilot:
- Ensure the server is built:
npm run build - Set your
LIFX_API_TOKENenvironment variable - The server will be automatically discovered by VS Code's MCP integration
- Open GitHub Copilot Chat and interact with your lights
Example interactions:
- "List all my LIFX lights"
- "Open LIFX control" - launches the interactive UI with visual controls
- "Show LIFX app" - alternative way to open the control interface
- "Turn on the kitchen lights"
- "Set living room lights to blue"
- "Launch LIFX dashboard" - opens the visual control panel
You can run the server directly with:
npm startOr in development mode:
npm run serveOnce 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"
Launch the visual control interface with any of these prompts:
- "Open LIFX control" - Primary command to launch the UI
- "Show LIFX app" - Alternative prompt
- "Launch LIFX interface" - Opens the interactive controls
- "Open LIFX dashboard" - Displays the visual UI
- "Show me LIFX controls" - Launches the control panel
- "Open the LIFX control panel" - Starts the interactive interface
- "I want to control my LIFX lights visually" - Opens the UI
- "Show LIFX remote" - Alternative way to access controls
The interactive UI provides visual controls for power, brightness, colors, and effects without needing text commands. See MCP_APP_GUIDE.md for details.
Use selectors to target specific lights:
all- All lightslabel:Kitchen- Lights labeled "Kitchen"group:Living Room- Lights in "Living Room" grouplocation:Home- Lights at "Home" locationid:d073d5000000- Specific light by ID
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)
mcp-lifx/
├── src/
│ ├── index.ts # Main MCP server implementation
│ ├── mcp-app.tsx # React MCP app UI
│ └── mcp-app.html # HTML entry point for app
├── build/
│ ├── index.js # Compiled server
│ └── src/
│ └── mcp-app.html # Bundled single-file app UI
├── LIFX.md # LIFX API documentation
├── MCP_APP_GUIDE.md # Interactive UI usage guide
├── mcp.md # MCP tutorial reference
├── vite.config.ts # Vite build configuration
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
└── README.md # This file
npm run build- Build both the MCP app UI and servernpm run build:app- Build only the React UInpm run build:server- Build only the TypeScript servernpm start- Run the compiled servernpm run serve- Run server in development mode (with tsx)npm run dev- Build and run in one commandnpm run clean- Remove build directorynpm run rebuild- Clean and rebuild everything
All LIFX API endpoints and parameters are documented in LIFX.md.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
ISC License
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.