remove_todo
Delete a specific task from your software development plan by providing its unique ID to maintain an organized project workflow.
Instructions
Remove a todo item from the current plan
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| todoId | Yes | ID of the todo item to remove |
Implementation Reference
- src/index.ts:278-297 (handler)MCP tool handler for 'remove_todo': validates current goal, extracts todoId from arguments, delegates to storage.removeTodo, and returns success response.case 'remove_todo': { if (!this.currentGoal) { throw new McpError( ErrorCode.InvalidRequest, 'No active goal. Start a new planning session first.' ); } const { todoId } = request.params.arguments as { todoId: string }; await storage.removeTodo(this.currentGoal.id, todoId); return { content: [ { type: 'text', text: `Successfully removed todo ${todoId}`, }, ], }; }
- src/index.ts:172-181 (schema)Input schema for the 'remove_todo' tool defining the required 'todoId' string parameter.inputSchema: { type: 'object', properties: { todoId: { type: 'string', description: 'ID of the todo item to remove', }, }, required: ['todoId'], },
- src/index.ts:169-182 (registration)Registration of the 'remove_todo' tool in the tools list for ListToolsRequestSchema, including name, description, and input schema.{ name: 'remove_todo', description: 'Remove a todo item from the current plan', inputSchema: { type: 'object', properties: { todoId: { type: 'string', description: 'ID of the todo item to remove', }, }, required: ['todoId'], }, },
- src/storage.ts:97-106 (helper)Helper method in storage class that removes a todo item by ID from the plan's todos array, updates the plan timestamp, and persists the change.async removeTodo(goalId: string, todoId: string): Promise<void> { const plan = await this.getPlan(goalId); if (!plan) { throw new Error(`No plan found for goal ${goalId}`); } plan.todos = plan.todos.filter((todo: Todo) => todo.id !== todoId); plan.updatedAt = new Date().toISOString(); await this.save(); }