32 tools with generally clear naming (verb_noun pattern) and descriptions present. However, significant gaps in schema completeness and parameter documentation. Most tools lack detailed input parameter descriptions beyond the parameter name itself. Output schemas are not documented. Parameter types are present but descriptions are often generic or missing constraint details (ranges, enums, formats). Error handling guidance is absent. Tool descriptions average ~100 chars, below the 194-char baseline for A+ tools. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in the metadata.
Add a cue to a cue list. A cue references a scene and specifies fade in, hold, and fade out times in milliseconds.
Turn off all lights by setting all DMX channels to 0 across all universes.
Create a new cue list for sequencing scenes with fade times.
Define a custom fixture profile with channel definitions. Profiles describe the DMX channel layout of a lighting fixture.
Create a new lighting scene with fixture states. Each fixture state maps channel names (red, green, blue, dimmer, etc.) to values (0-255). Fixture IDs must reference patched fixtures.
Delete a cue list by ID.
Output schemas not documented. Tools return structured data (e.g., handlePreviewScene returns PreviewSceneResult with universeSummary array) but LLMs cannot see the response structure. This forces agents to guess field names and types for downstream reasoning.
Parameter descriptions lack constraint details. 'universe' is described as 'DMX universe number (1-based)' but no min/max bounds stated. 'startAddress' says '1-512' in description but no formal range constraint. 'level' for dimmer says '0-255' but no enum or range validation schema. LLMs cannot reliably infer valid ranges from prose.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Delete a scene by ID.
Get the current state of the cue sequencer including which cue is playing, elapsed time, and playback status.
Get the current DMX state for one or all universes. Returns the current channel values being sent to DMX.
Jump to a specific cue in the currently playing cue sequence.
List all cue lists with their cue counts and loop settings.
List all available effect types and their parameters.
List all available fixture profiles that can be used when patching fixtures.
List all patched fixtures with their profiles, universes, and DMX addresses.
List all created scenes with their fixture counts.
List all saved shows with their metadata.
Load a previously saved show, restoring all fixtures, scenes, and cue lists.
Add a fixture to a DMX universe at a specific address. Use list_fixture_profiles to see available profiles.
Pause the currently playing cue sequence. Can be resumed with resume_cue_sequence.
Send a scene to DMX output for preview. This immediately applies the scene's fixture states to the DMX universes.
Remove a cue from a cue list by its ID.
Reorder cues in a cue list by providing a new ordered list of cue IDs.
Resume a paused cue sequence from where it was paused.
Save the current state of all fixtures, scenes, and cue lists to a show file.
Set the color of a fixture by specifying RGB or other color channel values. Applies immediately without fade.
Set the dimmer (brightness) level of a fixture. Value is 0-255 where 0 is off and 255 is full brightness.
Start playing a cue list from the beginning. Cues will execute in sequence with their specified fade and hold times.
Start a lighting effect on one or more fixtures. Available effects include chase, rainbow, strobe, and others.
Stop the currently playing cue sequence.
Stop a running effect by its ID.
Remove a patched fixture by its ID.
Update an existing scene with new fixture states.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in metadata. delete_scene, delete_cue_list, blackout, and load_show are marked DESTRUCTIVE/WRITE but lack destructiveHint annotation. This prevents agents from reasoning about side effects and retry safety.
Error handling guidance absent. No tool description explains what to do if a fixture ID is not found, a scene references a non-existent fixture, or a cue list is empty. Agents have no recovery path when operations fail.
start_effect and stop_effect have vague parameter descriptions. 'effectType' accepts 'chase', 'rainbow', 'strobe' but no enum constraint or discovery mechanism. 'params' is an untyped object with no schema. Agents cannot know what parameters each effect type accepts.