Skip to main content
Glama
bbernstein

LacyLights MCP Server

by bbernstein

delete_project

Permanently remove a project and its associated data using a project ID and deletion confirmation, ensuring precise management of AI-powered theatrical lighting design projects.

Instructions

Delete a project and all its data

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmDeleteYesConfirm deletion of project and all its data
projectIdYesProject ID to delete

Implementation Reference

  • The core handler function for the 'delete_project' MCP tool. Validates input arguments using Zod schema, enforces confirmation flag, delegates to GraphQL client for deletion, and returns structured success/failure response.
    async deleteProject(args: z.infer<typeof DeleteProjectSchema>) {
      const { projectId, confirmDelete } = DeleteProjectSchema.parse(args);
    
      if (!confirmDelete) {
        throw new Error('Deletion not confirmed. Set confirmDelete to true to proceed.');
      }
    
      try {
        const success = await this.graphqlClient.deleteProject(projectId);
    
        return {
          success,
          message: success ? `Project ${projectId} deleted successfully` : 'Failed to delete project'
        };
      } catch (error) {
        throw new Error(`Failed to delete project: ${error}`);
      }
    }
  • Zod validation schema used by the delete_project handler to parse and validate tool inputs.
    const DeleteProjectSchema = z.object({
      projectId: z.string().describe('Project ID to delete'),
      confirmDelete: z.boolean().default(false).describe('Confirm deletion of project and all its data')
    });
  • src/index.ts:154-171 (registration)
    MCP tool metadata registration in ListToolsRequestHandler. Defines the 'delete_project' tool name, description, and JSON input schema for discovery by MCP clients.
      name: "delete_project",
      description: "Delete a project and all its data",
      inputSchema: {
        type: "object",
        properties: {
          projectId: {
            type: "string",
            description: "Project ID to delete",
          },
          confirmDelete: {
            type: "boolean",
            default: false,
            description: "Confirm deletion of project and all its data",
          },
        },
        required: ["projectId", "confirmDelete"],
      },
    },
  • src/index.ts:1846-1858 (registration)
    Handler dispatch registration in CallToolRequestHandler switch statement. Routes 'delete_project' calls to the ProjectTools instance method.
    case "delete_project":
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(
              await this.projectTools.deleteProject(args as any),
              null,
              2,
            ),
          },
        ],
      };
  • GraphQL client helper method that executes the backend deleteProject mutation and returns boolean success indicator. Called by the main tool handler.
    async deleteProject(id: string): Promise<boolean> {
      const mutation = `
        mutation DeleteProject($id: ID!) {
          deleteProject(id: $id)
        }
      `;
    
      const data = await this.query(mutation, { id });
      return data.deleteProject;

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