Connect this Model Context Protocol server to your LLM to interact with Todoist.
Critical deficiencies across all dimensions. 18 of 37 tools (49%) lack descriptions entirely (get-project, get-projects, get-section, get-sections, get-shared-labels, get-task-comments, get-task, get-tasks-by-filter, get-tasks, move-task-to-parent, move-task-to-project, move-task-to-section, remove-shared-label, rename-shared-label, reopen-task, update-comment, update-label, update-project, update-section, update-task). All 37 tools have parameter descriptions set to null, violating the requirement that every parameter must have a description. Input schemas are present but parameter documentation is completely absent. No output schemas are documented. Error handling is generic (PostHog exception capture with JSON stringification). Tool names follow verb_noun convention (positive), but lack of parameter guidance and missing descriptions severely limit LLM usability.
Add a comment to a project in Todoist
Add a comment to a task in Todoist
Add a label to a task in Todoist
Add a project to Todoist
Add a section to a project in Todoist
Add a task to Todoist
Close (complete) a task in Todoist
18 of 37 tools (49%) have no description at all. LLMs cannot determine when or why to select these tools. Violates pattern:tool-description requirement.
ALL 37 tools have parameter descriptions set to null. Every parameter must have a non-empty description explaining what it controls. LLMs cannot infer parameter meaning from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Delete a comment from a task in Todoist
Delete a label from Todoist
Delete a project in Todoist
Delete a section from a project in Todoist
Delete a task from a project in Todoist
Get a comment from a task or project in Todoist
Get a label from Todoist
Get all labels in Todoist
Get all collaborators from a project in Todoist
Get comments from a project in Todoist
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required data without knowing what fields to expect.
Error handling is generic and non-actionable. Errors are caught, stringified, and returned as plain text. No guidance on retryability, user-fixable issues, or recovery steps. Violates pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. LLMs cannot distinguish safe read-only operations from destructive ones without explicit hints.