MCP server exposing life management functionality (todos, calendar, shopping, expenses) via Model Context Protocol for AI agents and tools
Two portmanteau tools with significant definition gaps. Both tools combine multiple operations (list, create, update, delete, etc.) into single endpoints via an 'operation' parameter, violating the single-responsibility principle. Schemas are present with type definitions, but descriptions lack LLM-optimization guidance. Parameter descriptions are generic and do not explain when to use each operation or how operations relate. No output schemas documented. Error handling and recovery guidance absent. Tool names (vla_todos, vla_calendar) do not follow verb_noun convention and are domain-specific rather than action-oriented.
Comprehensive calendar management for Vienna Life Assistant. PORTMANTEAU PATTERN: Single tool for all calendar operations. OPERATIONS: list, create, update, delete, today, upcoming
Comprehensive todo management for Vienna Life Assistant. PORTMANTEAU PATTERN: Single tool for all todo operations. OPERATIONS: list, create, update, delete, complete, stats
Portmanteau pattern: both tools combine 6+ operations (list, create, update, delete, complete/today, stats/upcoming) into single endpoints via 'operation' parameter. Violates single-responsibility principle. LLMs cannot infer which operation to invoke without explicit operation name enumeration.
Tool names do not follow verb_noun convention. 'vla_todos' and 'vla_calendar' are domain nouns, not action verbs. Should be 'list_todos', 'create_todo', 'update_todo', 'delete_todo', 'complete_todo', 'get_todo_stats' (and calendar equivalents). Current names force LLMs to read descriptions to understand intent.
No output schemas documented. Tool descriptions state operations but do not specify what fields are returned (e.g., does list_todos return [id, title, category, priority, due_date, status]? Does it include timestamps?). LLMs cannot plan downstream calls or extract required data without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameter 'operation' lacks enum constraint. Description lists operations as free-form string but does not declare valid values as an enum. LLMs may hallucinate invalid operations like 'archive', 'duplicate', 'export'. Should be: {"enum": ["list", "create", "update", "delete", "complete", "stats"]}.
Parameter descriptions are generic and do not explain operation-specific requirements. E.g., 'title' is marked 'required for create' but descriptions do not state which parameters are required for update, delete, or complete operations. Undocumented dependencies cause silent misuse.