# Todoist — MCP server on 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 By: mcp.ai · official Page: https://mcp.ai/todoist ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_todoist?ms=1781542440000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/todoist/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/todoist/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/todoist/skill.md Postman collection (v2.1): https://mcp.ai/todoist/postman.json ## Tools - todoist_add_workspace(icon?: string, name: string, uuid?: string, color?: integer, temp_id?: string) — Tool to create a new workspace in todoist. use when you need a separate workspace to organize projects. generates uuid and temp id automatically. - todoist_close_task(task_id: string) — This tool marks an existing task as completed in todoist. it requires the `task id` of the task to be closed. - todoist_create_comment(content: string, task_id?: string, project_id?: string) — 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. - todoist_create_label(name: string, color?: integer, order?: integer, is_favorite?: boolean) — Creates a new label. - todoist_create_project(name: string, color?: string, favorite?: boolean, parent_id?: string, view_style?: string) — Creates a new project in todoist. - todoist_create_section(name: string, order?: integer, project_id: integer) — Tool to create a new section within a specific project. use when you need to group tasks under a new heading in a project. - todoist_create_task(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) — 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, - todoist_delete_label(label_id: string) — 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". - todoist_delete_project(project_id: string) — Tool to delete a specific todoist project. use when you need to permanently remove a project by its id. - todoist_delete_section(section_id: string) — 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". - todoist_delete_task(task_id: string) — Delete a task from todoist. this action permanently removes the task and all its subtasks. - todoist_get_all_comments(task_id?: string, project_id?: string) — 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 - 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 - 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 - todoist_get_all_sections(project_id: string) — 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. - todoist_get_all_tasks(ids?: integer[], lang?: string, filter?: string) — Fetches all tasks from todoist and returns their details. - todoist_get_backups() — Tool to list all available backup archives for the user. use when you need to retrieve and review all existing backups. - todoist_get_comment(comment_id: string) — 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. - todoist_get_label(id: string) — Tool to retrieve a specific label by its id. use when you need detailed info about a label after you have its id. - todoist_get_project(project_id: string) — Tool to retrieve a specific project by its id. use when you have a project id and need its metadata before display or update. - todoist_get_section(section_id: string) — Tool to retrieve a specific section by its id. use when you have a section id and need its metadata before display or update. - 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. - todoist_get_task(task_id: string) — 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. - todoist_list_archived_workspace_projects(limit?: integer, since?: string, until?: string, offset?: integer, project_ids?: string[]) — Tool to list all archived projects in a workspace. use when you need to retrieve archived workspace projects with optional filters or pagination. - todoist_list_filters(sync_token?: string) — Tool to list all filters for the authenticated user. use when you need to retrieve the current set of custom filters. - todoist_list_pending_workspace_invitations(workspace_id: string) — 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. - todoist_reopen_task(task_id: string) — This tool reopens a previously completed task. - todoist_update_comment(content: string, comment_id: string) — 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. - todoist_update_project(name?: string, color?: integer, order?: integer, indent?: integer, project_id: string) — 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 - todoist_update_section(name?: string, order?: integer, section_id: string) — 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. - todoist_update_task(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) — 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. ## Links Docs: https://mcp.ai/docs/mcps/todoist Website: https://mcp.ai/mcps/todoist