delete_query_snippet
Removes a specified query snippet from Redash by providing its ID. Clean up unused or outdated snippets to maintain organization.
Instructions
Delete a query snippet
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| snippetId | Yes | ID of the snippet to delete |
Implementation Reference
- src/index.ts:1479-1497 (handler)The MCP tool handler function 'deleteQuerySnippet' that executes the delete_query_snippet tool logic. It parses the snippetId from input, calls redashClient.deleteQuerySnippet(), and returns success or error response.
// Tool: delete_query_snippet const deleteQuerySnippetSchema = z.object({ snippetId: z.coerce.number() }); async function deleteQuerySnippet(params: z.infer<typeof deleteQuerySnippetSchema>) { try { const result = await redashClient.deleteQuerySnippet(params.snippetId); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { logger.error(`Error deleting query snippet ${params.snippetId}: ${error}`); return { isError: true, content: [{ type: "text", text: `Error deleting query snippet ${params.snippetId}: ${error instanceof Error ? error.message : String(error)}` }] }; } } - src/index.ts:1480-1482 (schema)Zod schema for validating the delete_query_snippet tool's input parameters. Requires a numeric 'snippetId'.
const deleteQuerySnippetSchema = z.object({ snippetId: z.coerce.number() }); - src/index.ts:2269-2279 (registration)Tool registration in the ListToolsRequestSchema handler, defining the 'delete_query_snippet' tool's name, description, and input JSON Schema.
{ name: "delete_query_snippet", description: "Delete a query snippet", inputSchema: { type: "object", properties: { snippetId: { type: "number", description: "ID of the snippet to delete" } }, required: ["snippetId"] } }, - src/index.ts:2550-2552 (registration)The switch-case routing that dispatches incoming 'delete_query_snippet' tool calls to the handler function.
case "delete_query_snippet": logger.debug(`Handling delete_query_snippet`); return await deleteQuerySnippet(deleteQuerySnippetSchema.parse(args)); - src/redashClient.ts:1208-1217 (helper)The client-side helper method that performs the actual HTTP DELETE request to the Redash API to delete a query snippet.
// Delete a query snippet async deleteQuerySnippet(snippetId: number): Promise<{ success: boolean }> { try { await this.client.delete(`/api/query_snippets/${snippetId}`); return { success: true }; } catch (error) { logger.error(`Error deleting query snippet ${snippetId}: ${error}`); throw new Error(`Failed to delete query snippet ${snippetId}: ${error instanceof Error ? error.message : String(error)}`); } }