100+ integrations are ready to connect to your AI.Connect your first MCP

Todoist MCP server for your AI

Ask what is due today, add a week of tasks from one message, push what slipped to next week, file tasks into the right project and section, and review what got done, in the Todoist account you already use.

PopMCPTodoist

What is overdue or due today in Todoist? Group it by project and tell me what to do first

Supported Todoist tools

Every operation in the Todoist API, REST and Sync alike, with the everyday task tools loaded by default and the rest, from workspaces and sharing to templates, backups and insights, one search away.

164 tools in the full catalog: 72 read and 92 write. 34 load by default, and the rest are found with tool search.

todoist_archive_project

Marks a project as archived.

todoist_close_task

Complete a task the way the Todoist apps do: a normal task is marked done (with its subtasks); a recurring task moves to its next date instead.

todoist_create_project

Creates a new project and returns it

todoist_create_task

Create a new task.

todoist_delete_task

Delete a task and all of its subtasks.

todoist_filter_tasks

Active tasks matching a Todoist filter query, the same syntax as the apps' filters: today, overdue, tomorrow, 7 days, no date, p1, #Project, ##Project (with sub-projects), /Section, @label, assigned to: me, search: word, combined with & (and), | (or), ! (not) and parentheses.

todoist_get_project

Returns a project object related to the given ID

todoist_get_project_full

A project with everything in it in one call: the project, its sections, its active tasks, its collaborators and its comment count.

todoist_get_task

Returns a single active (non-completed) task by ID

todoist_list_completed_tasks

Completed tasks whose completion time falls between since and until (at most 3 months apart), newest first, optionally only in one project, section, parent task or workspace, or matching filter_query.

todoist_list_project_collaborators

Get all collaborators for a given project.

todoist_list_projects

Get all active user projects, optionally filtered by folder or workspace.

todoist_list_tasks

Get all active tasks for the user.

todoist_move_task

Moves task to another project, section or parent.

todoist_quick_add_task

Add a task from one line of natural language, parsed exactly like the Todoist apps' Quick Add: dates (today, tomorrow at 5pm, every monday), #Project, /Section, @label, p1 to p4, +assignee, {deadline} and // description.

todoist_reopen_task

Reopens a task.

todoist_search_completed_tasks

Full-text search over the user's completed tasks.

todoist_update_project

Updates a project and returns it.

todoist_update_task

Updates an existing task.

todoist_create_reminder

Create a new reminder for a task.

todoist_create_label

Create a personal label.

todoist_create_section

Create a new section

todoist_get_productivity_stats

Get comprehensive productivity statistics for the authenticated user.

todoist_get_user

Get information about the currently authenticated user.

todoist_list_labels

Get all user labels.

todoist_list_sections

Get all active sections for the user, optionally filtered by project or workspace.

todoist_list_filters

The user's saved personal filters: id, name, query (Todoist filter syntax), color, order and whether each is a favorite.

todoist_create_comment

Creates a new comment on a project or task and returns it.

todoist_list_comments

Get all comments for a given task or project.

todoist_add_tasks

Add up to 50 tasks in one call (one Todoist request): each with its own content, project, section, parent, due date in words (due_string: "tomorrow at 5pm"), deadline, priority ("p1" most urgent) and labels.

todoist_complete_tasks

Complete up to 100 tasks in one call (one Todoist request), the way the apps do: a normal task is marked done with its subtasks, a recurring task moves to its next date.

todoist_get_overview

What is on the user's plate now: overdue tasks and today's tasks (Todoist's own today | overdue filter), grouped by project with project names, plus how many active projects there are.

todoist_sync_commands

Run up to 100 Sync commands in one request, in order: for example create a project and add tasks to it in one go, using temp_id to refer to the new project.

todoist_list_activities

Get activity logs.

todoist_accept_workspace_invitation

Accept a workspace invitation.

todoist_create_workspace

Creates a new workspace and returns it.

todoist_delete_workspace

Deletes a workspace.

todoist_delete_workspace_invitation

Deletes a workspace invitation.

todoist_get_workspace

Returns a workspace by ID.

todoist_get_workspace_members_activity

Each workspace member with their task activity (active, completed and overdue counts).

todoist_get_workspace_plan_details

Lists details of the workspace's current plan and usage

todoist_invite_workspace_users

Invites users to a workspace by email.

todoist_join_workspace

Join a workspace via link or via workspace ID, if the user can auto-join the workspace by domain.

todoist_leave_workspace

Leave a workspace.

todoist_list_all_workspace_invitations

Return a list containing details of all pending invitation to a workspace.

todoist_list_workspace_active_projects

Returns all active workspace projects, including those visible but not joined by the user.

todoist_list_workspace_archived_projects

Return archived projects in a workspace.

todoist_list_workspace_invitations

Return a list of user emails who have a pending invitation to a workspace.

todoist_list_workspace_user_tasks

The tasks assigned to one member of a workspace.

todoist_list_workspace_users

Returns all workspace_users for a given workspace if workspace_id is provided.

todoist_list_workspaces

Returns all workspaces where the user is a member.

todoist_reject_workspace_invitation

Reject a workspace invitation.

todoist_remove_workspace_user

Removes an user from a workspace.

todoist_resend_workspace_invitation

Resend a Workspace Invitation.

todoist_update_workspace

Updates an existing workspace and returns it.

todoist_update_workspace_logo

Set a workspace's logo image, or remove it with delete true.

todoist_update_workspace_sidebar_preference

Update user sidebar preference.

todoist_update_workspace_user_role

Updates a workspace user's role.

todoist_complete_recurring_task

Complete a recurring task.

todoist_complete_task_fully

Complete task.

todoist_count_archived_projects

How many archived projects the user has, optionally only in one workspace or only the ones the user joined.

todoist_delete_project

Deletes a project and all of its sections and tasks.

todoist_get_completed_counts

How many completed tasks each active project, section and parent task holds (and archived sections per project).

todoist_get_project_permissions

Returns a list of all the available roles and the associated actions they can perform in a project.

todoist_join_project

_Only used for workspaces_ This endpoint is used to join a workspace project by a workspace_user and is only usable by the workspace user.

todoist_leave_project

Leave a project.

todoist_list_archived_projects

Get the user's archived projects.

todoist_list_completed_tasks_by_due_date

Completed tasks whose DUE date falls between since and until (at most 6 weeks apart), optionally only in one project, section, parent task or workspace, or matching filter_query.

todoist_move_project

Move a project.

todoist_search_projects

Search active user projects by name.

todoist_unarchive_project

Marks a previously archived project as active again.

todoist_clear_reminder_locations

Clear locations.

todoist_create_location_reminder

Create a new location reminder for a task.

todoist_delete_location_reminder

Delete a location reminder by ID.

todoist_delete_reminder

Delete a reminder by ID.

todoist_get_location_reminder

Return a single location reminder by ID.

todoist_get_reminder

Return a single reminder by ID.

todoist_list_location_reminders

Get all active location reminders.

todoist_list_reminder_locations

The saved places location reminders can use (name, latitude, longitude).

todoist_list_reminders

Get all active reminders.

todoist_update_location_reminder

Update an existing location reminder.

todoist_update_reminder

Update an existing reminder.

todoist_archive_section

Marks a section as archived.

todoist_delete_label

Deletes a personal label.

todoist_delete_section

Delete the section and all of its tasks

todoist_get_label

Return a personal label by ID.

todoist_get_notification_settings

Which notification types the user gets by email and push.

todoist_get_section

Return the section for the given section ID

todoist_get_user_plan_limits

What the user's plan allows now and on the next plan: max projects, sections, tasks per project, labels, filters, collaborators, upload size, reminders, comments, activity log and more.

todoist_get_user_settings

The user's reminder and completion-sound settings.

todoist_list_shared_labels

Returns a set of unique strings containing shared labels from active tasks.

todoist_move_section

Move a section.

todoist_remove_shared_label

Remove the given shared label from all active tasks

todoist_rename_shared_label

Rename the given shared label from all active tasks

todoist_search_labels

Search user labels by name.

todoist_search_sections

Search active sections by name, optionally filtered by project or workspace.

todoist_unarchive_section

Marks a section as active again.

todoist_update_karma_goals

Update karma goals.

todoist_update_label

Update a personal label.

todoist_update_notification_setting

Update a notification delivery preference.

todoist_update_section

Update a section.

todoist_update_user

Update user's properties.

todoist_update_user_settings

Update user settings.

todoist_accept_project_invitation

Accept an invitation to join a shared project.

todoist_change_project_collaborator_role

Change project role.

todoist_create_filter

Add a filter.

todoist_create_workspace_filter

Add a workspace filter.

todoist_delete_filter

Delete a personal filter.

todoist_delete_project_invitation

Delete an invitation to join a shared project.

todoist_delete_workspace_filter

Delete a workspace filter.

todoist_get_role_actions

Which actions each project role (creator, admin, read_write, edit_only, complete_only, read_only) may perform.

todoist_list_shared_project_collaborators

Everyone the user shares projects with (id, name, email) and, per project, each collaborator's state (active, invited...) and role.

todoist_list_workspace_filters

Filters shared in the user's workspaces (team filters): id, workspace_id, name, query, color, order.

todoist_reject_project_invitation

Reject an invitation to join a shared project.

todoist_remove_project_collaborator

Delete a collaborator.

todoist_share_project

Share a project with another user.

todoist_update_filter

Update a filter.

todoist_update_workspace_filter

Update a workspace filter.

todoist_add_comment_reaction

Adds the authenticated user's reaction to a task or project comment and returns the updated comment.

todoist_delete_comment

Delete a comment by ID

todoist_delete_view_options

Delete view option.

todoist_get_comment

Returns a single comment by ID

todoist_list_project_view_defaults

Each project's default view (mode, grouping, sorting) that new viewers see.

todoist_list_user_item_orders

The user's own task orderings (for example the Today and Upcoming order): one entry per task with its order_key.

todoist_list_view_options

Saved view customizations (grouping, sorting, filtering, list/board/calendar mode) for Today, Upcoming, projects, labels and filters.

todoist_remove_comment_reaction

Removes the authenticated user's reaction from a task or project comment.

todoist_set_project_view_defaults

Updates the default view options for a project.

todoist_set_view_options

Set a view option.

todoist_update_comment

Update a comment by ID and returns its content

todoist_update_user_item_order

Update an user item order.

todoist_analyze_project_health

Ask Todoist to assess a project's health again now.

todoist_get_project_activity_stats

Daily (and optionally weekly) counts of one kind of event in a project, for example completed tasks over the last weeks.

todoist_get_project_health

Todoist's health assessment of a project (status such as on track or at risk, with the reasons), from the last analysis.

todoist_get_project_health_context

The data a project health assessment is based on: task counts, overdue and recent activity.

todoist_get_project_progress

How far along a project is: completed and active task counts and the share done.

todoist_get_workspace_insights

Progress and health for the projects in a workspace.

todoist_create_folder

Create a new folder in the given workspace.

todoist_create_project_from_template_file

Create a new project from a template file.

todoist_delete_folder

Delete a folder.

todoist_export_project_template_file

A project as a Todoist template CSV (its sections and tasks), returned as text.

todoist_export_project_template_url

A link to download a project as a Todoist template file.

todoist_get_folder

Return the folder for the given folder ID.

todoist_import_template_file_into_project

Import a template file (a Todoist template CSV, for example one from export_project_template_file) into an existing project: its sections and tasks are added.

todoist_import_template_into_project

Import a saved template into an existing project.

todoist_list_folders

Get all folders for a workspace.

todoist_list_notifications

The user's in-app notifications (shares, assignments, comments, completions, invitations...), newest first, with live_notifications_last_read_id: the last one marked read.

todoist_mark_all_notifications_read

Mark all as read.

todoist_mark_notifications_read

Mark as read.

todoist_mark_notifications_unread

Mark as unread.

todoist_set_last_read_notification

Set last known.

todoist_update_folder

Update an existing folder.

todoist_get_subscription_info

Return the current user's subscription state.

todoist_get_usage_billing_state

Read the caller's usage-billing credit state for a product.

todoist_get_usage_billing_summary

Total the caller's settled usage over a window.

todoist_list_usage_billing_history

List the caller's usage-billing ledger entries, newest first.

todoist_delete_upload

Delete an uploaded file.

todoist_disable_forwarding_email

Disable the current email to a Todoist object

todoist_get_backup_download_link

A download link for one backup archive (a zip of the account's data).

todoist_get_id_mappings

Translates IDs from v1 to v2 or vice versa.

todoist_get_moved_ids

New ids for objects that were moved.

todoist_get_or_create_forwarding_email

Get or create an email to a Todoist object, currently only projects and tasks are supported.

todoist_list_backups

The automatic backups Todoist keeps of the account (version and url per backup, newest first).

todoist_sync_read

Read any Todoist data in one call through the Sync endpoint: pass resource_types, for example ["projects", "items", "sections", "labels"], or ["all"].

todoist_upload_file

Upload a file (image, PDF, document, up to the plan's upload_limit_mb) to attach to a comment.

Connect Todoist to Claude, ChatGPT and Claude Code

Credentials off one Todoist screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Todoist open Settings, then Integrations, then the Developer tab, click Copy API token and paste it into PopMCP. It works on every Todoist plan and needs no app or approval. PopMCP checks whose account it is and locks the connection to it.

API token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “What is overdue or due today in Todoist? Group it by project and tell me what to do first”

    • get_overview
  • “Add milk, eggs and coffee beans to my Groceries project, all due tomorrow”

    • list_projects
    • add_tasks
  • “Move everything overdue in my Work project to next Monday”

    • filter_tasks
    • update_task
  • “Mark the three tasks about the launch email as done”

    • filter_tasks
    • complete_tasks
  • “What did I finish last week, and which projects did most of it come from?”

    • list_completed_tasks
    • list_projects
  • “Create a saved filter called Urgent this week for p1 tasks due in the next seven days”

    • create_filter

Use Todoist from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Todoist MCP server questions

What teams ask before putting Todoist behind an AI client.

What does PopMCP need to connect a Todoist account?

Your Todoist API token. In Todoist on the web or desktop, open Settings, then Integrations, then the Developer tab, and click Copy API token. Paste it into PopMCP, which checks whose account it is, stores it encrypted and locks the connection to that account. Tokens work on every plan, Todoist reviews nothing, and the token never reaches your AI client. If you later issue a new token in Todoist, paste the new one.

Will the AI get task priorities right?

Todoist's API counts priority the other way round from its apps: p1, the red and most urgent, is 4 in the API, and p4 is 1. PopMCP accepts p1 to p4 in every tool and converts them, and every tool description says which way round it is, so a request for a p1 task lands as urgent and not as the lowest priority.

Can it add or complete many tasks at once?

Yes. add_tasks adds up to 50 tasks in one call, each with its own project, section, due date in words such as tomorrow at 5pm, priority and labels, and answers with every new id. complete_tasks checks off up to 100 tasks the same way. For bigger or mixed changes, sync_commands runs up to 100 Todoist commands in one request, so a whole plan counts as a single call against Todoist's limits.

Does it work with shared projects and Todoist workspaces?

Yes. The connection is one Todoist user and reaches everything that user can see: their own projects, projects shared with them and their team workspaces. Tools cover sharing a project, collaborators and roles, workspace members and invitations, folders, workspace filters and project health, alongside the everyday task and project tools.

Can I stop the AI from changing my Todoist?

Yes. Every connection starts read-only, which keeps every read, including today's overview, completed tasks, filters and the activity log, and blocks every change. An owner or admin can allow write actions later. Even with writes allowed, PopMCP never changes your Todoist email address or password.

Which Todoist events can start a workflow?

PopMCP watches your Todoist activity log and lists, so a workflow can start when a task is added, completed, updated, reopened or deleted, when a task becomes overdue, when a comment, project or section is added, when a project is archived, or when a Todoist notification arrives. Nothing needs to be set up in Todoist.

Do I have to run or host the Todoist MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Todoist to Claude Code?

Connect Todoist in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Todoist on the consent screen. The Todoist tools are then available in that session, and no Todoist credential is stored on your machine.

Why do only 34 of the 164 tools load by default?

Loading 164 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 34-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 164 here. A trigger is something PopMCP watches for you: 14 Todoist events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Todoist.

Connect Todoist to your AI in minutes

Launch a hosted MCP endpoint for Todoist, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP