close_tasks
Close tasks in Todoist Either 'task_id' or the 'task_name' to identify the target.
Reorganise a Todoist account in batches — tasks, projects, sections, labels and comments all take arrays, and targets can be named instead of looked up.
LABSCO SUMMARY
Nearly every write takes an items array, so moving a dozen tasks into a new section or relabelling a backlog is a single call, and because targets can be given by name, the usual lookup round trip disappears. get_tasks_by_filter carries Todoist's filter language, which is what makes everything overdue with a given label one query rather than a client-side scan. Completed history is the one hard boundary: the range tops out at 3 months.
36 tools over the Todoist API. Create, get, update and delete exist for tasks, projects, sections, labels and comments, each taking an items array, and most accept either an id or a name to identify what they act on.
A Todoist account and its API token, read from API_KEY. Node on your PATH.
One command plus a key — npx -y todoist-mcp, then supply credentials
USE CASES
Query in Todoist's own filter language, then close or reschedule the results in one batch instead of one call each.
Create the sections, move the tasks into them, and reparent the project itself if the shape changed. Every one of those takes a list.
Read the labels that exist, add the ones that do not, and apply them across the tasks in a single update call rather than opening each task.
Completed tasks come back over a since and until window — up to 3 months — and the comments on them supply what the titles left out.
A meeting's worth of actions goes in as one call, with their comments attached, instead of a task at a time.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
close_tasksClose tasks in Todoist Either 'task_id' or the 'task_name' to identify the target.
create_commentsCreate new comments in Todoist
create_labelsCreate a new personal labels in Todoist
create_projectsCreate new projects in Todoist
create_sectionsCreate new sections in Todoist
create_tasksCreate new tasks in Todoist
delete_commentsDelete comments in Todoist
delete_labelsDelete a personal label in Todoist Either 'id' or the 'name' to identify the target.
delete_projectsDelete projects from Todoist Either 'id' or the 'name' to identify the target.
delete_sectionsDelete sections in Todoist Either 'id' or the 'name' to identify the target.
delete_tasksDelete tasks from Todoist Either 'task_id' or the 'task_name' to identify the target.
get_collaboratorsGet all collaborators for a project in Todoist
get_commentsGet comments from Todoist by ID
get_comments_listGet comments list from Todoist
get_completed_tasksGet completed tasks from Todoist with filtering options. Date range limited to 3 months max.
get_labelsGet a personal label from Todoist Either 'id' or the 'name' to identify the target.
get_labels_listGet all personal labels from Todoist
get_projectsGet projects from Todoist Either 'id' or the 'name' to identify the target.
get_projects_listGet all projects from Todoist
get_sectionsGet sections from Todoist Either 'id' or the 'name' to identify the target.
get_sections_listGet sections list from Todoist
get_shared_labelsGet all shared labels from Todoist
get_tasksGet tasks from Todoist Either 'task_id' or the 'task_name' to identify the target.
get_tasks_by_filterGet tasks from Todoist using filter language. Use for queries like "today", "overdue", "P1", date-based filters, label/project filters in query syntax
get_tasks_listGet tasks list from Todoist. For advanced filtering use get_tasks_by_filter tool
move_projectsMove a projects to a different parent in Todoist
move_tasksMove tasks to a different parent or section in Todoist. Exactly one of parent_id, section_id, or project_id must be provided
remove_shared_labelsRemove a shared label in Todoist
rename_shared_labelsRename a shared label in Todoist
reopen_tasksReopen tasks in Todoist Either 'task_id' or the 'task_name' to identify the target.
update_commentsUpdate comments in Todoist
update_labelsUpdate a personal label in Todoist
update_projectsUpdate projects in Todoist Either 'id' or the 'name' to identify the target.
update_sectionsUpdate sections in Todoist
update_tasksUpdate tasks in Todoist Either 'task_id' or the 'task_name' to identify the target.
utils_get_colorsGet available colors for projects, labels, filters in Todoist
BEFORE YOU INSTALL
36 tools when we connected. get_completed_tasks is available but missing from the documented tool list.
CONTEXT COST
Rated by the size of the 36 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y todoist-mcp{
"mcpServers": {
"todoist": {
"command": "npx",
"args": [
"-y",
"todoist-mcp"
],
"env": {
"API_KEY": "<YOUR_API_KEY>"
}
}
}
}claude mcp add --transport stdio --scope project --env API_KEY=token todoist -- npx -y todoist-mcp[mcp_servers.todoist]
command = "npx"
args = ["-y", "todoist-mcp"]
[mcp_servers.todoist.env]
API_KEY = "<YOUR_API_KEY>"gemini mcp add -e API_KEY=token todoist npx -y todoist-mcp