list_tasks
List tasks visible to the caller, with optional filters: projectId, parentId (pass "null" string or JSON null for top-level-only), status, assigneeId (or the sentinels "me" / "unassigned"), assignedToAgentPersona, collaboratorId (or "me": tasks a person collaborates on without holding them), title with titleMode ("contains" default, "equals", "startsWith"; all case-insensitive), dueBefore / dueAfter, overdueOnly, orderBy. Each row carries collaborators, the people working on it besides its assignee, isManual and datesFromSubtasks (true when its dates come from its subtasks), and url, the task's link in the Onplana web app. Returns up to 200 tasks per call with cursor-based pagination (nextCursor). Without parentId, matching tasks at every depth are returned, subtasks included; parentId "null" narrows to top-level tasks. underTaskId narrows to every task under one task at any depth, such as a phase with its work packages and their tasks. workItemsOnly true leaves out summary tasks (a task with subtasks), false includes them; the response's workItemsOnly field, when present, says which it read; milestonesExcluded true, when present, says milestones were left out (pass workItemsOnly to include them). When the response carries hasMore, total counts every matching task and hasMore says more exist past this page: pass nextCursor back as cursor for the next page, or read summarize_project for project-wide counts. PREFER get_plan when you need the whole project tree in one call; PREFER list_assigned_tasks for your own queue. Use list_tasks when drilling parent to children or paginating through a large project. When you pass projectId, the response carries projectResolved: if it is false the id did not match any project visible to you and the empty tasks list says NOTHING about whether that project has work in it, re-check the id (use full ids from list_projects, never abbreviated) rather than concluding the project is empty or unsaved.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "list_tasks"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 25, max 200. | |
| title | No | Case-insensitive match on task title. See titleMode for how it matches. | |
| cursor | No | Last-id pagination cursor from a prior call's nextCursor. | |
| status | No | ||
| orderBy | No | Default 'dueDate'. Combined with priority desc as secondary. | |
| dueAfter | No | ISO date - show tasks due after this date. | |
| parentId | No | Parent task id, "null" string, or JSON null for top-level-only. | |
| dueBefore | No | ISO date - show tasks due before this date. | |
| projectId | No | Optional - restrict to one project. | |
| titleMode | No | How title is matched: 'contains' (default), 'equals', or 'startsWith'. All case-insensitive. | |
| assigneeId | No | Show tasks assigned to one user. Special values: 'me' (the caller), 'unassigned' (no assignee). | |
| overdueOnly | No | When true, only return tasks due before today in the time zone of the user and not DONE (a task due today is not overdue). | |
| underTaskId | No | Only tasks under this task (a phase or other summary task), at any depth. | |
| customFields | No | Filter by custom-field value(s); multiple entries are ANDed. Each entry is { fieldId, op, value? }. Ops must be valid for the field type , numeric (NUMBER/CURRENCY/RATING): eq/gt/gte/lt/lte/isNotEmpty; DATE: eq/before/after/isNotEmpty; text/DROPDOWN: eq/contains/isNotEmpty; MULTI_SELECT: contains/isNotEmpty; CHECKBOX: isChecked/isUnchecked (unchecked includes never set). Omit value for isNotEmpty, isChecked and isUnchecked. No neq / isEmpty. Get field ids from list_custom_field_defs. | |
| workItemsOnly | No | True: leave out summary tasks (tasks with subtasks). False: include them. | |
| collaboratorId | No | Only tasks this user collaborates on (works on without holding). Special value: 'me' (the caller). | |
| includeSubtasks | No | Accepted for compatibility and has no effect: subtasks at every depth are always included unless parentId is set. | |
| assignedToAgentPersona | No | When true, only return tasks whose assignee is an agent persona ("what are the agents working on"). |