# Todoist — how to use (mcp.ai)

Todoist is a task management tool allowing users to create to-do lists, set deadlines, and collaborate on projects with reminders and cross-platform syncing

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_todoist?ms=1781542320000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `todoist_add_workspace`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/todoist`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/todoist/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/todoist/add/workspace` — Tool to create a new workspace in todoist. use when you need a separate workspace to organize projects. generates uuid and temp id automatically.
  - body: { icon?: string, name: string, uuid?: string, color?: integer, temp_id?: string }
- `POST https://api.mcp.ai/api/todoist/close/task` — This tool marks an existing task as completed in todoist. it requires the `task id` of the task to be closed.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/todoist/create/comment` — Tool to create a new comment in todoist. use when you need to add a note to a specific task or project after confirming its id.
  - body: { content: string, task_id?: string, project_id?: string }
- `POST https://api.mcp.ai/api/todoist/create/label` — Creates a new label.
  - body: { name: string, color?: integer, order?: integer, is_favorite?: boolean }
- `POST https://api.mcp.ai/api/todoist/create/project` — Creates a new project in todoist.
  - body: { name: string, color?: string, favorite?: boolean, parent_id?: string, view_style?: string }
- `POST https://api.mcp.ai/api/todoist/create/section` — Tool to create a new section within a specific project. use when you need to group tasks under a new heading in a project.
  - body: { name: string, order?: integer, project_id: integer }
- `POST https://api.mcp.ai/api/todoist/create/task` — Create a new task in todoist. this action allows users to create tasks with various parameters including content, due dates, priority, and more. the task can be created in a specific project, section,
  - body: { order?: integer, labels?: string[], content: string, due_date?: string, due_lang?: string, duration?: integer, priority?: integer, parent_id?: string, due_string?: string, project_id?: string, section_id?: string, assignee_id?: string, description?: string, due_datetime?: string, duration_unit?: string }
- `POST https://api.mcp.ai/api/todoist/delete/label` — Tool to delete a specific label. use when you need to permanently remove an unused label by its id after confirming it's not in use. example: "delete label with id 2298391482".
  - body: { label_id: string }
- `POST https://api.mcp.ai/api/todoist/delete/project` — Tool to delete a specific todoist project. use when you need to permanently remove a project by its id.
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/todoist/delete/section` — Tool to delete a specific section. use when you need to permanently remove an unused section by its id after confirming it's not in use. example: "delete section with id 82181370".
  - body: { section_id: string }
- `POST https://api.mcp.ai/api/todoist/delete/task` — Delete a task from todoist. this action permanently removes the task and all its subtasks.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/todoist/get/all/comments` — This tool retrieves all comments associated with a specific task or project in todoist. it requires either a task id or a project id to fetch the comments, and it returns a json array of comment objec
  - body: { task_id?: string, project_id?: string }
- `POST https://api.mcp.ai/api/todoist/get/all/labels` — Get all personal labels from todoist. this action retrieves all personal labels from a user's todoist account. each label contains information like name, color, order and favorite status. api document
- `POST https://api.mcp.ai/api/todoist/get/all/projects` — Get all projects from a user's todoist account. this tool retrieves all projects from the authenticated user's todoist account. the response includes details like project id, name, color, parent proje
- `POST https://api.mcp.ai/api/todoist/get/all/sections` — Tool to retrieve all sections for a specific project in todoist. use when you need to list section structure within a project after selecting the project.
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/todoist/get/all/tasks` — Fetches all tasks from todoist and returns their details.
  - body: { ids?: integer[], lang?: string, filter?: string }
- `POST https://api.mcp.ai/api/todoist/get/backups` — Tool to list all available backup archives for the user. use when you need to retrieve and review all existing backups.
- `POST https://api.mcp.ai/api/todoist/get/comment` — Tool to retrieve details of a specific comment by its comment id. use when you need full information (content, timestamp, or attachment) about a known comment.
  - body: { comment_id: string }
- `POST https://api.mcp.ai/api/todoist/get/label` — Tool to retrieve a specific label by its id. use when you need detailed info about a label after you have its id.
  - body: { id: string }
- `POST https://api.mcp.ai/api/todoist/get/project` — Tool to retrieve a specific project by its id. use when you have a project id and need its metadata before display or update.
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/todoist/get/section` — Tool to retrieve a specific section by its id. use when you have a section id and need its metadata before display or update.
  - body: { section_id: string }
- `POST https://api.mcp.ai/api/todoist/get/special/backups` — Tool to list special backup archives for the user. use when you need to retrieve all project backups for the authenticated user after creating or managing projects.
- `POST https://api.mcp.ai/api/todoist/get/task` — Tool to retrieve a specific task by its id. use when you need to fetch all details of an existing task before processing or display.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/todoist/list/archived/workspace/projects` — Tool to list all archived projects in a workspace. use when you need to retrieve archived workspace projects with optional filters or pagination.
  - body: { limit?: integer, since?: string, until?: string, offset?: integer, project_ids?: string[] }
- `POST https://api.mcp.ai/api/todoist/list/filters` — Tool to list all filters for the authenticated user. use when you need to retrieve the current set of custom filters.
  - body: { sync_token?: string }
- `POST https://api.mcp.ai/api/todoist/list/pending/workspace/invitations` — Tool to list pending invitation emails in a workspace. use when you need to check which email invites are still pending acceptance in a workspace.
  - body: { workspace_id: string }
- `POST https://api.mcp.ai/api/todoist/reopen/task` — This tool reopens a previously completed task.
  - body: { task_id: string }
- `POST https://api.mcp.ai/api/todoist/update/comment` — Tool to update a specific comment's content. use when you need to correct or clarify an existing comment after confirming its id and the new text.
  - body: { content: string, comment_id: string }
- `POST https://api.mcp.ai/api/todoist/update/project` — Tool to update a specific project's attributes such as name, color, indent, and order. use when you need to rename or reorder a project after reviewing its current settings. example: "update project 2
  - body: { name?: string, color?: integer, order?: integer, indent?: integer, project_id: string }
- `POST https://api.mcp.ai/api/todoist/update/section` — Tool to update a specific section's attributes such as name and order. use when you need to rename or reorder a section after confirming its id.
  - body: { name?: string, order?: integer, section_id: string }
- `POST https://api.mcp.ai/api/todoist/update/task` — Tool to update an existing task's properties. use when you need to modify a task's details after confirming its id and new values.
  - body: { content?: string, task_id: string, due_date?: string, due_lang?: string, priority?: integer, label_ids?: integer[], due_string?: string, assignee_id?: string, description?: string, due_datetime?: string }

## More
- Page: https://mcp.ai/todoist
- Agent spec (llms.txt): https://mcp.ai/todoist/llms.txt
- Postman collection: https://mcp.ai/todoist/postman.json
