Overview
Full-featured task management built on prior art from Todoist, Things, Linear, and CalDAV VTODO. Tasks live in projects, support unlimited subtask nesting, dependencies between tasks, recurrence via iCalendar RRULE, and full-text search. Projects provide structure: custom status workflows, sections for grouping, milestones for tracking progress, and team members with roles.Data Model
Entities
| Entity | Description |
|---|---|
| Project | A container for tasks with custom status workflows |
| Project Status | A custom status within a project (e.g., “Backlog”, “In Progress”, “Done”) |
| Project Section | A grouping within a project for organizing tasks |
| Project Milestone | A target date within a project |
| Project Member | A user/contact assigned to a project with a role |
| Task | A unit of work with title, description, priority, due date |
| Task Dependency | A relationship between tasks (blocks, blocked_by, related, duplicate) |
| Task Link | A URL attached to a task (external resource, document, etc.) |
| Task Comment | A comment or progress note on a task |
| Task Label | A label for categorizing tasks |
Relationships
- A Project has many Tasks, Statuses, Sections, Milestones, and Members
- A Task optionally belongs to a Project, Section, and has a Status
- A Task can have a parent_id for subtask nesting (unlimited depth)
- Dependencies link two tasks with a relationship type
Key Concepts
Task identifiers
Each task in a project gets a human-readable identifier: the project’s prefix + an auto-incrementing number (e.g.,API-42, DOCS-7). Use GET /api/v1/tasks/by-identifier/{identifier} to look up tasks by this identifier.
Priority levels
Tasks have an integerpriority field. Higher values = higher priority. Typical convention:
| Priority | Meaning |
|---|---|
| 4 | Urgent |
| 3 | High |
| 2 | Medium |
| 1 | Low |
| 0 | None |
Subtasks
Any task can be a subtask of another task via theparent_id field. Subtask nesting is unlimited. Use GET /api/v1/tasks/{id}/subtasks to list a task’s direct children.
Dependencies
Four dependency types:| Type | Meaning |
|---|---|
blocks | This task must complete before the target task can start |
blocked_by | This task cannot start until the target task completes |
related | Tasks are related but not blocking |
duplicate | Tasks are duplicates |
Recurrence
Tasks support iCalendar RRULE strings for recurrence:next_occurrence field is computed and indexed for efficient querying.
Custom status workflows
Each project defines its own status workflow. Statuses have aname, color, position (display order), and is_closed flag (indicates the task is done when in this status).
Sections and milestones
Sections group tasks within a project (like columns or categories). Milestones are target dates for tracking project progress.Complete and cancel
UsePOST /api/v1/tasks/{id}/complete to mark a task done (handles recurrence automatically). Use POST /api/v1/tasks/{id}/cancel to cancel a task without completing it.
MCP Tools
| Tool | Description |
|---|---|
tasks_list | List tasks with filters (status, project, priority, due date) |
tasks_get | Get full task details with comments, dependencies, and links |
tasks_create | Create a task or subtask |
tasks_update | Update task properties |
tasks_complete | Mark a task done (handles recurrence) |
tasks_delete | Remove a task |
tasks_add_dependency | Link two tasks with a dependency |
tasks_add_comment | Add a comment to a task |
tasks_search | Free-text search across all tasks |
tasks_list_overdue | Get all overdue tasks |
