Todoist MCP Helper
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TODOIST_API_TOKEN | Yes | Your Todoist API Token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List all projects in the user's Todoist account. Returns project names, IDs, and colors. |
| create_projectB | Create a new project. Args: name: Name of the project. color: Optional color (e.g. 'berry_red', 'blue', 'charcoal'). parent_id: Optional parent project ID to create as a sub-project. |
| update_projectB | Update an existing project. Args: project_id: ID of the project to update. name: New name for the project. color: New color for the project. is_favorite: Whether to mark as favorite. |
| delete_projectA | Delete a project and all its tasks. Args: project_id: ID of the project to delete. |
| get_project_overviewA | Get a comprehensive overview of all projects with their sections and task counts. Useful for understanding the full project structure before organizing tasks. |
| get_tasksA | Get all active tasks. Can filter by project, label, or Todoist filter string. Args: project_id: Optional project ID to filter tasks by. label: Optional label name to filter tasks by. filter_str: Optional Todoist filter string (e.g. 'today', 'overdue', 'p1'). |
| get_taskC | Get detailed information about a single task. Args: task_id: ID of the task. |
| create_taskA | Create a new task in Todoist. Args: content: The task title/content (required). description: Optional description text. project_id: Optional project ID to add the task to. section_id: Optional section ID within a project. parent_id: Optional parent task ID (for sub-tasks). due_string: Optional due date in natural language (e.g. 'tomorrow', 'every monday', 'Jan 23'). due_date: Optional due date in YYYY-MM-DD format. priority: Priority from 1 (normal) to 4 (urgent). Default is 1. labels: Optional comma-separated label names (e.g. 'work,urgent'). |
| update_taskB | Update an existing task. Args: task_id: ID of the task to update (required). content: New task title/content. description: New description. due_string: New due date in natural language. due_date: New due date in YYYY-MM-DD format. due_datetime: New due date and time in RFC3339 format. priority: New priority (1-4). labels: New comma-separated label names (replaces existing labels). assignee_id: ID of user to assign the task to. duration: Task duration in minutes or days (requires duration_unit). duration_unit: Unit for duration: 'minute' or 'day'. deadline_date: Deadline date in YYYY-MM-DD format. |
| move_taskB | Move a task to a different project, section, or under a parent task. This enables cross-project task organization. Args: task_id: ID of the task to move (required). project_id: ID of the target project to move the task to. section_id: ID of the target section to move the task to. parent_id: ID of the parent task to move the task under. |
| close_taskC | Close (complete) a task. Args: task_id: ID of the task to close. |
| reopen_taskB | Reopen a previously completed task. Args: task_id: ID of the task to reopen. |
| delete_taskB | Permanently delete a task. Args: task_id: ID of the task to delete. |
| list_sectionsB | List sections, optionally filtered by project. Args: project_id: Optional project ID to filter sections by. |
| create_sectionC | Create a new section within a project. Args: name: Name of the section. project_id: ID of the project to create the section in. |
| update_sectionB | Rename an existing section. Args: section_id: ID of the section to update. name: New name for the section. |
| delete_sectionA | Delete a section and move its tasks to the parent project. Args: section_id: ID of the section to delete. |
| list_labelsA | List all personal labels in the user's Todoist account. |
| create_labelB | Create a new personal label. Args: name: Name of the label. color: Optional color (e.g. 'berry_red', 'blue', 'charcoal'). |
| get_commentsB | Get comments for a task or project. Must provide either task_id or project_id. Args: task_id: ID of the task to get comments for. project_id: ID of the project to get comments for. |
| create_commentA | Add a comment to a task or project. Must provide either task_id or project_id. Args: content: The comment text. task_id: ID of the task to comment on. project_id: ID of the project to comment on. |
| search_task_by_nameA | Search for tasks by name using partial/fuzzy matching. Returns all tasks whose title contains the search query. Args: query: Search keyword to match against task titles (case-insensitive). |
| complete_task_by_nameA | Complete a task by searching for it by name. Uses partial name matching. If multiple tasks match, lists them for the user to choose. Args: task_name: Name/content of the task to find and complete. |
| delete_task_by_nameA | Delete a task by searching for it by name. Uses partial name matching. If multiple tasks match, lists them for the user to choose. Args: task_name: Name/content of the task to find and delete. |
| update_task_by_nameA | Update a task by searching for it by name. Uses partial name matching. If multiple tasks match, lists them for the user to choose. Args: task_name: Name/content of the task to find and update. content: New task title. description: New description. due_string: New due date in natural language (e.g. 'tomorrow', 'next Monday'). priority: New priority (1-4). |
| move_task_by_nameA | Move a task to a different project/section by searching for it by name. Uses partial name matching. If multiple tasks match, lists them for the user to choose. Args: task_name: Name/content of the task to find and move. project_id: ID of the target project to move the task to. section_id: ID of the target section to move the task to. parent_id: ID of the parent task to move the task under. |
| set_api_tokenA | Set or update the Todoist API Token at runtime. This allows switching accounts without restarting the server. The token will persist for the current session only. Args: token: Your Todoist API Token (get from https://app.todoist.com/app/settings/integrations). |
| get_current_configA | Show the current configuration status (whether API token is set, API base URL, etc). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LittlePeter52012/todoist-mcp-helper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server