Wallos MCP has well-structured tool definitions with complete JSON schemas and clear descriptions. All 7 tools have proper input schemas with typed parameters and descriptions. Tool names follow verb_noun convention (get_, list_, create_, update_, delete_). However, output schemas are not documented, parameter descriptions lack actionable constraints (e.g., date format examples, enum values in descriptions), and error handling guidance is minimal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Descriptions average ~120 chars, within acceptable range but could be more prescriptive about when to use each tool.
Add a new category to Wallos
Create a new subscription with automatic creation of categories, payment methods, currencies, and household members as needed
Delete a category (cannot delete default category ID 1 or categories in use)
Edit an existing subscription with optional updates to any field
Retrieve all master data from Wallos including categories, currencies, payment methods, and household members
List all subscriptions with optional filters for member, category, payment method, state, and sorting
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., subscription IDs for chaining). create_subscription and edit_subscription should document returned subscription object structure.
Missing tool annotations. delete_category is destructive and update_category modifies state, but no destructiveHint or readOnlyHint annotations present. Agents cannot distinguish safe from risky operations.
Parameter descriptions lack actionable constraints. 'billing_period' accepts 'expressions like "2 weeks", "3 months"' but no regex pattern or enum. 'start_date' says 'YYYY-MM-DD format' in description but not enforced in schema. LLMs cannot validate inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Update an existing category name
Error handling lacks recovery guidance. No indication of what to do if category is in use (delete_category), if subscription not found (edit_subscription), or if currency creation fails (create_subscription). Errors should guide LLM to next step.
Mutually exclusive parameters not documented. create_subscription accepts both 'currency_code' and 'currency_id', both 'category_name' and 'category_id', both 'payment_method_name' and 'payment_method_id'. Descriptions should state 'use one or the other, not both'.