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
| Name | Required | Description | Default |
|---|---|---|---|
| confirmDelete | Yes | Confirm deletion of project and all its data | |
| projectId | Yes | Project ID to delete |
Input Schema (JSON Schema)
{
"properties": {
"confirmDelete": {
"default": false,
"description": "Confirm deletion of project and all its data",
"type": "boolean"
},
"projectId": {
"description": "Project ID to delete",
"type": "string"
}
},
"required": [
"projectId",
"confirmDelete"
],
"type": "object"
}
Implementation Reference
- src/tools/project-tools.ts:193-210 (handler)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}`); } }
- src/tools/project-tools.ts:22-25 (schema)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;