MCP server for accessing Triple Whale e-commerce analytics data
Server has 4 tools with complete schemas and descriptions, but quality is uneven. get_blended_stats has a complex, well-structured schema with proper enums and nested objects. All tools have descriptions (10-50 chars), but most are generic and lack actionable context. Parameters are typed but lack depth, no guidance on valid ranges, formats, or dependencies. Error handling returns raw API messages without recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Output schemas are not documented. Descriptions average 35 chars (below 194-char baseline for A+ tools). No parameter descriptions beyond names.
Get list of available dimensions for the shop
Get list of available metrics for the shop
Get blended statistics from Triple Whale
Get information about the configured shop
Three tools (get_shop_info, get_available_metrics, get_available_dimensions) have empty input schemas ({}). These tools lack any parameter documentation.
Descriptions are generic and under 50 chars for 3 of 4 tools. Descriptions like 'Get information about the configured shop' lack context on when to call, what it returns, or dependencies. LLMs cannot distinguish between similar tools.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. get_blended_stats returns JSON but structure is undocumented. Per pattern, tools must document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Error handling returns raw API error messages without recovery guidance. 'Error fetching blended stats: {error.message}' tells LLM nothing actionable. Per pattern, errors must guide next steps: 'Invalid date range. Use YYYY-MM-DD format.'
get_blended_stats has complex nested schema (dateRange, metrics, dimensions, filters) but parameter descriptions are minimal. No guidance on required vs optional, valid ranges, or dependencies. E.g., 'metrics' requires min 1 item but description doesn't explain why or what happens if omitted.