Hue MCP Server
# Hue MCP Server
Control Philips Hue lights through VS Code Copilot or Claude Desktop using the Model Context Protocol (MCP).
## Quick Setup
### 1. Prerequisites
- Python 3.13+ with UV package manager
- Hue Bridge IP address (find it in the Hue app or at <https://discovery.meethue.com/>)
### 2. Install Dependencies
```bash
uv sync
```
### 3. Configure Your Bridge IP
Edit `.env` file:
```bash
HUE_BRIDGE_IP=192.168.1.XXX # Replace with your bridge IP
```
### 4. First-Time Authentication
Press the physical button on your Hue Bridge, then run:
```bash
uv run python -c "from phue import Bridge; Bridge('YOUR_BRIDGE_IP')"
```
## Usage
### For VS Code Copilot
Add to your VS Code MCP configuration file (`mcp.json`):
**Location:** `~/Library/Application Support/Code/User/mcp.json` (macOS)
```json
{
"mcpServers": {
"custom-hue": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"__PATH__",
"python",
"__PATH_TO_main.py__"
],
"env": {
"HUE_BRIDGE_IP": "192.168.x.x"
}
}
}
}
```
**Note:** Replace the paths with your actual project path and update `HUE_BRIDGE_IP` with your bridge IP.
After adding the configuration, reload VS Code and use Copilot:
- "Turn on the corner light and set it to blue"
- "List all my lights"
- "Turn off all lights"
### For Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"hue-lights": {
"command": "uv",
"args": ["run", "/FULL/PATH/TO/custom-hue/main.py"],
"env": {
"HUE_BRIDGE_IP": "192.168.1.XXX"
}
}
}
}
```
## Available Tools
- `change_hue_light` - Control individual lights (brightness, hue, saturation, on/off)
- `list_hue_lights` - List all available lights on your Hue Bridge
TDQS
Scored across 2 tools
The two tools have completely distinct purposes with no overlap: one lists lights (read-only) while the other controls light states (write operation). An agent would never confuse these tools as they operate on different aspects of the Hue system.
Both tools follow a consistent verb_noun pattern with 'hue_light(s)' as the common noun component. 'list_hue_lights' and 'change_hue_light' maintain perfect naming consistency throughout the toolset.
With only 2 tools, this server feels severely underpowered for controlling a Philips Hue lighting system. A proper Hue interface would need tools for scenes, groups, schedules, bridge configuration, and more comprehensive light management beyond just listing and changing individual lights.
The tool surface is severely incomplete for Hue light control. Missing essential operations include: creating/deleting lights, managing scenes or groups, adjusting transition times, setting color temperatures, configuring bridge settings, and error handling for unavailable lights. Agents will hit dead ends trying to perform basic Hue workflows.