Server has 30 well-structured tools with consistent naming (verb_noun pattern: getTasks, createTask, etc.) and complete JSON schemas. All tools have descriptions and typed parameters with examples. However, descriptions are often generic (e.g., 'Getting a list of tasks' vs. actionable guidance on when to use), parameter descriptions lack constraint details (e.g., no mention of limit bounds 1-50), and output schemas are not documented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Pagination support exists (cursor, limit) but lacks documentation of total counts or next_cursor semantics.
Mark a task as completed in Todoist
Create a new label in Todoist
Create a new project in Todoist
Create a new comment for a project in Todoist
Create a new section in a Todoist project specifying name and order
Create a new task in Todoist
Create a new comment for a task in Todoist
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., task_id from createTask response). Responses from getTasks, getProjects, etc. lack field definitions.
Parameter descriptions lack constraint details. 'limit' parameter states 'default: 30, maximum: 50' in description but no minimum or validation guidance. 'priority' has min/max in schema but descriptions don't explain the 1-4 scale semantics. 'dueString' accepts natural language but no examples of valid formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Delete a comment from Todoist
Delete a label from Todoist
Delete a project from Todoist
Delete a section from Todoist without removing associated tasks
Delete a task from Todoist
Get information about a specific comment by its ID
Get information about a specific label by its ID
Get a list of all labels in Todoist
Get information about a specific project by its ID
Get a list of comments for a specific project in Todoist
Get a list of all projects in Todoist
Get information about a specific section by its ID
Get a list of sections in Todoist with the ability to filter by project
Get information about a specific task by its ID
Get a list of comments for a specific task in Todoist
Getting a list of tasks in Todoist with basic filtering by project, section, label, and other parameters
Move a task to a different project or section in Todoist
Mark a task as incomplete in Todoist
Update an existing comment in Todoist
Update an existing label in Todoist
Update an existing project in Todoist
Update an existing section in Todoist with the ability to change name and order
Update an existing task in Todoist
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk levels (READ_ONLY, WRITE, DESTRUCTIVE) in metadata but not exposed as MCP tool annotations. LLMs cannot infer safety properties from tool definitions alone.
Generic descriptions lack actionable guidance. 'Getting a list of tasks' and 'Create a new task' do not explain WHEN to use each tool vs. alternatives, what the LLM should do with results, or dependencies. Descriptions average ~50 chars; production baseline is 194 chars.
No error handling or recovery guidance. Tools do not document what errors can occur (e.g., 'project not found', 'invalid priority'), what the LLM should do next, or how to self-correct. Agents cannot distinguish retryable from fatal failures.