Todoist MCP Server

by mikemc
Verified

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TODOIST_API_TOKENYesYour Todoist API token (found in Todoist Settings → Integrations → Developer)

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
todoist_get_projects

Get all projects from the user's Todoist account

todoist_get_project

Get a single project from Todoist

Args: project_id: ID of the project to retrieve

todoist_add_project

Create a new project in Todoist

Args: name: Name of the project color: Color of the project (optional) parent_id: ID of the parent project for creating sub-projects (optional) is_favorite: Whether the project should be marked as favorite (optional) view_style: View style of the project, either 'list' or 'board' (optional)

todoist_update_project

Update an existing project in Todoist

Args: project_id: ID of the project to update name: New name for the project (optional) color: New color for the project (optional) is_favorite: Whether the project should be marked as favorite (optional) view_style: View style of the project, either 'list' or 'board' (optional)

todoist_delete_project

Deletes a project from the user's Todoist account

Args: project_id: ID of the project to delete

todoist_get_sections

Get all sections from the user's Todoist account

Args: project_id: Filter sections by project ID (optional)

todoist_get_section

Get a single section from Todoist

Args: section_id: ID of the section to retrieve

todoist_add_section

Create a new section in Todoist

Args: name: Section name project_id: Project ID this section should belong to order: Order among other sections in a project (optional)

todoist_update_section

Updates a section in Todoist

Args: section_id: ID of the section to update name: New name for the section

todoist_delete_section

Deletes a section from Todoist

Args: section_id: ID of the section to delete

todoist_get_tasks

Get a list of tasks from Todoist with various filters

Args: project_id: Filter tasks by project ID (optional) filter: Natural language filter like 'today', 'tomorrow', 'next week', 'priority 1', 'overdue' (optional) priority: Filter by priority level (1-4) (optional) limit: Maximum number of tasks to return (optional)

todoist_get_task

Get an active task from Todoist

Args: task_id: ID of the task to retrieve

todoist_create_task

Create a new task in Todoist with optional description, due date, and priority

Args: content: The content/title of the task description: Detailed description of the task (optional) project_id: Task project ID. If not set, task is put to user's Inbox (optional) section_id: ID of section to put task into (optional) parent_id: Parent task ID (optional) order: Non-zero integer value used to sort tasks under the same parent (optional) labels: The task's labels (a list of names that may represent either personal or shared labels) (optional) priority: Task priority from 1 (normal) to 4 (urgent) (optional) due_string: Natural language due date like 'tomorrow', 'next Monday', 'Jan 23' (optional) due_date: Specific date in YYYY-MM-DD format relative to user's timezone (optional) due_datetime: Specific date and time in RFC3339 format in UTC (optional) due_lang: 2-letter code specifying language in case due_string is not written in English (optional) assignee_id: The responsible user ID (only applies to shared tasks) (optional) duration: A positive integer for the amount of duration_unit the task will take (optional) duration_unit: The unit of time that the duration field represents (minute or day) (optional) deadline_date: Specific date in YYYY-MM-DD format relative to user's timezone (optional) deadline_lang: 2-letter code specifying language of deadline (optional)

todoist_update_task

Update an existing task in Todoist

Args: task_id: ID of the task to update content: New content/title for the task (optional) description: New description for the task (optional) labels: New labels for the task (optional) priority: New priority level from 1 (normal) to 4 (urgent) (optional) due_string: New due date in natural language like 'tomorrow', 'next Monday' (optional) due_date: New specific date in YYYY-MM-DD format (optional) due_datetime: New specific date and time in RFC3339 format in UTC (optional) due_lang: 2-letter code specifying language in case due_string is not written in English (optional) assignee_id: The responsible user ID or null to unset (for shared tasks) (optional) duration: A positive integer for the amount of duration_unit the task will take (optional) duration_unit: The unit of time that the duration field represents (minute or day) (optional) deadline_date: Specific date in YYYY-MM-DD format relative to user's timezone (optional) deadline_lang: 2-letter code specifying language of deadline (optional)

todoist_close_task

Close a task in Todoist (i.e., mark the task as complete)

Args: task_id: ID of the task to close

todoist_reopen_task

Reopen a task in Todoist (i.e., mark the task as incomplete)

Args: task_id: ID of the task to reopen

todoist_delete_task

Delete a task from Todoist

Args: task_id: ID of the task to delete

ID: rhxk8wxe9p