Skip to main content
Glama
halo-light

halo-light

hue_beat_set

Idempotent

Adjust live beat-sync settings for Philips Hue lights—brightness peaks, ambient floor, sensitivity, mode, and palette—to tune audio-reactive lighting without restarting playback.

Instructions

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).

Input Schema

NameRequiredDescriptionDefault
modeNo
floorNo
paletteNo
brightnessNo
sensitivityNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare this as a non-destructive, idempotent mutation, so the safety profile is covered. The description adds real value by disclosing the sentinel semantics: empty string or -1 leaves a field unchanged, which governs how a partial update behaves. It does not say whether changes take effect immediately on a running effect or whether settings persist across hue_beat_stop/start cycles.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The primary action is front-loaded in the first sentence, followed by a compact per-parameter reference. The fragmentary formatting is efficient and each line carries information, though the closing blank line and telegraphic style are slightly rough.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Still, for a five-parameter mutation tool with zero schema descriptions, missing coverage of the mode and palette parameters and the absence of any prerequisite or effect-application note leave the definition only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 0%, the description carries the burden and does document brightness (0.1-1.0, peak on beats), floor (0.0-0.9, ambient between beats), and sensitivity (0.5-3.0, beat detection multiplier), including ranges the schema omits. However, mode and palette — two of the five parameters — receive no explanation at all, leaving a substantial gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Change hue_beat settings live." That distinguishes it from the hue_beat_start/stop/status siblings, which control lifecycle rather than settings. It never names those siblings, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the partial-update convention ("Empty or -1 means unchanged") but gives no guidance on when to call this versus hue_beat_start or hue_beat_status, and never states whether the beat effect must already be running. An agent must guess at the sequencing and prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.