MCP server for Wallos — a self-hosted subscription tracker. Manage subscriptions, categories, and view master data.
Wallos-MCP has clear verb-based naming (list_, create_, edit_, get_, add_, update_, delete_) and all 7 tools have descriptions. However, parameter descriptions are minimal or absent for most tools. Input schemas are present but lack depth: many parameters have no descriptions (e.g., in list_subscriptions, 'member_ids', 'category_ids', 'payment_method_ids' lack descriptions). Output schemas are not documented, callers cannot predict response structure. Error handling is basic (returns error text but no recovery guidance). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The server lacks pagination support despite list_subscriptions potentially returning many items. Parameter constraints (enums for 'state', 'sort', 'billing_period') are mentioned in descriptions but not formalized in schema.
Add a new category.
Create a new subscription. Auto-creates categories/payment methods if needed.
Delete a category. Cannot delete the default category (ID: 1).
Edit an existing subscription.
Get master data: categories, currencies, payment methods, and household members.
List all subscriptions with optional filters.
Parameter descriptions missing or minimal. Most parameters in create_subscription, edit_subscription, list_subscriptions lack descriptions (e.g., 'member_ids', 'category_ids', 'payment_method_ids', 'currency_code', 'billing_period', 'billing_frequency'). LLMs cannot infer parameter meaning from names alone.
Output schemas not documented. Tools return raw JSON from Wallos API without documenting response structure. Callers cannot predict fields, types, or nesting. get_master_data returns 4 nested objects but structure is opaque.
No pagination support. list_subscriptions lacks limit, offset, or page parameters. If Wallos returns 500+ subscriptions, response will blow context window. No total_count or next_cursor in response.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Update an existing category.
No tool annotations. Tools lack readOnlyHint (list_subscriptions, get_master_data), destructiveHint (delete_category), or idempotentHint. Agents cannot reason about side effects or retry safety.
Error handling lacks recovery guidance. Errors return raw API messages (e.g., 'API error 400: ...') without actionable next steps. No categorization of retryable vs. user-fixable errors.