MCP server for Lecka endurance sports nutrition planning. Calculates personalized race nutrition targets (carbs, sodium, fluid) and recommends Lecka products based on athlete profile and race conditions.
The server defines 3 tools with complete input schemas and descriptions. All tools follow verb-noun naming convention (get_*, calculate_*). However, descriptions are generic and lack context for agent selection. Parameter descriptions are minimal or absent. Output schemas are not documented. Error handling is basic, errors return raw messages without recovery guidance. The server is functional but lacks LLM-optimized descriptions and comprehensive parameter documentation expected of production-grade tools.
Calculates personalised race nutrition targets (carbs, sodium, fluid) for an endurance athlete and returns a list of Lecka products that match the target. Use this when an athlete asks what to eat during a race, how many gels they need, or what their carb target should be.
Returns full nutritional information and regional pricing for a specific Lecka product. Use the product ID from get_products.
Returns the Lecka product catalog. Use to find products by type, caffeine content, or dual-transporter status. All filters are optional.
Output schemas are not documented. LLMs cannot predict the structure of responses, making it difficult to plan downstream tool calls or extract data reliably.
Parameter descriptions are missing or too terse. For example, get_products has no description for 'type', 'region', 'caffeine', or 'dual_transporter' fields. LLMs cannot infer parameter meaning from names alone.
Tool descriptions lack context for agent selection. 'Returns the Lecka product catalog' does not explain when to call this vs calculate_fueling_plan, or what filters enable. Descriptions should state WHAT, WHEN, and any prerequisites.
Error handling is generic: 'Error: {err.message}' provides no recovery guidance. Errors should categorize as retryable, user-fixable, or fatal, and suggest next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only but this is not formally declared in the schema.
Parameters lack explicit range/constraint documentation. calculate_fueling_plan accepts numeric goal_minutes and weight_kg with no bounds stated. LLMs may pass absurd values (goal_minutes: 1000000, weight_kg: 0.001).
No pagination or result limits documented for get_products. If the catalog is large, returning all products risks context explosion. Description should state 'Returns up to N products; use filters to narrow results.'