generated from coulomb/repo-seed
feat(mcp): add list_tasks(workstream_id) tool — resolves FR 7074fd47
Agents had no way to look up task UUIDs by workstream; they were stuck
unable to call update_task_status without already knowing the UUID.
list_tasks() wraps GET /tasks with workstream_id filter, returning
[{id, title, status, priority}] for all matching tasks.
FR raised by kaizen-agentic worker on COULOMBCORE while syncing
KAIZEN-WP-0002 task IDs. Marked merged in contributions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -273,6 +273,21 @@ def get_topic(slug: str) -> str:
|
||||
return json.dumps({"topic": topic_detail, "recent_progress": recent}, indent=2)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def list_tasks(workstream_id: str, status: str | None = None) -> str:
|
||||
"""List all tasks in a workstream, optionally filtered by status.
|
||||
|
||||
Args:
|
||||
workstream_id: UUID of the workstream (required).
|
||||
status: Optional filter — todo | in_progress | blocked | done | cancelled.
|
||||
|
||||
Returns [{id, title, status, priority, assignee, due_date, needs_human}] for every
|
||||
matching task. Use this to look up task UUIDs before calling update_task_status,
|
||||
or to check which tasks from a workplan file are already synced to the DB.
|
||||
"""
|
||||
return json.dumps(_get("/tasks", {"workstream_id": workstream_id, "status": status}), indent=2)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def list_blocked_tasks(workstream_id: str | None = None) -> str:
|
||||
"""List all tasks with status=blocked, optionally filtered by workstream_id."""
|
||||
|
||||
Reference in New Issue
Block a user