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.

VerifiedSTDIODesktop onlyLocation & Lifestyle

Overview

AI-generated 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.
Before you install
The server writes directly to the light's Bluetooth controls, so on, off, brightness, color and scene commands change the physical device. First-time pairing may require resetting the light through the Hue app, and the light bonds to the Bluetooth adapter used, so another Mac needs re-pairing.

Installation

In SourceWeft

  1. Open Hue BLE MCP in the dashboard and add it to a workspace.
  2. 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

ToolDescription
scan_hue_lightsDiscover nearby Hue BLE lights and get their addresses
turn_onTurn a light on
turn_offTurn a light off
set_brightnessSet brightness 1–100%
set_color_temperatureSet white color temperature (2000K warm → 6500K cool)
set_colorSet RGB color
get_light_stateRead current power, brightness, and color mode
set_sceneApply a preset: relax, energize, concentrate, reading, nightlight, bright

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)

bash
pip install hue-ble-mcp

Then add to your ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "hue-ble": {      "command": "hue-ble-mcp",      "env": {        "HUE_LIGHT_ADDRESS": ""      }    }  }}

Option 2: Clone and run

bash
git clone https://github.com/jonnyblankinship/hue-ble-mcp.gitcd hue-ble-mcppython3 -m venv venv./venv/bin/pip install -r requirements.txt

Then add to your claude_desktop_config.json:

json
{  "mcpServers": {    "hue-ble": {      "command": "/absolute/path/to/hue-ble-mcp/venv/bin/python",      "args": ["/absolute/path/to/hue-ble-mcp/server.py"],      "env": {        "HUE_LIGHT_ADDRESS": ""      }    }  }}

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:

json
[  {    "name": "Signe gradient floor",    "address": "77577FFA-2F08-CAFD-5F3C-5C1824D8C362"  }]

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.

json
"env": {  "HUE_LIGHT_ADDRESS": "77577FFA-2F08-CAFD-5F3C-5C1824D8C362"}

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:

UUIDFunction
932c32bd-0002-...Power (on/off)
932c32bd-0003-...Brightness
932c32bd-0004-...Color temperature (mireds)
932c32bd-0005-...XY color (CIE 1931)

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_ADDRESS to your primary light for convenience.

License

MIT

Source: README.md at commit 2289429

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  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