Todoist MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TODOIST_API_TOKEN | Yes | Your Todoist API token |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_todoist_projectsA | List all Todoist projects. Returns every project in the user's account with its ID and name. Use this to discover valid project names for other tools. Example: list_todoist_projects() Returns: [{"id": "12345", "name": "Inbox"}, {"id": "67890", "name": "Work Tasks"}, ...] |
| get_project_tasksA | Get all tasks from a Todoist project. Returns tasks with: id, content, description, labels, due, priority, project_id. |
| list_todoist_labelsA | List all personal Todoist labels. Returns every label with its ID, name, and color. Labels are referenced by name in task operations. Example: list_todoist_labels() Returns: [{"id": "111", "name": "Home", "color": "blue"}, ...] |
| get_completed_tasksA | Get completed tasks from Todoist within a date range. Returns tasks completed between Example: get_completed_tasks(since="2026-03-12", until="2026-03-19") Returns: [{"id": "123", "content": "Buy milk", "project_id": "456", ...}, ...] |
| create_taskA | Create a new task in Todoist. Creates a task with the given content in the specified project. Optionally attach labels, a due date, and a description. |
| update_taskA | Update fields on an existing Todoist task. Only specified fields are changed; others remain untouched. Note: setting labels replaces all existing labels on the task. |
| move_taskB | Move a task to a different Todoist project. |
| complete_taskA | Mark a Todoist task as complete. The task will be moved to completed status. For recurring tasks, this advances to the next occurrence. |
| delete_taskA | Permanently delete a Todoist task. This action is irreversible. Consider complete_task() instead if you want to keep a record of the task. |
| batch_update_tasksA | Batch update multiple Todoist tasks in a single API call. Uses the Todoist Sync API for efficiency — processes all operations in one request. Each operation can update fields and/or move a task to a different project. This is ideal for triage workflows where you need to process many tasks at once. |
| get_task_commentsA | Get all comments on a Todoist task. Returns all comments attached to the specified task, ordered by creation time. |
| add_task_commentA | Add a comment to a Todoist task. Creates a new comment on the specified task. Supports Markdown formatting. |
| create_todoist_labelB | Create a new personal label in Todoist. |
| rename_todoist_labelB | Rename an existing Todoist label. |
| delete_todoist_labelA | Permanently delete a Todoist label. This removes the label from all tasks that have it. This action is irreversible. |
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
- 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/stevesimpson418/todoist-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server