Doist/todoist-mcp
todoist-mcp is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
If you are the rightful owner of todoist-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Connect this Model Context Protocol server to your LLM to interact with Todoist.
Try todoist-mcp with chat:
Tools
Functions exposed to the LLM to take actions
add-project
Add a project to Todoist
get-projects
Get all projects from Todoist
get-project
Get a project from Todoist
update-project
Update a project in Todoist
delete-project
Delete a project in Todoist
get-project-collaborators
Get all collaborators from a project in Todoist
add-task
Add a task to Todoist
quick-add-task
Quickly add a task using natural language
get-task
Retrieves a task by its ID in Todoist
get-tasks
Get all tasks from Todoist
get-tasks-completed-by-completion-date
Get tasks completed within a specific date range
get-tasks-completed-by-due-date
Get tasks completed that were due within a specific date range
get-productivity-stats
Get productivity statistics for completed tasks
update-task
Update a task in Todoist
close-task
Close (complete) a task in Todoist
move-tasks
Move multiple tasks to a project, section, or parent task
delete-task
Delete a task from a project in Todoist
reopen-task
Reopens a previously closed (completed) task in Todoist
get-tasks-by-filter
Get all tasks from Todoist using a filter.
Filters are custom views for your tasks based on specific criteria. You can narrow down your lists according to task name, date, project, label, priority, date created, and more.
There are a range of symbols you can use to filter the tasks. For example, 'today' will get all tasks due today.
Here’s a rundown of some of the more advanced filters you can use in Todoist:
In order to create filters based on keywords, you can use search
: followed by a keyword.
- See all tasks that contain the word "Meeting", use this: "search: Meeting"
- See all tasks that contain the word "Meeting" that are due today, use this: "search: Meeting & today"
- See all tasks that contain either the word "Meeting" or "Work", use this: "search: Meeting | search: Work"
- See all tasks that contain the word "email", use this: "search: email"
- See all tasks that contain web links, use this: "search: http"
Create a filter to either see or exclude sub-tasks in the view:
- See all sub-tasks, use this: "subtask"
- See all parent tasks while excluding their sub-tasks, use this: "!subtask"
See all tasks scheduled for a specific date:
- View all tasks scheduled for January 3rd, use this: "date: Jan 3"
- See all tasks dated before a specific date, use this: "date before: May 5" or "date before: 5/5"
- See all tasks dated after a specific date, use this: "date after: May 5" or "date after: 5/5"
- See all tasks scheduled within the next four hours and all overdue tasks, use this: "date before: +4 hours"
- See all tasks dated in the current working week, use this: "date before: sat"
- See all tasks that are dated for next week, use this: "(date: next week | date after: next week) & date before: 1 week after next week"
- See all tasks dated within the current calendar month, use this: "date before: first day"
- See active tasks dated yesterday, along with today's tasks listed below, use this: "date: yesterday, today"
- See all tasks that have no date associated with them, use this: "no date"
- See all tasks with a date assigned to them, use this: "!no date"
- See all tasks with a date and time assigned to them, use this: "!no date & !no time"
- See all tasks dated today and before a specific time, use this: "date: today & date before: today at 2pm"
- See all tasks that are overdue, use this: "Overdue" or "over due" or "od"
- See all tasks that are overdue and have had time assigned to them, along with all tasks dated today and with time assigned to them, use this: "overdue & !no time, date: today & !no time"
- See all tasks in your Inbox without a date, followed by a separate section with all your tasks that have dates set, but are not in your Inbox: "#Inbox & no due date, All & !#Inbox & !no due date" You can write a date in any of these ways:
- Specific date: 10/5/2022, Oct 5th 2022
- Specific date and time: 10/5/2022 5pm, Oct 5th 5pm
- Relative date: today, tomorrow, yesterday, 3 days (dated in the next 3 days), -3 days (dated in the past 3 days)
- Days of the week: Monday, Tuesday, Sunday
Examples with deadlines:
- See all tasks with no deadlines, use this: "no deadline"
- See all tasks with a deadline, use this: "!no deadline"
- See all tasks with a deadline today, use this: "deadline: today"
- See all tasks with a deadline within the next 7 days: "deadline after: yesterday & deadline before: in 7 days"
- See all tasks with overdue deadlines: "deadline before: today"
Due takes into consideration the date and deadline fields. If a task has both, a date and deadline, due prioritizes the date. If the task does not have a date, due will check if the deadline matches filter criteria. If you don't use deadlines, due and date filters will return the same results.
- View all tasks due on January 3rd: "Jan 3"
- See all tasks that are due before a specific date, use this: "due before: May 5" or "due before: 5/5"
- See all tasks that are due after a specific date, use this: "due after: May 5" or "due after: 5/5"
- See all tasks due within the next four hours and all overdue tasks, use this: "due before: +4 hours"
- See all tasks that are due before the day you've selected in Settings > General > Next week, use this: "due before: next week"
- See all tasks due in the current working week, use this: "due before: sat"
- See all tasks that are due next week, use this: "(due: next week, use this: due after: next week) & due before: 1 week after next week"
- See all tasks due within the current calendar month, use this: "due before: first day"
- See active tasks due yesterday, along with today's tasks listed below, use this: "due: yesterday, today"
- See all tasks that have no date or deadline associated with them, use this: "no due date"
- See all tasks due today and before a specific due time, use this: "today & due before: today at 2pm"
- See all tasks that are overdue and have had a specific time assigned to them, along with all tasks due today, but only with times, use this: "overdue & !no time, today & !no time"
- See all tasks in your Inbox without a date or deadline, followed by a separate section with all your tasks that are due, but are not in your Inbox, use this: "#Inbox & no due date, All & !#Inbox & !no due date"
- See all tasks due within the next 5 days, use this: "5 days" or "next 5 days"
- See all tasks that have a recurring date, use this: "recurring"
- See all tasks that either have a non-recurring date or no date at all assigned to them, use this: "!recurring"
- See all tasks with a date, but no due time, and which are not recurring, use this: "no time & !recurring"
- See all tasks with priority level 1, use this: "p1"
- See all tasks with priority level 2, use this: "p2"
- See all tasks with priority level 3, use this: "p3"
- See all tasks with no priority level (i.e. p4), use this: "No priority"
- See all tasks with the label ""email"", use this: "@email"
- See all tasks that don't have any labels, use this: "no labels"
- See all tasks in the “Work” project, use this: "#Work"
- See all tasks in the ""Work"" project and its sub-projects, use this: "##Work"
- See all tasks in the ""School"" project and its sub-projects, but exclude the ""Science"" project, use this: "##School & !#Science"
- See all tasks belonging to sections named ""Meetings"" across all projects, use this: "/Meetings"
- See all tasks belonging to the section ""Meetings"" in the project ""Work"", use this: "#Work & /Meetings"
- See all tasks not assigned to sections, use this: "!/*"
- See all tasks not assigned to sections, but excluding tasks in your Inbox, use this: "!/* & !#Inbox"
- See all tasks in the “My Projects” workspace, use this: workspace: "My projects"
- See all tasks of the projects in the ""Design team"" folder, use this: "##Design team"
- Only see tasks in the "Doist" workspace, use this: "workspace: Doist"
- See all tasks in the "Doist" and "Halist" workspaces, use this: "(workspace: Doist | workspace: Halist)"
- See all tasks created on a specific date, use this: "created: Jan 3 2023"
- See all tasks created more than 365 days ago, use this: "created before: -365 days"
- See all tasks created within the last 365 days, use this: "created after: -365 days"
- See all tasks created today, use this: "created: today"
- See all tasks that have been assigned to others, use this: "assigned to: others"
- See all tasks Steve Gray assigned, use this: "assigned by: Steve Gray"
- See all tasks that you assigned to others, use this: "assigned by: me"
- See all tasks that have been assigned to anyone (yourself and others), use this: "assigned"
- See all tasks in shared projects, use this: "shared"
- See all tasks in your Todoist, excluding those assigned to others, use this: "!assigned to: others"
- See all tasks that are due today and are also labeled @email, use this: "Today & @email"
- See all tasks that are labelled either @work or @office, use this: "@work | @office"
- See all tasks that are either due today or are overdue and are also in the “Work” project, use this: "(today | overdue) & #Work"
- See all tasks that are not assigned to anyone, use this: "!assigned"
- See all tasks that are due today but exclude tasks in the ""Work"" project, use this: "Today & !#Work"
- See all tasks that are due tomorrow in the “Homework” project, but exclude tasks with the @languages label, use this: "#Homework & tomorrow & !@languages"
- See all tasks with any label that starts with “home”, use this: "@home"*
- See all tasks assigned to anyone whose first name starts with an M and last name is Smith, use this: "assigned to: m* smith"
- See all tasks from projects which name ends with “work”, use this: "#*Work"
- See all tasks from sections that have the word ""Work"" in the name. For example, /Work Meetings, /Work Admin, and /Work Calls, use this: "Work"
- See all tasks that don't belong to any section, use this: "!/*"
- See all tasks that are overdue or due today that are in the “Work” project, use this: "(today | overdue) & #Work"
- See all tasks that don't have a due time, use this: "no time"
- See all tasks that are due in the next 7 days and are labeled @waiting, use this: "7 days & @waiting"
- See all tasks created more than 365 days ago, use this: "created before: -365 days"
- See all tasks you assigned to others, use this: "assigned by: me"
- See all tasks assigned to Becky, use this: "assigned to: Becky"
- See all tasks created by you, use this: "added by: me"
- See all tasks created by Becky, use this: "added by: Becky"
- See all tasks in shared projects that haven’t been assigned to anyone, use this: "shared & !assigned"
- See all sub-tasks, use this: "subtask"
- See all parent tasks, use this: "!subtask"
- See all tasks, use this: "view all"
- See all tasks due within the next 8 hours, but exclude all overdue tasks, use this: "due before: +8 hours & !overdue"
- See every unscheduled task in your #Work project, use this: "#Work & no date"
- See every high-priority task in the next two weeks, use this: "(p1 | p2) & 14 days"
- See tasks that were created more than 30 days ago, use this: "created before: -30 days"
- See all tasks with the label ""night"" that are scheduled for Saturday, use this: "Saturday & @night"
- See every task you’re assigned to in the project ""Work"", use this: "#Work & assigned to: me"
- See all uncompletable tasks (without a checkbox); note - this query will also include tasks using italic formatting, use this: "(search: *) & !(search: **) & !(search: ***)"
add-section
Add a section to a project in Todoist
get-section
Get section details in Todoist
get-sections
Get all sections from a project in Todoist
update-section
Update a section in Todoist
delete-section
Delete a section from a project in Todoist
add-comment
Add a comment to a task or project
get-comment
Get a comment from a task or project in Todoist
get-comments
Get comments for a task or project
update-comment
Update a comment in Todoist
delete-comment
Delete a comment from a task in Todoist
get-task-comments
Get comments from a task in Todoist
get-project-comments
Get comments from a project in Todoist
add-label
Add a label to a task in Todoist
delete-label
Delete a label from Todoist
update-label
Update a label in Todoist
get-label
Get a label from Todoist
get-labels
Get all labels in Todoist
get-shared-labels
Retrieves a list of shared labels in Todoist
remove-shared-label
Remove shared label in Todoist
rename-shared-label
Rename a shared label in Todoist
Prompts
Interactive templates invoked by user choice
No prompts
Resources
Contextual data attached and managed by the client