bmad_update_task_status
Update task status in CastPlan MCP to track progress through pending, assigned, in-progress, needs-revision, or completed states.
Instructions
Update the status of a specific task
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID of the task to update | |
| status | Yes | New status for the task |
Implementation Reference
- src/tools/bmad/index.ts:74-77 (handler)The MCP tool handler function for 'bmad_update_task_status'. It extracts taskId and status from args, calls the BMADService to update the task status, and returns a success response with the details.tools.set('bmad_update_task_status', async (args: any) => { const updated = await bmadService.updateTaskStatus(args.taskId, args.status); return { success: updated, taskId: args.taskId, status: args.status }; });
- src/tools/bmad/index.ts:48-66 (schema)The input schema definition for the 'bmad_update_task_status' tool, specifying required taskId (string) and status (enum of possible task statuses).{ name: 'bmad_update_task_status', description: 'Update the status of a specific task', inputSchema: { type: 'object', properties: { taskId: { type: 'string', description: 'ID of the task to update' }, status: { type: 'string', enum: ['pending', 'assigned', 'in-progress', 'needs-revision', 'completed'], description: 'New status for the task' } }, required: ['taskId', 'status'] } }
- src/index.ts:405-407 (registration)Registration of BMAD tools (including 'bmad_update_task_status') in the main server by calling registerBMADTools with the tools Map and BMADService instance, then adding definitions to toolDefinitions.if (this.config.services.bmad && this.bmadService) { const bmadTools = registerBMADTools(this.tools, this.bmadService); this.toolDefinitions.push(...bmadTools);
- src/services/BMADService.ts:856-864 (helper)BMADService helper method that finds a task by ID in the internal tasks array, updates its status and updatedAt timestamp if found, and returns boolean success.async updateTaskStatus(taskId: string, status: Task['status']): Promise<boolean> { const task = this.tasks.find(t => t.id === taskId); if (task) { task.status = status; task.updatedAt = new Date().toISOString(); return true; } return false; }