OpenHue MCP Server
by lsemenenko
OpenHue MCP Server
An MCP server that enables control of Philips Hue lights through Claude and other LLM interfaces using the OpenHue CLI.
Prerequisites
- Node.js (v16 or higher)
- Docker
- Claude for Desktop (optional, for testing)
Bridge Setup
Before using the server, you need to set up the OpenHue CLI with your Hue Bridge:
- Run the setup command:
Copy
# On Linux/macOS:
docker run -v "${HOME}/.openhue:/.openhue" --rm --name=openhue -it openhue/cli setup
# On Windows (PowerShell):
docker run -v "${env:USERPROFILE}\.openhue:/.openhue" --rm --name=openhue -it openhue/cli setup
- Follow the on-screen instructions:
- The CLI will search for your Hue Bridge
- Press the link button on your Hue Bridge when prompted
- Wait for confirmation that the setup is complete
- Verify the setup by listing your lights:
Copy
# On Linux/macOS:
docker run -v "${HOME}/.openhue:/.openhue" --rm --name=openhue -it openhue/cli get lights
# On Windows (PowerShell):
docker run -v "${env:USERPROFILE}\.openhue:/.openhue" --rm --name=openhue -it openhue/cli get lights
If you see your lights listed, the setup is complete and you're ready to use the MCP server.
Installation
- Clone the repository:
Copy
git clone <your-repo-url>
cd claude-mcp-openhue
- Install dependencies:
Copy
npm install
- Build the project:
Copy
npm run build
- Run the server:
Copy
npm start
Features
This server exposes the following capabilities through MCP:
Lights Control
- List all lights or get specific light details
- Turn lights on/off
- Adjust brightness
- Set colors
- Control color temperature
Room Control
- List all rooms or get room details
- Control all lights in a room together
- Set room-wide brightness and colors
Scene Management
- List available scenes
- Activate scenes with different modes
- Filter scenes by room
Usage with Claude Desktop
- Open your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Add the server configuration:
Copy
{
"mcpServers": {
"hue": {
"command": "node",
"args": ["/absolute/path/to/build/index.js"]
}
}
}
- Restart Claude Desktop
- Look for the hammer icon to verify the server is connected
Example Commands
Once connected, you can ask Claude natural language questions like:
- "What lights do I have in the living room?"
- "Turn on all the lights in the kitchen"
- "Set the bedroom lights to 50% brightness"
- "Change the office lights to blue"
- "Activate the 'Relaxing' scene"
- "What scenes are available in the den?"
Available Tools
get-lights
Lists all lights or gets details for specific lights
Copy
{
lightId?: string; // Optional light ID or name
room?: string; // Optional room name filter
}
control-light
Controls individual lights
Copy
{
target: string; // Light ID or name
action: "on" | "off";
brightness?: number; // 0-100
color?: string; // Color name
temperature?: number; // 153-500 Mirek
}
get-rooms
Lists all rooms or gets specific room details
Copy
{
roomId?: string; // Optional room ID or name
}
control-room
Controls all lights in a room
Copy
{
target: string; // Room ID or name
action: "on" | "off";
brightness?: number;
color?: string;
temperature?: number;
}
get-scenes
Lists available scenes
Copy
{
room?: string; // Optional room name filter
}
activate-scene
Activates a specific scene
Copy
{
name: string; // Scene name or ID
room?: string; // Optional room name
mode?: "active" | "dynamic" | "static";
}
Development
Project Structure
Copy
.
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
Building
Copy
npm run build
Running
Copy
npm start
Troubleshooting
Server Not Connecting
- Check that Docker is running
- Verify OpenHue configuration exists
- Check Claude Desktop logs
- Try running OpenHue CLI directly
Command Failures
- Check OpenHue CLI permissions
- Verify light/room/scene names
- Check Docker container logs
- Verify Hue Bridge connectivity
License
MIT License
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
Enables control of Philips Hue lights through Claude and other LLM interfaces using the OpenHue CLI.