Skip to main content
Glama
bbernstein
by bbernstein

update_cue_list

Modify cue list names or descriptions in the LacyLights MCP Server by providing the cue list ID and optional new details to ensure accurate and updated lighting design instructions.

Instructions

Update cue list name or description

Input Schema

NameRequiredDescriptionDefault
cueListIdYesCue list ID to update
descriptionNoNew description for the cue list
nameNoNew name for the cue list

Input Schema (JSON Schema)

{ "properties": { "cueListId": { "description": "Cue list ID to update", "type": "string" }, "description": { "description": "New description for the cue list", "type": "string" }, "name": { "description": "New name for the cue list", "type": "string" } }, "required": [ "cueListId" ], "type": "object" }

Implementation Reference

  • The core handler function that executes the update_cue_list tool logic by calling the GraphQL client to update the cue list's name, description, or loop setting.
    async updateCueList(args: { cueListId: string; name?: string; description?: string; loop?: boolean; }) { const { cueListId, name, description, loop } = args; try { if (!name && !description && loop === undefined) { throw new Error( "At least one field (name, description, or loop) must be provided", ); } const updatedCueList = await this.graphqlClient.updateCueList(cueListId, { name, description, loop, }); return { cueListId: updatedCueList.id, cueList: { name: updatedCueList.name, description: updatedCueList.description, loop: updatedCueList.loop, totalCues: updatedCueList.cues.length, }, success: true, }; } catch (error) { throw new Error(`Failed to update cue list: ${error}`); } }
  • src/index.ts:1309-1333 (registration)
    MCP tool registration defining the 'update_cue_list' tool name, description, and input schema.
    name: "update_cue_list", description: "Update cue list name or description", inputSchema: { type: "object", properties: { cueListId: { type: "string", description: "Cue list ID to update", }, name: { type: "string", description: "New name for the cue list", }, description: { type: "string", description: "New description for the cue list", }, loop: { type: "boolean", description: "Whether to loop the cue list (restart from first cue after last cue finishes)", }, }, required: ["cueListId"], }, },
  • src/index.ts:2311-2323 (registration)
    Dispatch handler in the MCP server that routes 'update_cue_list' calls to the CueTools.updateCueList method.
    case "update_cue_list": return { content: [ { type: "text", text: JSON.stringify( await this.cueTools.updateCueList(args as any), null, 2, ), }, ], };
  • GraphQL client method called by the handler, defining the backend mutation schema and execution.
    async updateCueList(id: string, input: { name?: string; description?: string; loop?: boolean; }): Promise<CueList> { const mutation = ` mutation UpdateCueList($id: ID!, $input: CreateCueListInput!) { updateCueList(id: $id, input: $input) { id name description loop createdAt updatedAt cues { id name cueNumber fadeInTime fadeOutTime followTime notes scene { id name } } } } `; // Since the backend expects CreateCueListInput which requires projectId, // we need to get the current cue list first to maintain the projectId const cueListQuery = ` query GetCueList($id: ID!) { cueList(id: $id) { id name loop project { id } } } `; const cueListData = await this.query(cueListQuery, { id }); const projectId = cueListData.cueList.project.id; const updateInput = { name: input.name || cueListData.cueList.name, description: input.description, loop: input.loop !== undefined ? input.loop : cueListData.cueList.loop, projectId }; const data = await this.query(mutation, { id, input: updateInput }); return data.updateCueList;

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