The Todoist MCP connector routes your AI agent's tool calls to Todoist's own MCP server through Scalekit. Each user signs in to Todoist once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 47 tools.
- Tools
- 47
- What they doRead · write · destructive
- 23 · 13 · 1123 read13 write11 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Manage tasks: add, update, complete, reopen, reschedule, and assign tasks across projects and sections
- Find tasks: search tasks by text, date range, label, assignee, or saved filter, including completed ones
- Organize projects: create, update, archive, move, and reorder projects and their sections
- Work with comments and reminders: add and update comments on tasks or projects and set time or location reminders
- Manage labels and filters: create, update, and list personal labels and saved filter views
- Track progress: review project health, completion trends, activity logs, and personal productivity stats
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Todoist MCP connection
In AgentKit > Connections, create a Todoist MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Todoist MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'todoistmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Todoist MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'todoistmcp_find-activity',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "todoistmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Todoist MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="todoistmcp_find-activity",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltodoistmcp_export-project-templateExport an existing project as a Todoist template, either as CSV content or as a shareable URL.Read-onlyExport Project Template
Export an existing project as a Todoist template, either as CSV content or as a shareable URL. Use it to duplicate a project, share its structure, or hand the CSV to import-project-template. To read a project rather than export it, use find-tasks instead - it returns structured tasks rather than raw CSV. Nothing is modified.
Inputs
projectIdstringrequired- The ID of the project to export as a template.
formatstring- How to return the template. "file" returns the CSV content, which can be passed straight back to import-project-template. "url" returns a shareable download link instead, and is the better choice for large projects because it does not return the whole file.one of
fileurldefaultfile useRelativeDatesboolean- Export due dates relative to the import date (e.g. "day 3") instead of absolute dates. Defaults to false.
todoistmcp_fetchFetch the full contents of a task or project by its ID.Read-onlyFetch
Fetch the full contents of a task or project by its ID. The ID should be in the format "task:{id}" or "project:{id}".
Inputs
idstringrequired- A unique identifier for the document in the format "task:{id}" or "project:{id}".
todoistmcp_fetch-objectFetch a single task, project, comment, or section by its ID.Read-onlyFetch Object
Fetch a single task, project, comment, or section by its ID. Use this when you have a specific object ID and want to retrieve its full details. Set includeChildren to also get its direct subtasks or sub-projects.
Inputs
idstringrequired- The unique ID of the object to fetch.
typestringrequired- The type of object to fetch.one of
taskprojectcommentsection includeChildrenboolean- Also return the direct children of the object: subtasks for a task, sub-projects for a project. Returns childCount plus a compact list, flagging each child that has children of its own. Use this to check whether a task hides subtasks instead of a speculative find-tasks lookup. Ignored for comments and sections.
todoistmcp_find-activityRetrieve activity logs to monitor and audit changes in Todoist.Read-onlyFind Activity
Retrieve activity logs to monitor and audit changes in Todoist. Shows events from all users by default (use initiatorId to filter by specific user). To answer what someone completed in a period, use objectType "task", eventType "completed", and dateFrom/dateTo. Track task completions, updates, deletions, project changes, and more with flexible filtering. Activity history availability and retention depend on the user plan.
Inputs
cursorstring- Pagination cursor for retrieving the next page of results.
dateFromstring- Inclusive start of the activity range, as an ISO 8601 date or date-time. For all events on one local calendar day, use that day's start, for example "2026-08-02T00:00:00-04:00". Natural-language dates such as "tomorrow" are not supported.
dateTostring- Exclusive end of the activity range, as an ISO 8601 date or date-time. For all events on 2026-08-02, use "2026-08-03T00:00:00-04:00". Natural-language dates such as "tomorrow" are not supported.
eventTypestring- Type of event to filter by.one of
addedupdateddeletedcompleteduncompletedarchivedunarchivedsharedleftmoved initiatorIdstring- Filter by the user ID who initiated the event. A first-person question ("what did I complete") needs this: without it the results cover every collaborator. Get the ID from user-info when you do not already have it.
limitinteger- Maximum number of activity events to return.default
20 objectIdstring- Filter by specific object ID (task, project, or comment).
objectTypestring- Type of object to filter by.one of
taskcommentproject projectIdstring- Filter events by parent project ID.
taskIdstring- Filter events by parent task ID (for subtask events).
todoistmcp_find-commentsFind comments by task, project, or get a specific comment by ID.Read-onlyFind Comments
Find comments by task, project, or get a specific comment by ID. Exactly one of taskId, projectId, or commentId must be provided.
Inputs
commentIdstring- The ID of the comment. Get it from find-comments.
cursorstring- Pagination cursor from the previous response to fetch the next page.
limitinteger- Maximum number of items to return per page.
projectIdstring- The ID of the project. Get it from find-projects.
taskIdstring- The ID of the task. Get it from find-tasks.
todoistmcp_find-completed-tasksGet completed tasks.Read-onlyFind Completed Tasks
Get completed tasks. since/until are optional and default to a 7-day window when omitted. Includes all collaborators by default. Person-specific queries (summaries, plans, reports) require responsibleUser.
Inputs
cursorstring- The cursor to get the next page of tasks (cursor is obtained from the previous call to this tool, with the same parameters).
getBystring- The method to use to get the tasks: "completion" to get tasks by completion date (ie, when the task was actually completed), "due" to get tasks by due date (ie, when the task was due to be completed by).one of
completionduedefaultcompletion labelsarray- The labels to filter the tasks by
labelsOperatorstring- The operator to use when filtering by labels. This will dictate whether a task has all labels, or some of them. Default is "or".one of
andor limitinteger- The maximum number of tasks to return.default
50 parentIdstring- The ID of the parent task to get the tasks for.
projectIdstring- The ID of the project to get the tasks for. Project ID should be an ID string, or the text "inbox", for inbox tasks.
responsibleUserstring- Filter completed tasks assigned to this user. User ID, name, or email. For personal queries (summaries, plans, reports), set to current user from user-info to exclude collaborators. Defaults to all collaborators.
sectionIdstring- The ID of the section to get the tasks for.
sincestring- Optional start date for completed tasks. Format: YYYY-MM-DD. Defaults to 6 days before until (or today if until is omitted), resulting in a 7-day window.
untilstring- Optional end date for completed tasks. Format: YYYY-MM-DD. Defaults to 6 days after since (or today if since is omitted), resulting in a 7-day window.
workspaceIdstring- The ID of the workspace to get the tasks for.
todoistmcp_find-filtersList all personal filters or search for filters by name.Read-onlyFind Filters
List all personal filters or search for filters by name. Filters are saved custom views that use query syntax to organize tasks (e.g. "today & p1", "#Work & overdue").
Inputs
searchstring- Filter by name (partial, case-insensitive match). Returns all if omitted.
todoistmcp_find-labelsList personal labels and shared labels.Read-onlyFind Labels
List personal labels and shared labels. Personal labels have full metadata (id, name, color, order, isFavorite) and support pagination and name search (partial, case insensitive). Shared labels are labels used on tasks shared with you — they are returned as names only (no IDs or metadata). When searching, all matching personal labels are fetched across all pages and returned as a single result set (limit and cursor are ignored). When not searching, personal labels are returned with pagination.
Inputs
cursorstring- Pagination cursor from the previous response to fetch the next page.
limitinteger- Maximum number of items to return per page.default
50 searchTextstring- Text to search for across names and content.
todoistmcp_find-project-collaboratorsFind Todoist users (collaborators, teammates) by name or email to look up their user ID.Read-onlyFind Project Collaborators
Find Todoist users (collaborators, teammates) by name or email to look up their user ID. Use this whenever the user asks to find, look up, or identify a person — e.g. "find Carrie's user ID", "who is Ernesto", "look up a user". When projectId is omitted, searches across the collaborators of every shared project the authenticated user has access to, plus the authenticated user themselves — an empty result means the person is not a collaborator on any project you share with them, not necessarily that they do not exist in Todoist. When projectId is provided, searches only that project. Partial, case-insensitive match on name and email.
Inputs
projectIdstring- The ID of the project. Get it from find-projects.
searchTermstring- Filter by name or email (partial, case-insensitive). Returns all users if omitted.
todoistmcp_find-projectsList all projects or search for projects by name.Read-onlyFind Projects
List all projects or search for projects by name. By default only active projects are returned; use archivedStatus ('archived' or 'all') to include archived projects. When searching or when archivedStatus is 'all', all matching projects are returned (pagination is ignored). Otherwise projects are returned with pagination.
Inputs
archivedStatusstring- Which projects to return by archive status: 'active' (default, non-archived only), 'archived' (archived only), or 'all' (both active and archived). Each project includes an isArchived field. Archived projects can be deleted via the delete-object tool (type: 'project').one of
activearchivedall cursorstring- The cursor to get the next page of projects (cursor is obtained from the previous call to this tool, with the same parameters).
limitinteger- The maximum number of projects to return.default
50 searchTextstring- Search for a project by name (partial and case insensitive match). Supports wildcards (e.g. "work*" for prefix match). Use "\*" for a literal asterisk. If omitted, all projects are returned.
todoistmcp_find-remindersFind reminders by task ID (returns all reminder types), or get a specific reminder by its ID.Read-onlyFind Reminders
Find reminders by task ID (returns all reminder types), or get a specific reminder by its ID. Use reminderId for time-based reminders and locationReminderId for location reminders.
Inputs
locationReminderIdstring- Get a specific location reminder by its ID.
reminderIdstring- Get a specific time-based reminder (relative or absolute) by its ID.
taskIdstring- The ID of the task. Get it from find-tasks.
todoistmcp_find-sectionsSearch for sections by name or other criteria in a project.Read-onlyFind Sections
Search for sections by name or other criteria in a project. When searching, uses server-side search to avoid fetching all sections.
Inputs
projectIdstringrequired- The ID of the project to search sections in. Project ID should be an ID string, or the text "inbox", for inbox tasks.
searchTextstring- Search for a section by name (partial and case insensitive match). Supports wildcards (e.g. "work*" for prefix match). Use "\*" for a literal asterisk. If omitted, all sections in the project are returned.
todoistmcp_find-tasksFind tasks by text search, project/section/parent container, responsible user, labels, a raw Todoist filter string, or a saved filter by ID or name (filterIdOrName).Read-onlyFind Tasks
Find tasks by text search, project/section/parent container, responsible user, labels, a raw Todoist filter string, or a saved filter by ID or name (filterIdOrName). At least one filter must be provided.
Inputs
cursorstring- The cursor to get the next page of tasks (cursor is obtained from the previous call to this tool, with the same parameters).
filterstring- A raw Todoist filter query string (e.g. "today", "p1", "##Work", "(today | overdue) & p1"). Combined with other filters using AND. Cannot be used with projectId, sectionId, parentId, or filterIdOrName.
filterIdOrNamestring- The ID or name of a saved Todoist filter. The filter's query will be fetched and used to find tasks. Cannot be used with the `filter` parameter, projectId, sectionId, or parentId.
labelsarray- The labels to filter the tasks by
labelsOperatorstring- The operator to use when filtering by labels. This will dictate whether a task has all labels, or some of them. Default is "or".one of
andor limitinteger- The maximum number of tasks to return.default
10 parentIdstring- Find subtasks of this parent task.
projectIdstring- Find tasks in this project. Project ID should be an ID string, or the text "inbox", for inbox tasks.
responsibleUserstring- Find tasks assigned to this user. Can be a user ID, name, or email address. The current user also includes unassigned tasks.
responsibleUserFilteringstring- How to filter by responsible user when responsibleUser is not provided. "assigned" = only tasks assigned to others; "unassignedOrMe" = only unassigned tasks or tasks assigned to me; "all" = all tasks regardless of assignment. Default value will be `unassignedOrMe`.one of
assignedunassignedOrMeall searchTextstring- The text to search for in tasks.
sectionIdstring- Find tasks in this section.
todoistmcp_find-tasks-by-dateGet tasks by date range.Read-onlyFind Tasks By Date
Get tasks by date range. startDate='today' includes overdue items. Default responsibleUserFiltering='unassignedOrMe' excludes others' tasks. Person-specific queries (summaries, plans, reports) require responsibleUser.
Inputs
cursorstring- The cursor to get the next page of tasks (cursor is obtained from the previous call to this tool, with the same parameters).
daysCountinteger- The number of days to get the tasks for, starting from the start date. Default is 1 which means only tasks for the start date.default
1 labelsarray- The labels to filter the tasks by
labelsOperatorstring- The operator to use when filtering by labels. This will dictate whether a task has all labels, or some of them. Default is "or".one of
andor limitinteger- The maximum number of tasks to return. Default is 10.default
10 overdueOptionstring- How to handle overdue tasks. 'overdue-only' to get only overdue tasks, 'include-overdue' to include overdue tasks along with tasks for the specified date(s), and 'exclude-overdue' to exclude overdue tasks. Default is 'include-overdue'.one of
overdue-onlyinclude-overdueexclude-overdue responsibleUserstring- Filter tasks assigned to this user. User ID, name, or email. The current user also includes unassigned tasks.
responsibleUserFilteringstring- Filter when responsibleUser is omitted. 'assigned'=assigned to others; 'unassignedOrMe'=unassigned+mine; 'all'=everyone. Default: 'unassignedOrMe'.one of
assignedunassignedOrMeall startDatestring- The start date to get the tasks for. Format: YYYY-MM-DD, or 'today', which by default also includes overdue tasks.
todoistmcp_get-overviewGet a Markdown overview.Read-onlyGet Overview
Get a Markdown overview. If no projectId is provided, shows all projects with hierarchy and sections (useful for navigation). If projectId is provided, shows detailed overview of that specific project including all tasks grouped by sections.
Inputs
projectIdstring- The ID of the project. Get it from find-projects.
todoistmcp_get-productivity-statsGet comprehensive productivity statistics including daily/weekly completion breakdowns, goal streaks (current, last, max), karma score and trends, and historical karma data.Read-onlyGet Productivity Stats
Get comprehensive productivity statistics including daily/weekly completion breakdowns, goal streaks (current, last, max), karma score and trends, and historical karma data. Useful for productivity analysis and tracking goal progress.
Inputs
This tool takes no inputs.
todoistmcp_get-project-activity-statsGet daily and optional weekly task completion counts for a project over a configurable time window (1-12 weeks).Read-onlyGet Project Activity Stats
Get daily and optional weekly task completion counts for a project over a configurable time window (1-12 weeks). Useful for identifying completion trends and patterns.
Inputs
projectIdstringrequired- The ID of the project to get activity stats for.
includeWeeklyCountsboolean- Include weekly rollup counts alongside daily counts.
weeksinteger- Number of weeks of activity data to retrieve (1-12, default 2).
todoistmcp_get-project-healthGet a comprehensive health assessment for a project including completion progress, health status (EXCELLENT, ON_TRACK, AT_RISK, CRITICAL), and optional detailed context with project metrics and task-level recommendations.Read-onlyGet Project Health
Get a comprehensive health assessment for a project including completion progress, health status (EXCELLENT, ON_TRACK, AT_RISK, CRITICAL), and optional detailed context with project metrics and task-level recommendations. Use includeContext=true for full detail including task data.
Inputs
projectIdstringrequired- The ID of the project to check health for.
includeContextboolean- Include detailed health context with project metrics and task-level data. May produce large output for projects with many tasks.default
false
todoistmcp_get-workspace-insightsGet aggregated health and progress insights across all projects in a workspace.Read-onlyGet Workspace Insights
Get aggregated health and progress insights across all projects in a workspace. Accepts workspace name or ID, with optional project ID filtering. Useful for a cross-project health overview.
Inputs
workspaceIdOrNamestringrequired- The workspace ID or name. Supports exact ID, exact name match (case-insensitive), or unique partial name match.
projectIdsarray- Optional list of project IDs to scope insights to specific projects.
todoistmcp_list-workspacesGet all workspaces for the authenticated user.Read-onlyList Workspaces
Get all workspaces for the authenticated user. Returns workspace details including ID, name, plan type (STARTER/BUSINESS), user role (ADMIN/MEMBER/GUEST), link sharing settings, guest permissions, creation date, and creator ID.
Inputs
This tool takes no inputs.
todoistmcp_searchSearch across tasks and projects in Todoist.Read-onlySearch
Search across tasks and projects in Todoist. Returns a list of relevant results with IDs, titles, and URLs.
Inputs
querystringrequired- The search query string to find tasks and projects.
todoistmcp_user-infoGet comprehensive user information including user ID, full name, email, timezone with current local time, week start day preferences, current week dates, daily/weekly goal progress, and user plan (Free/Pro/Business).Read-onlyUser Info
Get comprehensive user information including user ID, full name, email, timezone with current local time, week start day preferences, current week dates, daily/weekly goal progress, and user plan (Free/Pro/Business).
Inputs
This tool takes no inputs.
todoistmcp_view-attachmentView a file attachment from a Todoist comment.Read-onlyView Attachment
View a file attachment from a Todoist comment. Pass the fileUrl from a comment's fileAttachment field. Supports images (returned inline), text files (returned as text), and binary files like PDFs (returned as embedded resources).
Inputs
fileUrlstringrequired- URL of the attachment to view. Get this from the fileUrl field in a comment's fileAttachment.
todoistmcp_add-commentsAdd multiple comments to tasks or projects, optionally notifying collaborators.WriteAdd Comments
Add multiple comments to tasks or projects, optionally notifying collaborators. Each comment must specify either taskId or projectId.
Inputs
commentsarrayrequired- The array of comments to add.
todoistmcp_add-filtersAdd one or more new personal filters.WriteAdd Filters
Add one or more new personal filters. Filters are saved custom views using query syntax to organize tasks.
Inputs
filtersarrayrequired- The array of filters to add.
todoistmcp_add-labelsAdd one or more new personal labels.WriteAdd Labels
Add one or more new personal labels.
Inputs
labelsarrayrequired- The array of labels to add.
todoistmcp_add-projectsAdd one or more new projects.WriteAdd Projects
Add one or more new projects.
Inputs
projectsarrayrequired- The array of projects to add.
todoistmcp_add-remindersAdd reminders to tasks.WriteAdd Reminders
Add reminders to tasks. Supports three types: "relative" (minutes before due), "absolute" (specific date/time), or "location" (geofence-triggered). Each reminder must specify a taskId.
Inputs
remindersarrayrequired- Array of reminders to create (max 25). Each reminder must specify a type: "relative" (minutes before due), "absolute" (specific date/time), or "location" (geofence trigger).
todoistmcp_add-sectionsAdd one or more new sections to projects.WriteAdd Sections
Add one or more new sections to projects.
Inputs
sectionsarrayrequired- The array of sections to add.
todoistmcp_add-tasksAdd one or more tasks to a project, section, or parent.WriteAdd Tasks
Add one or more tasks to a project, section, or parent. Supports assignment to project collaborators.
Inputs
tasksarrayrequired- The array of tasks to add (max 25).
todoistmcp_analyze-project-healthTrigger a new health analysis for a project.WriteAnalyze Project Health
Trigger a new health analysis for a project. Use this when the health data is stale or you want a fresh assessment. The analysis may take time to complete — use get-project-health afterward to see updated results.
- Idempotent
Inputs
projectIdstringrequired- The ID of the project to analyze. This triggers a new health analysis which may take some time to complete.
todoistmcp_import-project-templateImport a template into an existing project, adding its tasks, sections and comments to whatever is already there.WriteImport Project Template
Import a template into an existing project, adding its tasks, sections and comments to whatever is already there. Source it by template ID/URL or by passing CSV content from export-project-template. To start a new project from a template, create the project with add-projects first, then import into it. This writes immediately and cannot be undone, so only run it against a project the user named.
Inputs
projectIdstringrequired- The ID of the existing project to import the template into.
csvFileContentstring- Raw CSV template content, as produced by export-project-template. Provide either this or `templateId`, not both.
localestring- Locale for the imported content when using `templateId`. Defaults to "en".
templateIdstring- The template to import â either a gallery slug ("product-launch"), a personal template ID ("UT_28Ex..."), or a full Todoist template URL, which is reduced to the ID automatically. Gallery templates work for anyone; personal templates only for the account that owns them. There is no way to list templates through this server, so only use the ID or URL the user supplied. Provide either this or `csvFileContent`, not both.
todoistmcp_project-managementArchive or unarchive a project by its ID.WriteProject Management
Archive or unarchive a project by its ID.
- Idempotent
Inputs
actionstringrequired- The action to perform on the project.one of
archiveunarchive projectIdstringrequired- The ID of the project.
todoistmcp_project-moveMove a project between personal and workspace contexts.WriteProject Move
Move a project between personal and workspace contexts.
- Idempotent
Inputs
actionstringrequired- The action to perform on the project.one of
move-to-workspacemove-to-personal projectIdstringrequired- The ID of the project to move.
folderIdstring- Optional target folder ID within the workspace.
visibilitystring- Optional access visibility for the project in the workspace (restricted, team, or public).one of
restrictedteampublic workspaceIdstring- The target workspace ID. Required when action is move-to-workspace.
todoistmcp_reorder-objectsReorder sibling projects or sections, and optionally move projects to a new parent.WriteReorder Objects
Reorder sibling projects or sections, and optionally move projects to a new parent. For projects: set order to reorder siblings, and/or set parentId to move under a new parent (use "root" for top level). For sections: set order to reorder within a project.
- Idempotent
Inputs
itemsarrayrequired- The items to reorder or move. Each item must have at least order or parentId. Items with parentId will be moved first, then items with order will be reordered. All items being reordered should be siblings for predictable results.
typestringrequired- The type of entity to reorder. "project" reorders sibling projects within the same parent (and can move projects to a new parent). "section" reorders sections within the same project.one of
projectsection
todoistmcp_uncomplete-tasksUncomplete (reopen) one or more completed tasks by their IDs.WriteUncomplete Tasks
Uncomplete (reopen) one or more completed tasks by their IDs.
Inputs
idsarrayrequired- The IDs of the tasks to uncomplete.
todoistmcp_complete-tasksComplete one or more tasks by their IDs.DestructiveComplete Tasks
Complete one or more tasks by their IDs.
Inputs
idsarrayrequired- The IDs of the tasks to complete.
todoistmcp_delete-objectDelete a project, section, task, comment, label, filter, reminder, or location_reminder by its ID.DestructiveDelete Object
Delete a project, section, task, comment, label, filter, reminder, or location_reminder by its ID. Projects can be deleted whether active or archived; note a workspace project must be archived before it can be deleted, while personal projects can be deleted regardless.
- Idempotent
Inputs
idstringrequired- The ID of the entity to delete.
typestringrequired- The type of entity to delete.one of
projectsectiontaskcommentlabelfilterreminderlocation_reminder
todoistmcp_manage-assignmentsBulk assignment operations for multiple tasks.DestructiveManage Assignments
Bulk assignment operations for multiple tasks. Supports assign, unassign, and reassign operations with atomic rollback on failures.
Inputs
operationstringrequired- The assignment operation to perform.one of
assignunassignreassign taskIdsarrayrequired- The IDs of the tasks to operate on (max 50).
dryRunboolean- If true, validates operations without executing them.default
false fromAssigneeUserstring- For reassign operations: the current assignee to reassign from. Can be user ID, name, or email. Optional - if not provided, reassigns from any current assignee.
responsibleUserstring- The user to assign tasks to. Can be "me" (assigns to current user), a user ID, name, or email. Required for assign and reassign operations.
todoistmcp_reschedule-tasksReschedule tasks to new dates while preserving recurring schedules.DestructiveReschedule Tasks
Reschedule tasks to new dates while preserving recurring schedules. Unlike update-tasks (which replaces the entire due string and can wipe recurrence), this tool changes only the date, keeping recurrence patterns intact. Use this when moving recurring tasks to a different date without altering their repeat pattern.
Inputs
tasksarrayrequired- The tasks to reschedule with their new dates.
todoistmcp_update-commentsUpdate multiple existing comments with new content.DestructiveUpdate Comments
Update multiple existing comments with new content.
Inputs
commentsarrayrequired- The comments to update.
todoistmcp_update-filtersUpdate one or more existing personal filters with new values.DestructiveUpdate Filters
Update one or more existing personal filters with new values.
Inputs
filtersarrayrequired- The filters to update.
todoistmcp_update-labelsUpdate one or more existing labels.DestructiveUpdate Labels
Update one or more existing labels. Personal labels (identified by ID) can have their name, color, order, and favorite flag updated. Shared labels (identified by name) can only be renamed.
Inputs
labelsarrayrequired- The labels to update. Use labelType="personal" with an ID to update a personal label, or labelType="shared" with name+newName to rename a shared label.
todoistmcp_update-projectsUpdate multiple existing projects with new values.DestructiveUpdate Projects
Update multiple existing projects with new values.
Inputs
projectsarrayrequired- The projects to update.
todoistmcp_update-remindersUpdate existing reminders.DestructiveUpdate Reminders
Update existing reminders. Each reminder must specify its type ("relative", "absolute", or "location") and ID. Only include fields that need to change.
- Idempotent
Inputs
remindersarrayrequired- Array of reminders to update (max 25). Each must include the reminder type and ID. Only include fields that need to change.
todoistmcp_update-sectionsUpdate multiple existing sections with new values.DestructiveUpdate Sections
Update multiple existing sections with new values.
Inputs
sectionsarrayrequired- The sections to update.
todoistmcp_update-tasksUpdate existing tasks including content, dates, priorities, and assignments.DestructiveUpdate Tasks
Update existing tasks including content, dates, priorities, and assignments.
Inputs
tasksarrayrequired- The tasks to update (max 25).
No tools match.