delete_task
Remove tasks permanently from FluentBoards project management boards. Requires board ID, task ID, and confirmation to proceed with deletion.
Instructions
Delete a task permanently
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| confirm_delete | No | Confirmation required: set to true, 'yes', or 'confirm' to proceed |
Implementation Reference
- src/tools/tasks.ts:149-160 (handler)The handler function for the delete_task tool. Validates safety with confirm_delete parameter, calls API delete endpoint if allowed, and formats the response.async (args) => { const { board_id, task_id, confirm_delete } = args; // Validate delete operation safety const safetyCheck = validateDeleteOperation("task", confirm_delete); if (!safetyCheck.allowed) { return formatResponse(createDeleteSafetyError(safetyCheck)); } const response = await api.delete(`/projects/${board_id}/tasks/${task_id}`); return formatResponse(response.data); }
- src/tools/tasks.ts:144-148 (schema)Zod input schema for delete_task tool parameters: board_id, task_id, and optional confirm_delete.{ board_id: z.number().int().positive().describe("Board ID"), task_id: z.number().int().positive().describe("Task ID"), confirm_delete: z.union([z.boolean(), z.string()]).optional().describe("Confirmation required: set to true, 'yes', or 'confirm' to proceed"), },
- src/tools/tasks.ts:141-161 (registration)Full registration of the delete_task tool via server.tool() call within registerTaskTools function.server.tool( "delete_task", "Delete a task permanently", { board_id: z.number().int().positive().describe("Board ID"), task_id: z.number().int().positive().describe("Task ID"), confirm_delete: z.union([z.boolean(), z.string()]).optional().describe("Confirmation required: set to true, 'yes', or 'confirm' to proceed"), }, async (args) => { const { board_id, task_id, confirm_delete } = args; // Validate delete operation safety const safetyCheck = validateDeleteOperation("task", confirm_delete); if (!safetyCheck.allowed) { return formatResponse(createDeleteSafetyError(safetyCheck)); } const response = await api.delete(`/projects/${board_id}/tasks/${task_id}`); return formatResponse(response.data); } );
- src/index.ts:23-23 (registration)Invocation of registerTaskTools(server) which registers the delete_task tool among others.registerTaskTools(server);
- src/utils/index.ts:98-139 (helper)Helper function validateDeleteOperation used by delete_task handler to check config-based safety rules and confirmation before allowing deletion.export function validateDeleteOperation( deleteType: DeleteType, confirmDelete?: boolean | string ): DeleteSafetyResult { const { deleteSafety } = config; // Check if deletes are enabled at all if (!deleteSafety.enableDeletes) { return { allowed: false, reason: `Delete operations are disabled. Set ENABLE_DELETES=true in environment to enable.`, code: "DELETES_DISABLED" }; } // Check if this specific delete type is allowed if (deleteSafety.allowedDeleteTypes.length > 0 && !deleteSafety.allowedDeleteTypes.includes(deleteType)) { return { allowed: false, reason: `Delete operations for '${deleteType}' are not allowed. Allowed types: ${deleteSafety.allowedDeleteTypes.join(', ')}`, code: "DELETE_TYPE_NOT_ALLOWED" }; } // Check confirmation requirement if (deleteSafety.requireConfirmation) { const confirmValue = typeof confirmDelete === "string" ? confirmDelete.toLowerCase() : confirmDelete; if (confirmValue !== true && confirmValue !== "yes" && confirmValue !== "confirm") { return { allowed: false, reason: `Confirmation required for delete operations. Add 'confirm_delete: true' or 'confirm_delete: "yes"' parameter.`, code: "CONFIRMATION_REQUIRED" }; } } return { allowed: true }; }