MCP tools reference
Every tool the connector exposes — 108 across 13 domains. Read-only and destructive hints follow MCP annotations, so clients can render the right confirmations.
tasks.assignwriteAssign or unassign a task. Pass `assigneeId: null` to clear.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required | |
| assigneeId | any | required | User id to assign, or null to unassign. |
tasks.assignee_countsreadCount a project's tasks per assignee, with the same filters as `tasks.list`. Unassigned tasks are left out.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| projectId | string | required | Project id. |
| ids | string[] | optional | Restrict to these task ids. |
| search | string | optional | Free-text search over tasks. |
| statusId | string | optional | Single-status filter; prefer statusIds. |
| statusIds | string[] | optional | Tasks in ANY of these statuses. |
| excludeStatusIds | string[] | optional | |
| priority | string: urgent | high | normal | low | lowest | optional | Single-priority filter; prefer priorities. |
| priorities | string[] | optional | |
| excludePriorities | string[] | optional | |
| assigneeIds | string[] | optional | |
| excludeAssigneeIds | string[] | optional | |
| assigneeIsEmpty | boolean | optional | Only unassigned tasks. |
| assigneeIsNotEmpty | boolean | optional | |
| creatorIds | string[] | optional | |
| excludeCreatorIds | string[] | optional | |
| labelIds | string[] | optional | Tasks with ANY of these labels. |
| labelIdsAll | string[] | optional | Tasks with ALL of these labels. |
| excludeLabelIds | string[] | optional | |
| labelsIsEmpty | boolean | optional | |
| labelsIsNotEmpty | boolean | optional | |
| milestoneId | string | optional | Single-milestone filter; prefer milestoneIds. |
| milestoneIds | string[] | optional | |
| excludeMilestoneIds | string[] | optional | |
| milestoneIsEmpty | boolean | optional | |
| milestoneIsNotEmpty | boolean | optional | |
| dueOn | string | optional | |
| dueBefore | string | optional | Exclusive upper bound (YYYY-MM-DD). |
| dueAfter | string | optional | Exclusive lower bound (YYYY-MM-DD). |
| dueFrom | string | optional | Inclusive lower bound (YYYY-MM-DD). |
| dueTo | string | optional | Inclusive upper bound (YYYY-MM-DD). |
| dueIsEmpty | boolean | optional | |
| dueIsNotEmpty | boolean | optional | |
| titleContains | string | optional | Case-insensitive title search. |
| titleStartsWith | string | optional | |
| titleNotContains | string | optional |
tasks.bulk_deletedestructivePermanently delete many tasks at once. Each task is authorized on its own, as a single delete would be.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskIds | string[] | required | Task ids (1–500, unique). May span projects of the workspace; each task is authorized on its own. |
tasks.bulk_updatewriteApply one change to many tasks at once: set status, priority, assignee, due date or milestone, and add / remove / clear labels. Each task is authorized on its own, as a single update would be.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskIds | string[] | required | Task ids (1–500, unique). May span projects of the workspace; each task is authorized on its own. |
| changes | object | optional | Fields to set on every task; omitted fields are left alone. |
| changes.statusId | string | optional | |
| changes.priority | any | optional | null is stored as normal. |
| changes.assigneeId | any | optional | |
| changes.dueDate | any | optional | |
| changes.milestoneId | any | optional | Must belong to each task's own project. |
| labels | object | optional | Label operations. `clear` and `remove` apply before `add`. |
| labels.add | string[] | optional | |
| labels.remove | string[] | optional | |
| labels.clear | boolean | optional |
tasks.countreadCount the tasks in a project that match the same filters as `tasks.list` (limit, offset and sort do not apply).
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| projectId | string | required | Project id. |
| ids | string[] | optional | Restrict to these task ids. |
| search | string | optional | Free-text search over tasks. |
| statusId | string | optional | Single-status filter; prefer statusIds. |
| statusIds | string[] | optional | Tasks in ANY of these statuses. |
| excludeStatusIds | string[] | optional | |
| priority | string: urgent | high | normal | low | lowest | optional | Single-priority filter; prefer priorities. |
| priorities | string[] | optional | |
| excludePriorities | string[] | optional | |
| assigneeIds | string[] | optional | |
| excludeAssigneeIds | string[] | optional | |
| assigneeIsEmpty | boolean | optional | Only unassigned tasks. |
| assigneeIsNotEmpty | boolean | optional | |
| creatorIds | string[] | optional | |
| excludeCreatorIds | string[] | optional | |
| labelIds | string[] | optional | Tasks with ANY of these labels. |
| labelIdsAll | string[] | optional | Tasks with ALL of these labels. |
| excludeLabelIds | string[] | optional | |
| labelsIsEmpty | boolean | optional | |
| labelsIsNotEmpty | boolean | optional | |
| milestoneId | string | optional | Single-milestone filter; prefer milestoneIds. |
| milestoneIds | string[] | optional | |
| excludeMilestoneIds | string[] | optional | |
| milestoneIsEmpty | boolean | optional | |
| milestoneIsNotEmpty | boolean | optional | |
| dueOn | string | optional | |
| dueBefore | string | optional | Exclusive upper bound (YYYY-MM-DD). |
| dueAfter | string | optional | Exclusive lower bound (YYYY-MM-DD). |
| dueFrom | string | optional | Inclusive lower bound (YYYY-MM-DD). |
| dueTo | string | optional | Inclusive upper bound (YYYY-MM-DD). |
| dueIsEmpty | boolean | optional | |
| dueIsNotEmpty | boolean | optional | |
| titleContains | string | optional | Case-insensitive title search. |
| titleStartsWith | string | optional | |
| titleNotContains | string | optional |
tasks.createwriteCreate a task in a project. Auto-assigns the caller and auto-subscribes them to the task. Defaults to the workspace's default status when statusId is omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| projectId | string | required | |
| body | object | required | |
| body.title | string | required | |
| body.description | any | optional | Task description as a BlockNote / TipTap JSON block array (same shape as comments.create content). null clears. |
| body.statusId | string | optional | |
| body.priority | string: urgent | high | normal | low | lowest | optional | Optional priority; defaults to normal. |
| body.assigneeId | any | optional | |
| body.dueDate | any | optional | ISO 8601 date (YYYY-MM-DD). null clears. |
| body.milestoneId | any | optional |
tasks.deletedestructiveDelete a task. Comments / linked-docs follow the existing cascade.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.getreadFetch a single task's full detail.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.get_by_numberreadFetch a task by the number shown in the app (#42) within its project — the way people refer to tasks.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| projectId | string | required | Project id. |
| number | integer | required | Display number shown in the app as #42. |
tasks.listreadList tasks in a project. Filters: status / priority / assignee / creator / label / milestone (include, exclude, is-empty variants), due-date ranges, and title search (titleContains). Array filters combine as AND across fields, OR within a field. Pagination: limit (default 50, max 200), offset; use `tasks.count` for the filtered total.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| projectId | string | required | Project id. |
| ids | string[] | optional | Restrict to these task ids. |
| search | string | optional | Free-text search over tasks. |
| statusId | string | optional | Single-status filter; prefer statusIds. |
| statusIds | string[] | optional | Tasks in ANY of these statuses. |
| excludeStatusIds | string[] | optional | |
| priority | string: urgent | high | normal | low | lowest | optional | Single-priority filter; prefer priorities. |
| priorities | string[] | optional | |
| excludePriorities | string[] | optional | |
| assigneeIds | string[] | optional | |
| excludeAssigneeIds | string[] | optional | |
| assigneeIsEmpty | boolean | optional | Only unassigned tasks. |
| assigneeIsNotEmpty | boolean | optional | |
| creatorIds | string[] | optional | |
| excludeCreatorIds | string[] | optional | |
| labelIds | string[] | optional | Tasks with ANY of these labels. |
| labelIdsAll | string[] | optional | Tasks with ALL of these labels. |
| excludeLabelIds | string[] | optional | |
| labelsIsEmpty | boolean | optional | |
| labelsIsNotEmpty | boolean | optional | |
| milestoneId | string | optional | Single-milestone filter; prefer milestoneIds. |
| milestoneIds | string[] | optional | |
| excludeMilestoneIds | string[] | optional | |
| milestoneIsEmpty | boolean | optional | |
| milestoneIsNotEmpty | boolean | optional | |
| dueOn | string | optional | |
| dueBefore | string | optional | Exclusive upper bound (YYYY-MM-DD). |
| dueAfter | string | optional | Exclusive lower bound (YYYY-MM-DD). |
| dueFrom | string | optional | Inclusive lower bound (YYYY-MM-DD). |
| dueTo | string | optional | Inclusive upper bound (YYYY-MM-DD). |
| dueIsEmpty | boolean | optional | |
| dueIsNotEmpty | boolean | optional | |
| titleContains | string | optional | Case-insensitive title search. |
| titleStartsWith | string | optional | |
| titleNotContains | string | optional | |
| sort | string: created_at | updated_at | due_date | priority | status | title | number | pinned | optional | `pinned` puts the caller's pinned tasks first. |
| order | string: asc | desc | optional | |
| limit | integer | optional | |
| offset | integer | optional |
tasks.list_workspacereadList tasks across every project of a workspace, optionally limited to a due-date range (dueFrom / dueTo) and one assignee. For full filtering use `tasks.list` per project.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| dueFrom | string | optional | Inclusive lower bound on dueDate (YYYY-MM-DD). Either bound limits the result to tasks that have a due date. |
| dueTo | string | optional | Inclusive upper bound on dueDate (YYYY-MM-DD). |
| assigneeId | string | optional | |
| limit | integer | optional |
tasks.mutewriteSilence a task's notifications even where they would arrive automatically. The only way to opt out of a task you are assigned to.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.pinwritePin a task for the caller only (pins are private). Idempotent. List pinned-first with `tasks.list` `sort: pinned`.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.pinned_listreadList the ids of every task the caller has pinned in a workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| limit | integer | optional | |
| offset | integer | optional |
tasks.set_labelswriteReplace the full label set on a task. Pass an empty array to clear all labels.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required | |
| labelIds | string[] | required | Full label set for the task. Replaces existing labels. Pass [] to clear. |
tasks.set_statuswriteMove a task to a different status. Sugar over `tasks.update` for the agent's most common write — pair with `comments.create` for narration.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required | |
| statusId | string | required | Target status id (from `statuses.list`). |
tasks.unmutewriteLift a mute and restore whatever watch state applied before it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.unpinwriteRemove the caller's pin from a task. Idempotent.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.unwatchwriteDrop an explicit watch. A task still watched automatically (assignee, author) keeps notifying — use tasks.mute to silence those.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.updatewritePartial update on a task (title, description, status, priority, assignee, due date, milestone). Status changes, assignee changes, and field edits emit activity-log entries and notifications to watchers.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required | |
| body | object | required | |
| body.title | string | optional | |
| body.description | any | optional | Task description as a BlockNote / TipTap JSON block array (same shape as comments.create content). null clears. |
| body.statusId | string | optional | |
| body.priority | string: urgent | high | normal | low | lowest | optional | Priority. |
| body.assigneeId | any | optional | |
| body.dueDate | any | optional | ISO 8601 date (YYYY-MM-DD). null clears. |
| body.milestoneId | any | optional | |
| body.position | number | optional | Sort position within the task's status column. |
tasks.watchwriteExplicitly subscribe to a task's notifications. Idempotent.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.watch_getreadGet the caller's watch state for a task: watching, muted, and whether the watch is automatic (`auto` — derived from being assignee or author).
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| taskId | string | required |
tasks.watched_listreadList the ids of every task the caller watches in a workspace (muted ones included) — for marking watch state across a task list without a request per task.
| Parameter | Type | Required | Description |
|---|---|---|---|
| workspaceSlug | string | required | Workspace slug (from workspaces.list). |
| limit | integer | optional | |
| offset | integer | optional |
Each tool advertises its full JSON schema via tools/list — for exact arguments use your client's tool inspector; in Claude Code that's /mcp