MCP tools: Tasks, projects and milestones

Create, change and find tasks – including AI effort estimates and similarity search – and manage projects and milestones.

Prerequisites
  • Tasks and Projects modules enabled (milestone tools are always available).
  • For assignments: the person's userId from list_members.

list_tasks

Lists tasks of the organization, newest first. Filter by status, priority, project and parent task. Returns the complete task rows. Requirements: role Viewer or higher, key scope "read" or higher, module "Tasks" enabled.

status
Optional · string · todo | in_progress | done | backlog | list_only — Only tasks with this status.
priority
Optional · string · low | medium | high | critical — Only tasks with this priority.
projectId
Optional · string — Only entries of this project.
parentTaskId
Optional · string — Only subtasks of this task.
limit
Optional · number — Maximum number of results (default 50, max 200).

get_task

Returns a single task by ID. If the task does not exist or belongs to another organization, the error "Task not found" is returned. Requirements: role Viewer or higher, key scope "read" or higher, module "Tasks" enabled.

id
Required · string — ID of the task.

create_task

Creates a task. Without assigneeId it is assigned to you; an explicitly sent null leaves it unassigned. The task number is assigned per organization, atomically and sequentially. Project, milestone, parent task and assignees must belong to the same organization, otherwise an error is returned. The task is also indexed for semantic similarity search. Returns the created task row. Requirements: role Member or higher, key scope "write" or higher, module "Tasks" enabled.

name
Required · string — Task title.
description
Optional · string — Description as free text.
status
Optional · string · todo | in_progress | done | backlog — Initial status. Default: todo.
priority
Optional · string · low | medium | high | critical — Task priority.
projectId
Optional · string — ID of the assigned project.
milestoneId
Optional · string — ID of the milestone.
dueDate
Optional · string — Due date (ISO 8601).
tags
Optional · string[] — Tags as a list.
assigneeId
Optional · string — Internal user ID of the assignee (field userId from list_members). Default: yourself.
assigneeIds
Optional · string[] — Several assignees as a list of internal user IDs (field userId from list_members).
parentTaskId
Optional · string — ID of the parent task (makes this task a subtask).

update_task

Updates an existing task; only the fields you send are changed. A task cannot be its own parent. An empty string for parentTaskId turns it back into a top-level task. References are checked against the organization again; when name, description, category or tags change, the search index is refreshed. Returns the updated row. Requirements: role Member or higher, key scope "write" or higher, module "Tasks" enabled.

id
Required · string — ID of the task.
name
Optional · string — New title.
description
Optional · string — Description as free text.
status
Optional · string · todo | in_progress | done | backlog — New status.
priority
Optional · string · low | medium | high | critical — New priority.
projectId
Optional · string — ID of the assigned project.
milestoneId
Optional · string — ID of the milestone.
dueDate
Optional · string — New due date (ISO 8601); an empty value removes it.
tags
Optional · string[] — Tags as a list.
assigneeId
Optional · string — Internal user ID of the assignee (field userId from list_members).
assigneeIds
Optional · string[] — Several assignees as a list of internal user IDs (field userId from list_members).
parentTaskId
Optional · string — ID of the parent task. An empty string clears the link.

delete_task

Permanently deletes a task. Requires at least the Admin role and a key with the delete scope. Requirements: role Admin or higher, key scope "delete" or higher, module "Tasks" enabled.

id
Required · string — ID of the task.

find_similar_tasks

Decision Context Layer: semantic search for earlier, similar tasks – either by free text (query) or starting from an existing task (taskId; the task itself is excluded). Returns similarTasks with estimated and actually logged hours, matching knowledgebase snippets (kbHits) and a degraded flag. Basis for effort estimates, prioritisation and sprint planning. Your task visibility rules apply. Either query or taskId is required. Requirements: role Viewer or higher, key scope "read" or higher, module "Tasks" enabled.

query
Optional · string — Free-text description of the work to find comparable tasks for.
taskId
Optional · string — ID of an existing task to find similar ones for (alternative to query).
limit
Optional · number — Maximum number of results (default 6, max 20).
onlyDone
Optional · boolean · Default: false — Restrict to completed tasks (best for estimate-vs-actual comparison). Default: false.
includeKb
Optional · boolean · Default: true — Also returns matching knowledgebase snippets (default: true).

estimate_task_effort

AI effort estimate: suggests hours for a new (query) or existing task (taskId) based on comparable completed tasks, preferring logged time over planned time. The result contains a range, confidence and the tasks the estimate is based on. With too few comparable tasks the AI estimates from typical real-world effort (method="ai-general"). estimate is null only when the AI is unavailable. The result is AI-generated – review it before adopting it. Requirements: role Viewer or higher, key scope "read" or higher, module "Tasks" enabled.

query
Optional · string — Free-text description of the work to estimate.
taskId
Optional · string — ID of an existing task to estimate (alternative to query).

list_projects

Lists all projects of the organization, newest first. Requirements: role Viewer or higher, key scope "read" or higher, module "Projects" enabled.

limit
Optional · number — Maximum number of results (default 50, max 200).

get_project

Returns a single project by ID. Requirements: role Viewer or higher, key scope "read" or higher, module "Projects" enabled.

id
Required · string — ID of the project.

create_project

Creates a project; you are stored as its creator. Only the name is required. Requirements: role Member or higher, key scope "write" or higher, module "Projects" enabled.

name
Required · string — Project name.
description
Optional · string — Description as free text.
category
Optional · string — Category as free text.
color
Optional · string — Project color as hex value, e.g. #6366f1.
hourlyRate
Optional · number — Hourly rate of the project.
budgetHours
Optional · number — Hour budget of the project.

update_project

Updates a project; only the fields you send are changed. Requirements: role Member or higher, key scope "write" or higher, module "Projects" enabled.

id
Required · string — ID of the project.
name
Optional · string — New project name.
description
Optional · string — Description as free text.
category
Optional · string — Category as free text.
color
Optional · string — New project color as hex value.
hourlyRate
Optional · number — New hourly rate of the project.
budgetHours
Optional · number — Hour budget of the project.

delete_project

Permanently deletes a project. Requires at least the Admin role and a key with the delete scope. Requirements: role Admin or higher, key scope "delete" or higher, module "Projects" enabled.

id
Required · string — ID of the project.

list_milestones

Lists milestones of the organization, newest first; filter by status and phase. This tool has no module switch and is always available. Requirements: role Viewer or higher, key scope "read" or higher, no module switch (always available).

status
Optional · string · upcoming | in-progress | completed | delayed — Only milestones with this status.
phase
Optional · string · pre-mvp | mvp | pmf | growth | custom — Only milestones of this phase.
limit
Optional · number — Maximum number of results (default 50, max 200).

get_milestone

Returns a single milestone by ID. Requirements: role Viewer or higher, key scope "read" or higher, no module switch (always available).

id
Required · string — ID of the milestone.

create_milestone

Creates a milestone; you are stored as its creator. Without further input it starts with phase custom and status upcoming. Requirements: role Member or higher, key scope "write" or higher, no module switch (always available).

title
Required · string — Title.
description
Optional · string — Description as free text.
phase
Optional · string · pre-mvp | mvp | pmf | growth | custom — Phase. Default: custom.
status
Optional · string · upcoming | in-progress | completed | delayed — Initial status. Default: upcoming.
targetDate
Optional · string — Target date (ISO 8601).

update_milestone

Updates a milestone. When the status is set to completed, the tool automatically stores the current date as completion date. Requirements: role Member or higher, key scope "write" or higher, no module switch (always available).

id
Required · string — ID of the milestone.
title
Optional · string — Title.
description
Optional · string — Description as free text.
phase
Optional · string · pre-mvp | mvp | pmf | growth | custom — New phase.
status
Optional · string · upcoming | in-progress | completed | delayed — New status. completed sets the completion date.
targetDate
Optional · string — New target date (ISO 8601); an empty value removes it.

delete_milestone

Deletes a milestone. Requires at least the Admin role and a key with the delete scope. Requirements: role Admin or higher, key scope "delete" or higher, no module switch (always available).

id
Required · string — ID of the milestone.

Common pitfalls

  • Default assignment

    create_task assigns you when you send no assigneeId. To leave the task unassigned, explicitly send null.

  • Membership is checked

    Project, milestone, parent task and assignees must belong to the same organization; otherwise an error such as "projectId does not belong to this organization" is returned.

  • Status values differ

    list_tasks additionally knows the status list_only; when creating and updating, todo, in_progress, done and backlog are allowed.

  • Deleting is permanent

    delete_task and delete_project delete permanently and require the Admin role and the delete scope.

Keep reading

Still have a question or a problem?

Visit support

Last reviewed on 2026-09-26