Read-only access to a user's Todoist tasks, projects, sections, and labels via the Todoist REST API v2. Requires OAuth connection.
Five read-only tools with clear naming (list_*, get_*) and comprehensive descriptions (150-250 chars each). All tools have proper JSON Schema with typed properties and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are good but lack format constraints (e.g., filter syntax examples). No error handling guidance or recovery paths documented. Tool composition is sound (list → get pattern), but missing pagination support for potentially large result sets.
Get the full details of a single Todoist task / to-do item by its id, including content, description, project id, section id, priority, due date/datetime, labels, web URL, and creation time. Use after todoist_list_tasks to inspect one task.
List all personal labels in the user's Todoist account. Labels are tags applied to tasks. Returns each label's id, name, color, and favorite status. Use to discover labels for filtering or interpreting task labels.
List all projects in the user's Todoist account. Returns each project's id, name, color, favorite status, web URL, and parent project id. Use to discover projects and their ids before listing tasks or sections.
List the sections within a Todoist project. Sections group tasks inside a project. Returns each section's id, project id, name, and order. Use to understand how tasks in a project are organized.
List active (incomplete) tasks / to-do items from Todoist. Optionally filter by a project id, or by a Todoist filter query (a powerful query language, e.g. "today | overdue", "p1 & #Work", "no date"). Returns each task's id, content, description, project id, priority, due date/datetime, labels, and web URL.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Code shows mapProject/mapTask/mapSection/mapLabel functions but no schema definitions visible to clients.
No pagination support. list_projects, list_tasks, list_sections, list_labels lack limit/offset or cursor parameters. Large result sets will blow context window and degrade LLM reasoning.
No error recovery guidance. tFetch returns { error, message } but tool descriptions do not explain what to do on connection_required, 401, 404, or rate limit errors. LLM has no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Filter parameter lacks format documentation. todoist_list_tasks accepts 'filter' (Todoist query language) but description only gives examples ('today | overdue', 'p1 & #Work'). No link to Todoist filter syntax docs or constraint rules.
Missing tool annotations. No readOnlyHint, destructiveHint, or idempotentHint declared. All five tools are read-only and idempotent, these should be explicitly marked for agent safety.