A WebMCP-enabled dashboard for ice cream sales analytics across multiple store locations, providing tools for querying sales data, comparing periods, and analyzing flavor performance.
Sundae Metrics demonstrates solid tool definition practices with complete schemas, clear descriptions, and proper use of tool annotations. All 6 tools have explicit input schemas with typed properties and descriptions. Tool names follow verb_noun convention (list_, get_, set_, compare_). Descriptions are concise (40-180 chars) and explain purpose clearly. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; tools return raw error messages without recovery guidance. The set_dashboard_view tool lacks required parameter documentation (no description for dateFrom/dateTo in that context). Parameter descriptions could be more prescriptive about formats and constraints.
Percentage change in revenue and units between two months for one location. Returns null for a change from zero, which is undefined rather than flat
Exact sales (units and revenue) for one location in a given month
Total revenue across every location over a date range, broken down by location
Flavor ranking by units sold, best sellers first or slow movers first
Lists the ice cream locations available on this dashboard, with id, name and city
Changes the location and/or date range the user is looking at on the dashboard. Only the fields you pass are changed
Output schemas not documented. LLMs cannot predict response structure or plan downstream calls. Tools return text via toolText() wrapper with no schema declaration.
Error handling lacks recovery guidance. Errors return raw error.message strings without actionable next steps or error classification (retryable vs fatal).
set_dashboard_view has optional parameters (store, dateFrom, dateTo) with no 'required' array, but descriptions lack guidance on partial updates or defaults.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Date/month format constraints stated in descriptions ('YYYY-MM format', 'YYYY-MM-DD format') but not enforced via JSON Schema pattern or format keywords.
get_top_flavors has optional parameters (store, month, order) but no guidance on behavior when omitted. Description says 'All locations if omitted' and 'Whole range if omitted' but LLMs may not infer defaults correctly.