Trello MCP has 11 tools with consistent naming (verb_noun pattern) and basic schemas via Zod. However, descriptions are minimal (10-30 chars), parameter descriptions lack detail, and output schemas are undocumented. No error recovery guidance, no pagination support for list operations, and no tool annotations. Naming is clear but descriptions fall well below the 50-200 char baseline for LLM-optimized tools. Schema conversion from Zod is present but incomplete, many parameter descriptions are generic ('required', 'optional') without format/constraint details.
Add a new card to a specified list.
Get information about the currently active board.
Fetch all cards from a specific list.
Retrieve all lists from the currently active board.
Fetch recent activity on the currently active board.
List all boards accessible to the user.
List all workspaces accessible to the user.
Descriptions are 10-30 characters, well below the 50-200 char baseline. Examples: 'Fetch all cards from a specific list' (36 chars) lacks context on when to use vs alternatives, prerequisites, or return structure.
Parameter descriptions are generic ('required', 'optional') without format constraints, ranges, or examples. E.g., 'dueDate' lacks ISO 8601 format hint; 'limit' in get_recent_activity lacks min/max bounds.
Output schemas are not documented. LLMs cannot infer what fields get_cards_by_list_id or get_active_board_info return, forcing them to guess downstream field names for chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Move a card from one list to another.
Set the active board for future operations.
Set the active workspace for future operations.
Update an existing card's details.
No pagination support. get_cards_by_list_id and get_recent_activity lack limit/offset or cursor parameters, risking context window exhaustion if a list has hundreds of cards.
No error recovery guidance. Error responses are generic (e.g., 'Unknown tool') without suggesting next steps (e.g., 'Try list_boards() first to find a valid board ID').