MCP tools: sprints
Six tools for sprints. A sprint is one window of a series; the series sets the cadence, the sprints are its numbered iterations.
| Tool | Role | Purpose |
|---|---|---|
list_sprint_series | user | Series the caller belongs to |
list_sprints | user | Sprints of a series around the running one |
get_sprint | user | One sprint: name, goal, dates, status |
list_sprint_items | user | The items in a sprint |
add_item_to_sprint | user | Assign an item |
remove_item_from_sprint | user | Take an item out |
How a sprint is addressed
Wherever sprint appears, two forms are allowed:
- the key
"17.7"– series number and ordinal - the symbolic values
"current","next","previous"(default:"current")
series accepts a UUID, the series number, or the name. It is only needed for the symbolic values, and even then only when more than one series exists.
Unmaterialized sprints are real all the same
list_sprints returns windows that never held an item with materialized: false. They exist as a period and can be addressed – they just have no database row yet. During a cooldown, running is null; that means "no sprint right now", not "error".
list_sprint_items
| Parameter | Type | Description |
|---|---|---|
sprint | string | Key, or current/next/previous |
series | string | UUID, number, or name |
assignees | string[] (max 50) | Only items assigned to at least one of these (OR) |
Besides the rows, the response carries a hidden field: the number of items in the sprint that live in lists the caller cannot access. Membership of a series grants no access to items — this field explains why a count may not match the board.
add_item_to_sprint
| Parameter | Type | Description |
|---|---|---|
item | string (required) | Item ID (UUID) |
sprint | string | Key, or current/next/previous |
series | string | UUID, number, or name |
The only way to set a sprint
create_list_item and update_list_item have no sprint field, and a sub-task does not inherit its parent's sprint. Assigning a sprint requires this tool.
Assigning is idempotent and replaces an earlier sprint of the same series – an item cannot sit in two sprints of one cadence. Sprints of other series are untouched. Nothing can be added to a completed sprint.
remove_item_from_sprint only takes the item out of the cadence; it keeps existing, keeps its status, and sits in the backlog again.