Todoist MCP Server
A Model Context Protocol (MCP) server that provides integration with the Todoist REST API v2, enabling AI assistants to manage tasks, projects, sections, comments, and labels.
Note: I used this project to test out Factory.ai -- use with caution.
Features
- Task Management: Create, update, complete, delete, move, and search tasks
- Batch Operations: Create multiple tasks at once
- Project Management: Create, update, and delete projects
- Section Management: Organize tasks within project sections
- Comments: Add rich text comments with markdown support and optional prefixes ([Research], [Prompt], [Context], etc.)
- Labels: Manage personal labels
- Completed Tasks: Access completed task history via Sync API
- Rate Limiting: Built-in handling for Todoist's 450 requests/15 min limit with exponential backoff
Installation
npm install
npm run build
Configuration
-
Get your Todoist API token from Todoist Settings > Integrations > Developer
-
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"todoist": {
"command": "node",
"args": ["/path/to/todoist-mcp/dist/index.js"],
"env": {
"TODOIST_API_TOKEN": "your-api-token"
}
}
}
}
Important: Never commit your API token to version control. Store it securely in your local MCP configuration.
Available Tools
Task Operations
todoist_list_tasks- List active tasks with filterstodoist_get_task- Get a single tasktodoist_create_task- Create a new tasktodoist_update_task- Update an existing tasktodoist_complete_task- Mark task as completedtodoist_reopen_task- Reopen a completed tasktodoist_delete_task- Delete a tasktodoist_move_task- Move task to different project/sectiontodoist_search_tasks- Search tasks by contenttodoist_create_tasks_batch- Create multiple tasks at once
Project Operations
todoist_list_projects- List all projectstodoist_get_project- Get a projecttodoist_create_project- Create a new projecttodoist_update_project- Update a projecttodoist_delete_project- Delete a project
Section Operations
todoist_list_sections- List all sectionstodoist_get_section- Get a sectiontodoist_create_section- Create a new sectiontodoist_update_section- Update a sectiontodoist_delete_section- Delete a section
Comment Operations
todoist_list_comments- List comments for task/projecttodoist_get_comment- Get a commenttodoist_create_comment- Create a comment with optional prefixtodoist_update_comment- Update a commenttodoist_delete_comment- Delete a commenttodoist_add_research_comment- Add [Research] prefixed commenttodoist_add_context_comment- Add [Context] prefixed comment
Label Operations
todoist_list_labels- List all labelstodoist_create_label- Create a new labeltodoist_update_label- Update a labeltodoist_delete_label- Delete a label
Completed Tasks
todoist_list_completed_tasks- List completed taskstodoist_get_completed_stats- Get completion statistics
Response Format
All tools return a structured response:
{
success: boolean;
data?: any; // Present on success
error?: { // Present on failure
code: string;
message: string;
details?: any;
};
}
Development
npm run dev # Watch mode for development
npm run build # Build for production
npm run typecheck # Type check without emitting
License
ISC