Skip to main content
Glama
bbernstein
by bbernstein

update_cue

Modify properties of a theatrical lighting cue, including name, scene ID, fade timings, and notes, ensuring precise adjustments for LacyLights MCP Server's lighting design.

Instructions

Update properties of an existing cue

Input Schema

NameRequiredDescriptionDefault
cueIdYesID of the cue to update
cueNumberNoNew cue number
fadeInTimeNoNew fade in time in seconds
fadeOutTimeNoNew fade out time in seconds
followTimeNoNew follow time (null to remove auto-follow)
nameNoNew name for the cue
notesNoNew notes or description
sceneIdNoNew scene ID

Input Schema (JSON Schema)

{ "properties": { "cueId": { "description": "ID of the cue to update", "type": "string" }, "cueNumber": { "description": "New cue number", "type": "number" }, "fadeInTime": { "description": "New fade in time in seconds", "type": "number" }, "fadeOutTime": { "description": "New fade out time in seconds", "type": "number" }, "followTime": { "description": "New follow time (null to remove auto-follow)", "type": "number" }, "name": { "description": "New name for the cue", "type": "string" }, "notes": { "description": "New notes or description", "type": "string" }, "sceneId": { "description": "New scene ID", "type": "string" } }, "required": [ "cueId" ], "type": "object" }

Implementation Reference

  • The main execution handler for the 'update_cue' tool. Parses arguments, calls the GraphQL client to update the cue, formats the response with success indicator and cue details.
    async updateCue(args: { cueId: string; name?: string; cueNumber?: number; sceneId?: string; fadeInTime?: number; fadeOutTime?: number; followTime?: number | null; notes?: string; }) { const { cueId, ...updateFields } = args; try { const updatedCue = await this.graphqlClient.updateCue( cueId, updateFields, ); return { cueId: updatedCue.id, cue: { name: updatedCue.name, cueNumber: updatedCue.cueNumber, sceneName: updatedCue.scene.name, fadeInTime: updatedCue.fadeInTime, fadeOutTime: updatedCue.fadeOutTime, followTime: updatedCue.followTime, notes: updatedCue.notes, }, success: true, }; } catch (error) { throw new Error(`Failed to update cue: ${error}`); } }
  • src/index.ts:1402-1442 (registration)
    MCP tool registration including name 'update_cue', description, and input schema definition in the list_tools response.
    name: "update_cue", description: "Update properties of an existing cue", inputSchema: { type: "object", properties: { cueId: { type: "string", description: "ID of the cue to update", }, name: { type: "string", description: "New name for the cue", }, cueNumber: { type: "number", description: "New cue number", }, sceneId: { type: "string", description: "New scene ID", }, fadeInTime: { type: "number", description: "New fade in time in seconds", }, fadeOutTime: { type: "number", description: "New fade out time in seconds", }, followTime: { type: "number", description: "New follow time (null to remove auto-follow)", }, notes: { type: "string", description: "New notes or description", }, }, required: ["cueId"], }, },
  • src/index.ts:2353-2365 (registration)
    Handler dispatch in the CallToolRequestSchema that routes 'update_cue' calls to cueTools.updateCue method.
    case "update_cue": return { content: [ { type: "text", text: JSON.stringify( await this.cueTools.updateCue(args as any), null, 2, ), }, ], };
  • GraphQL client helper method that performs the actual cue update mutation via GraphQL.
    async updateCue(id: string, input: { name?: string; cueNumber?: number; sceneId?: string; fadeInTime?: number; fadeOutTime?: number; followTime?: number | null; notes?: string; }): Promise<Cue> { const mutation = ` mutation UpdateCue($id: ID!, $input: CreateCueInput!) { updateCue(id: $id, input: $input) { id name cueNumber fadeInTime fadeOutTime followTime notes scene { id name } } } `; // Get current cue to maintain required fields const cueQuery = ` query GetCue($id: ID!) { cue(id: $id) { id name cueNumber cueList { id } scene { id } fadeInTime fadeOutTime followTime notes } } `; const cueData = await this.query(cueQuery, { id }); const currentCue = cueData.cue; const updateInput = { name: input.name ?? currentCue.name, cueNumber: input.cueNumber ?? currentCue.cueNumber, cueListId: currentCue.cueList.id, sceneId: input.sceneId ?? currentCue.scene.id, fadeInTime: input.fadeInTime ?? currentCue.fadeInTime, fadeOutTime: input.fadeOutTime ?? currentCue.fadeOutTime, followTime: input.followTime !== undefined ? input.followTime : currentCue.followTime, notes: input.notes !== undefined ? input.notes : currentCue.notes }; const data = await this.query(mutation, { id, input: updateInput }); return data.updateCue;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bbernstein/lacylights-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server