list_projectsLABSCO 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.
Setup effort
Follow the published steps — curl -s https://dist.lacylights.com/releases/mcp/latest.json | jq -r '.url' | xargs curl -LO
USE CASES
Patching a new rig
Add the fixtures, read the channel map, and take the suggested channel assignments.
Designing a look from a description
Generate it against the production's fixtures, then put it live to see it.
Getting a cue list out of a script
Extract the cues from the script, build the sequence from existing looks, and tune the timing.
Fixing a look in tech
Read the current fixture values, adjust the ones that are wrong, and reactivate.
Running the show
Start the cue list, move through it, jump to a cue when the stage manager calls it, and check where you are.
Building a busking layout
Create a look board, place the buttons where you want them, and fire looks from it.
60 tools
Listed in project docs. Your client may show a different list.
create_projectget_project_detailsdelete_projectqlc_import_guidanceget_fixture_inventoryanalyze_fixture_capabilitiescreate_fixture_instanceget_channel_mapsuggest_channel_assignmentupdate_fixture_instancedelete_fixture_instancegenerate_lookanalyze_scriptoptimize_lookupdate_lookactivate_lookfade_to_blackget_current_active_lookadd_fixtures_to_lookremove_fixtures_from_lookget_look_fixture_valuesensure_fixtures_in_lookupdate_look_partialbulk_update_looks_partialcreate_cue_sequencegenerate_act_cuesoptimize_cue_timinganalyze_cue_structureupdate_cue_listadd_cue_to_listremove_cue_from_listupdate_cuebulk_update_cuesreorder_cuesget_cue_list_detailsdelete_cue_liststart_cue_listnext_cueprevious_cuego_to_cuestop_cue_listget_cue_list_statuslist_look_boardsget_look_boardcreate_look_boardupdate_look_boarddelete_look_boardbulk_create_look_boardsbulk_update_look_boardsbulk_delete_look_boardsadd_look_to_boardupdate_look_board_buttonremove_look_from_boardupdate_look_board_button_positionsbulk_create_look_board_buttonsbulk_update_look_board_buttonsbulk_delete_look_board_buttonsactivate_look_from_boardcreate_look_board_with_buttonsBEFORE YOU INSTALL
What to know first
Tools you get
60 tools named in the project's documentation.
Requires
OPENAI_API_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Download latest stable release
curl -s https://dist.lacylights.com/releases/mcp/latest.json | jq -r '.url' | xargs curl -LOExtract archive
tar -xzf lacylights-mcp-*.tar.gz
cd lacylights-mcpInstall and run
npm ci --omit=dev
npm startMCP Clients
Claude Desktop
{
"mcpServers": {
"lacylights": {
"command": "/usr/local/bin/node",
"args": [
"<YOUR_PATH_TO_LACYLIGHTS_MCP>/run-mcp.js"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
"LACYLIGHTS_GRAPHQL_ENDPOINT": "http://localhost:4000/graphql"
}
}
}
}