
Hue BLE MCP
io.github.jonnyblankinshipPublished by GitHub account jonnyblankinshipv0.1.3Updated Oct 24, 2026
Control Philips Hue lights via Bluetooth LE — no bridge required.
Overview
A local MCP server that lets an assistant control Philips Hue lights over Bluetooth LE, without a Hue Bridge or internet connection.
- What you can do
- Discover nearby Hue Bluetooth lights and read their addresses and current power, brightness and color mode. Turn lights on or off. Set brightness, white color temperature or RGB color. Apply preset scenes such as relax, energize, reading or nightlight.
- When to use it
- Useful when you want to switch, dim or recolor Hue Bluetooth lights by asking an assistant, especially without a Hue Bridge or cloud account. Suits macOS users with Bluetooth-capable Hue lights nearby.
- Requirements
- Runs locally as a Python package (Python 3.10+) on macOS, using CoreBluetooth via bleak; Windows is not supported and Linux is untested. Needs a Bluetooth-capable Hue light within roughly 10 meters, Claude Desktop, and optionally the HUE_LIGHT_ADDRESS environment variable for a default light.
Installation
In SourceWeft
- Open Hue BLE MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
hue-ble-mcp
An MCP server that lets Claude control Philips Hue lights via Bluetooth LE — no Hue Bridge or internet connection required.
Just ask Claude things like:
- "Turn off the light"
- "Set the light to a warm reading mode"
- "Make it a deep blue"
- "Dim it to 20%"
Tools
Requirements
- macOS (uses CoreBluetooth via bleak)
- Python 3.10+
- A Philips Hue light with Bluetooth support (most lights made after 2019)
- Claude Desktop
Installation
Option 1: pip (recommended)
Then add to your ~/Library/Application Support/Claude/claude_desktop_config.json:
Option 2: Clone and run
Then add to your claude_desktop_config.json:
First-time setup
1. Pair your light
Hue BLE lights need to be in pairing mode the first time you connect. The easiest way is to reset the light via the Hue app (Settings → Light setup → select light → Delete), which puts it back into factory pairing mode.
After the first successful connection, macOS remembers the bond and you won't need to do this again.
2. Find your light's address
Restart Claude Desktop, then ask:
"Scan for my Hue lights"
Claude will return something like:
On macOS, addresses are UUIDs (not MAC addresses). This is normal — CoreBluetooth assigns its own identifiers.
3. Set the default address
Paste the address into HUE_LIGHT_ADDRESS in your config and restart Claude Desktop. From then on, you don't need to specify the address in every command.
How it works
Philips Hue lights broadcast over Bluetooth LE using a proprietary but well-documented GATT profile. This server writes directly to those GATT characteristics using bleak, bypassing the need for a Hue Bridge or the Hue cloud entirely.
Key characteristics used:
RGB colors are converted to CIE 1931 XY space using the wide RGB D65 gamut matrix before being sent to the light.
Limitations
- macOS only — Linux should work too but is untested. Windows is not supported.
- Bluetooth range — must be within ~10m of the light.
- One adapter per light — the light bonds to the Bluetooth adapter used during first pairing. A different Mac won't be able to connect without re-pairing.
- Multiple lights — supported, just call each tool with the specific address. Set
HUE_LIGHT_ADDRESSto your primary light for convenience.
License
MIT
Source: README.md at commit 2289429
Tools
0Version history
1- v0.1.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts