Skip to main content
Glama
halo-light

halo-light

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HUE_APP_KEYNoApplication key for the Hue bridge. Can be obtained via pairing (`halo-light pair`) and stored in the config file instead of being passed as an environment variable.
HUE_BEAT_PATHNoPath to the external hue_beat.py script for the optional hue_beat extension.
HUE_BRIDGE_IPNoIP address of the Hue bridge. If omitted, the bridge is discovered via discovery.meethue.com, then mDNS if zeroconf is installed.
HALO_LIGHT_CONFIGNoAlternative path to the halo-light configuration file.
HUE_BEAT_PID_FILENoPID file used by the hue_beat script. Defaults to hue_beat.pid in the system temporary directory.hue_beat.pid
HUE_BEAT_CTRL_FILENoControl JSON file used by the hue_beat script. Defaults to hue_beat.ctrl in the system temporary directory.hue_beat.ctrl
HUE_BRIDGE_CA_CERTNoPath to a PEM file used to verify the bridge certificate. Optional; by default the bridge certificate is not verified (local network).
HUE_BEAT_STATE_FILENoState JSON file used by the hue_beat script. Defaults to hue_beat.state.json in the system temporary directory.hue_beat.state.json

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_all_lightsA

List every light with room, power, brightness (0-100), color and capabilities.

get_lightA

Get one light, by id or by name (case and accent insensitive).

find_light_by_nameA

Search lights whose name contains the text (case and accent insensitive).

get_all_groupsA

List rooms and zones (plus the whole home) with their lights and state.

get_groupB

Get one room or zone, by id or by name.

get_all_scenesA

List scenes with the room or zone each one belongs to.

turn_on_lightB

Turn a light on, by id or by name.

turn_off_lightC

Turn a light off, by id or by name.

set_brightnessB

Set a light's brightness (0-100, turns it on; 0 turns it off).

set_color_rgbC

Set a light's color from RGB components (0-255).

set_colorB

Set a light's color by name (rouge, bleu, orange, ...) or hex (#rrggbb).

set_color_xyC

Set a light's color from CIE 1931 xy coordinates (0-1).

set_color_temperatureB

Set a light's white color temperature in Kelvin (about 2000 warm to 6500 cool).

set_color_presetC

Apply a named preset to a light: warm, cool, daylight, concentration, relax, reading, energize, red, green, blue, purple, orange.

set_light_effectA

Set a dynamic effect on a light: none, candle, fire, prism, sparkle, opal, glisten, underwater, cosmos, sunbeam, enchant.

alert_lightB

Make a light flash briefly so it can be identified.

turn_on_groupC

Turn on a room or zone, by id or by name.

turn_off_groupC

Turn off a room or zone, by id or by name.

set_group_brightnessA

Set the brightness (0-100, turns it on; 0 turns it off) of a room or zone.

set_group_color_rgbB

Set the color of a room or zone from RGB components (0-255).

set_group_colorB

Set the color of a room or zone by name (rouge, bleu, ...) or hex (#rrggbb).

set_group_color_temperatureB

Set the white color temperature (Kelvin) of a room or zone.

set_group_color_presetB

Apply a named preset to a room or zone: warm, cool, daylight, concentration, relax, reading, energize, red, green, blue, purple, orange.

activate_scene_by_nameA

Activate a scene by name (case and accent insensitive), in the room it belongs to.

If several rooms have a scene with that name, the error lists them: pass group_name (or group_id) to pick one.

set_sceneA

Activate a scene by id. group_id, if given, must be the scene's own room or zone.

hue_beat_startA

Start the external hue_beat audio sync (optional extension, needs HUE_BEAT_PATH).

While it runs, REST commands on the lights of its entertainment area may be ignored. mode: pulse | ambiant. palette: ironman | fire | neon | cool | sunset | arctic | auto.

hue_beat_stopB

Stop hue_beat (optional extension).

hue_beat_statusA

Report whether hue_beat is running, with mode, palette and BPM (optional extension).

hue_beat_setB

Change hue_beat settings live. Empty or -1 means unchanged.

brightness 0.1-1.0 (peak on beats), floor 0.0-0.9 (ambient level between beats), sensitivity 0.5-3.0 (beat detection multiplier).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 29 tools

Disambiguation4/5

The light-vs-group parallel families (set_brightness/set_group_brightness, set_color_rgb/set_group_color_rgb, turn_on_light/turn_on_group) are clearly scoped by target resource, and the color tools are distinguished by input format (RGB, xy, Kelvin, name/hex, preset). A few pairs genuinely overlap: get_light already accepts a name so find_light_by_name is nearly redundant, and set_scene vs activate_scene_by_name do the same thing via different keys.

Naming Consistency3/5

Most names follow verb_noun_qualifier, but the resource token is applied unevenly: set_brightness and set_color omit 'light' while set_group_brightness names 'group', and some tools put the resource first (alert_light, set_light_effect) instead of the verb. Scene activation uses two different verb schemes (set_scene vs activate_scene_by_name).

Tool Count2/5

At 29 tools the surface is heavy, and much of the bulk is mechanical duplication: every light operation is mirrored for groups, and five separate color tools exist for one light plus four for groups. Several entries (find_light_by_name, activate_scene_by_name, the three hue_beat tools) could be collapsed into existing tools or optional parameters.

Completeness4/5

The lighting-control domain is well covered: enumeration and lookup for lights, rooms, zones and scenes, power/brightness/color/effects/alerts, plus an optional audio-sync extension. Gaps are minor but real — effects and alerts exist only per light, not per room/zone, and there is no group-level effect or group-scene listing operation.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues