todoist-mcp

Doist/todoist-mcp

3.9

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

No resources