tasks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TASKS_ROOT | Yes | The absolute path of the project whose tasks you want to manage. It points to the project, not to the toolkit installation. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tasks_listB | List sprints/tasks/subtasks as an indented tree with their (derived) status. |
| tasks_showA | Show one or more items (description, assignee, dependencies, notes, derived status); brief=true prints one line per item. |
| tasks_nextA | Next ready, unfinished leaf items (dependencies met) in the first unfinished sprint. |
| tasks_statsA | Counts per status and open work per assignee. |
| tasks_sprintB | One table of a sprint's tasks (status, assignee, progress) in a single call. |
| tasks_overviewA | All sprints in one call: derived status, counts per status and the goal. |
| tasks_add_sprintC | Create a sprint. |
| tasks_addA | Add a task under a sprint id, or a subtask under a task id (max depth: sprint > task > subtask). |
| tasks_set_statusA | Set a status on a leaf item. Parent statuses are derived (any blocked -> blocked, all done -> done, anything started/finished -> in progress). Blocking requires a reason. cascade_down applies the status to every leaf below a task or sprint. Pass either id or ids (exactly one). |
| tasks_editA | Edit title, description, assignee, dependencies (--after replaces the list; empty clears) and, for sprints, goal/start/end. Pass either id or ids (exactly one). --title with multiple ids is rejected. |
| tasks_moveA | Move an item to another parent (renumbers the subtree). Errors: unknown ids, moving a sprint, moving into own subtree, depth > MAX_DEPTH, same parent without --pos. |
| tasks_noteA | Append a dated note to an item (progress, decisions, pointers to patches). |
| tasks_removeA | Delete an item and everything below it (cascades to notes and dependencies). Refused while other items depend on it. Two-step: call without confirm for a preview, then again with confirm=true. |
| tasks_linkB | Attach a structured link (spec, patch, runner, model, agent, commit, branch, fixes, scope) to an item. |
| tasks_unlinkB | Remove a structured link from an item. |
| tasks_mvB | Move an item to another parent (renumbers the subtree). |
| tasks_briefA | Context bundle for one item: description, dependencies with merge commits, spec link, notes, and the list of files the dependencies changed. |
| tasks_logB | Print the audit log (optionally for one item, optionally since a timestamp). |
| tasks_viewA | Return the rendered task view README (overall + current sprint + links to the per-sprint files). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
tasks_move and tasks_mv are effectively the same operation (both 'move an item to another parent, renumbers the subtree'), creating clear duplicate ambiguity. Additionally, the read surface (tasks_overview, tasks_sprint, tasks_stats, tasks_list, tasks_show, tasks_view, tasks_brief) overlaps heavily with only subtle distinctions between count views, table views, and rendered views.
A consistent tasks_ prefix is applied throughout, but the suffix convention is mixed: noun-based (overview, stats, sprint, brief, log, view) alongside verb-based (add, edit, move, set_status, remove). The duplication between tasks_move and tasks_mv further erodes predictability.
19 tools sits at the heavy end of the borderline range. Several read-oriented tools could be consolidated, and one is a straight duplicate, so not every tool clearly earns its place.
The surface covers the full lifecycle: create/edit/move/remove for sprints, tasks, and subtasks, plus status, notes, links, audit log, and derived-state views. Minor gaps like keyword search and bulk filtering exist but agents can work around them with list/view calls.