MCP server for Tududi - a GTD (Getting Things Done) task management system
Tududi MCP demonstrates solid fundamentals: all 25 tools have clear verb-noun naming (list_*, create_*, update_*, delete_*, get_*, toggle_*), descriptions between 50 - 200 chars, and explicit JSON Schema with typed parameters. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present on all tools. However, several parameter descriptions are minimal (e.g., 'Filter tasks by type' lacks enum values), output schemas are not documented, and error handling is absent from the code. Pagination is supported (limit/offset) but total counts are not returned. No evidence of input validation or recovery guidance.
Create a new area with an optional description
Capture a new inbox item in Tududi
Create a new note with content, optional color, project association, and tags
Create a new project with optional description, priority, status, area, due date, image, and tags
Create a new tag
Create a new task with optional priority, due date, project assignment, tags, subtasks, and recurrence settings
Parameter descriptions lack enum constraints and format specifications. E.g., 'Filter tasks by type' does not list valid values (today, upcoming, completed, archived, all); 'order_by' and 'group_by' lack documentation of sortable/groupable fields.
Output schemas are not documented. Tool responses return text summaries but no structured schema definition for downstream tool chaining. LLMs cannot predict what fields are available for follow-up calls.
No error handling or recovery guidance in tool implementations. Code lacks try-catch blocks, validation, or actionable error messages. If an API call fails, the LLM receives no guidance on retry strategy or alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Permanently delete an area by UID. This action cannot be undone.
Permanently delete a note by UID. This action cannot be undone.
Permanently delete a project by UID. This action cannot be undone.
Permanently delete a task by UID. This action cannot be undone.
Get the current Tududi profile and preferences
Get detailed information about a specific task by its UID
List all areas with their names and UIDs
List inbox capture items with optional pagination and status details
List notes with optional sorting and project filtering, including note UIDs for follow-up actions
List projects with optional filters by status and area, including completion and task progress details
List all subtasks of a parent task by its UID
List all tags with their names and UIDs
List tasks with optional filters by type (today, upcoming, completed, archived, all), status, project, and grouping
Toggle the completion status of a task (mark as completed or reopen). Uses numeric task ID.
Update an existing area by UID. Only provided fields will be changed.
Update an existing note by UID. Only the provided fields will be changed.
Update Tududi profile preferences. Only the provided fields will be changed.
Update an existing project by UID. Only the provided fields will be changed.
Update an existing task by UID. Only provided fields will be changed.
Pagination returns items but no total count or next_cursor. LLMs cannot determine if more results exist or how many pages remain, forcing inefficient re-queries.
toggle_task_completion uses numeric 'id' while other task tools use string 'uid'. This inconsistency forces LLMs to reason about ID type conversions and risks passing wrong identifiers.