Labsco
MCP SERVER

LacyLights

by bbernstein

Design theatrical lighting by describing it — generate looks, extract cues from a script, and run the cue list during the show.

IoT, Smart Home & Embedded Hardware
Summary
It covers the whole arc — rig, design, cue list, and the show itself.

Reading a script and proposing cues is the eye-catching part, but the reason it holds together is that the same server knows your fixtures and their DMX channels, so a generated look resolves to real values on real instruments. Playback is here too: once the cue list exists, the show runs through the same tools that built it.

What it is

A lighting design server for the LacyLights system. It manages projects and DMX fixtures, generates and edits looks, builds cue sequences from a script, and drives playback while a show is running.

What you get
  • list_projects, create_project, get_project_details, delete_project — productions and their data
  • get_fixture_inventory, analyze_fixture_capabilities, create_fixture_instance, update_fixture_instance, delete_fixture_instance — the fixtures in a rig and what each one can do
  • get_channel_map and suggest_channel_assignment — the DMX channel map, and optimal assignments for a batch of fixtures
  • generate_look — a look built from a description and the production's context
  • analyze_script — lighting cues and suggestions extracted from a theatrical script
  • optimize_look — rework a look for energy use, dramatic impact or simplicity
  • update_look, activate_look, fade_to_black, get_current_active_look — change a look, put it live, black out, or ask what is up
  • add_fixtures_to_look, remove_fixtures_from_look, get_look_fixture_values, ensure_fixtures_in_look, update_look_partial, bulk_update_looks_partial — fixture-level edits across one look or many
  • create_cue_sequence, generate_act_cues, optimize_cue_timing, analyze_cue_structure — build a cue list for an act and tune its timing
  • update_cue_list, add_cue_to_list, remove_cue_from_list, update_cue, bulk_update_cues, reorder_cues, get_cue_list_details, delete_cue_list — edit the cue list itself
  • start_cue_list, next_cue, previous_cue, go_to_cue, stop_cue_list, get_cue_list_status — run the show
  • Look boards: list, create, update and delete boards and their buttons, place buttons on the canvas, and fire a look from one
Requirements

A running lacylights-go backend, reachable at LACYLIGHTS_GRAPHQL_ENDPOINT, and an OpenAI key in OPENAI_API_KEY for the generation tools. Node with the project installed and built; the client is pointed at the wrapper script with an absolute path. CHROMA_HOST and CHROMA_PORT are optional and enable the retrieval features.