A Model Context Protocol (MCP) server for integrating Claude with Todoist, allowing Claude to manage tasks, projects, and labels in a user's Todoist account.
13 tools with complete schemas and descriptions. Naming is clear and verb-based (list-, create-, update-, delete-). Descriptions are detailed (100-300 chars) and explain use cases well. However, parameter descriptions lack actionable constraints (no enums for priority/color, no format specs for dates). Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from descriptions. Destructive tools (delete-task, delete-project, delete-label) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint, destructiveHint) visible in code.
Mark a task as complete in Todoist.
Create a new label in Todoist. This tool allows you to create a new label with various properties, including: - Name - Color - Favorite status Usage examples: - "Create a new label called 'urgent'" - "Add a label 'research' with color blue" - "Create a label 'important' as a favorite"
Create a new project in Todoist. This tool allows you to create a new project with various properties, including: - Name - Color - Parent project (for nested projects) - Favorite status Usage examples: - "Create a new project called 'Home Renovation'" - "Add a project 'Q2 Goals' with color red" - "Create a project 'Books' as a favorite"
Create a new task in Todoist. This tool allows you to create a new task with various properties, including: - Task content (title) - Description - Project assignment - Due date - Priority - Labels Usage examples: - "Create a task 'Buy groceries' due tomorrow" - "Add a task 'Prepare presentation' to project 'Work' with priority 1" - "Create a task 'Call John' due on 2023-12-15 with label 'Personal'"
Delete a label from Todoist. This tool allows you to permanently delete a label. NOTE: This will remove the label from all tasks that use it. Usage examples: - "Delete label X" - "Remove the 'old' label"
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned.
Destructive tools (delete-task, delete-project, delete-label) lack confirmation/dry-run pattern. No guard against accidental deletion by agents.
Parameter constraints missing. 'priority' accepts 1-4 but no enum; 'color' accepts free-form strings (should be enum: berry_red, blue, green, etc.). LLMs will hallucinate invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Delete a project from Todoist. This tool allows you to permanently delete a project and all its tasks. WARNING: This action cannot be undone! Usage examples: - "Delete project X" - "Remove the 'Old Tasks' project"
Delete a task from Todoist.
List all labels in your Todoist account. This tool retrieves all labels from your Todoist account, including: - Label names - IDs - Colors - Favorites status Usage examples: - "Show me all my labels" - "List my Todoist labels"
List all projects in your Todoist account. This tool retrieves all projects from your Todoist account, including: - Project names - IDs - Colors - Parent projects (for nested projects) - Favorites status Usage examples: - "Show me all my projects" - "List my Todoist projects"
List tasks from Todoist with various filtering options. This tool allows you to retrieve tasks from your Todoist account, with options to filter by: - Project (using project_id or project_name) - Label (using label_id or label_name) - Due date (today, upcoming) - Priority level - Completion status - Custom filter string using Todoist's filter syntax Example filter strings: - "today" - Tasks due today - "overdue" - Overdue tasks - "p1" - Priority 1 tasks - "@work & today" - Tasks with label 'work' due today Usage examples: - "Show me all my tasks due today" - "List tasks in my 'Work' project" - "Show high priority tasks with the 'urgent' label"
Update an existing label in Todoist. This tool allows you to update properties of an existing label, such as: - Name - Color - Favorite status Usage examples: - "Rename label X to 'critical'" - "Change the color of label Y to red" - "Mark label Z as a favorite"
Update an existing project in Todoist. This tool allows you to update properties of an existing project, such as: - Name - Color - Favorite status Usage examples: - "Rename project X to 'Work 2025'" - "Change the color of project Y to blue" - "Mark project Z as a favorite"
Update an existing task in Todoist. This tool allows you to update properties of an existing task, such as: - Task content (title) - Description - Project assignment - Due date - Priority - Labels Usage examples: - "Update task X to be due tomorrow" - "Change the priority of task Y to high" - "Move task Z to the 'Personal' project"
Descriptions for simple tools (complete-task, delete-task, delete-project, delete-label) are under 50 chars. Lack context on when to use, what happens, and recovery guidance.
No tool annotations visible (readOnlyHint, destructiveHint, idempotentHint). Agents cannot infer which tools are safe to retry or have side effects.