Lecka Nutrition Race Planner
lecka-mcp
A Model Context Protocol (MCP) server for the Lecka sports nutrition platform. It exposes tools that let MCP-compatible AI clients (like Claude) query products, calculate race fueling plans, and retrieve personalized nutrition data.
Built with @modelcontextprotocol/sdk and deployed on Vercel.
Tools
Tool | Description |
| Returns the full catalog of Lecka nutrition products |
| Calculates a race-day fueling plan based on duration, intensity, and athlete data |
| Retrieves per-product nutrition data (carbs, calories, electrolytes, etc.) |
Related MCP server: rundida-mcp
MCP Server URL
https://lecka-mcp.vercel.app/mcpConnect with Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"lecka": {
"url": "https://lecka-mcp.vercel.app/mcp"
}
}
}On macOS the config file lives at ~/Library/Application Support/Claude/claude_desktop_config.json.
Development
npm install
npm startAvailable Tools
3 toolscalculate_fueling_planA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| race_type | Yes | The race distance or type. | |
| goal_minutes | Yes | Athlete's goal finish time in minutes. E.g. 240 for a 4-hour marathon. | |
| weight_kg | Yes | Athlete's body weight in kilograms. | |
| gender | No | Affects sodium targets. Defaults to male. | |
| conditions | No | Race day temperature and humidity conditions. Defaults to mild. | |
| effort | No | Intended effort level. Defaults to race_pace. | |
| caffeine_ok | No | Whether the athlete is comfortable consuming caffeine. Defaults to false. | |
| athlete_profile | No | Training level. Affects carb and sodium targets. Defaults to intermediate. | |
| region | No | Used to filter product availability. Defaults to us. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses the computational nature (calculates targets) and the output (returns a product list). However, it does not explicitly state that the tool has no side effects or what the output format looks like, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the core action, the second provides usage examples. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and usage but lacks details about the output format (e.g., how targets are returned) and does not explain how parameters influence the calculation beyond what is in the schema. For a tool with 9 parameters and no output schema, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all 9 parameters having descriptions in the schema. The description adds no additional parameter-specific information beyond the schema. Baseline score for high coverage is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates personalized race nutrition targets and returns matching Lecka products. It distinguishes itself from sibling tools like get_nutrition_data and get_products by focusing on race-specific planning with product recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when an athlete asks what to eat during a race, how many gels they need, or what their carb target should be.' This provides clear when-to-use guidance, though it does not explicitly state when not to use or contrast with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nutrition_dataA
Returns full nutritional information and regional pricing for a specific Lecka product. Use the product ID from get_products.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The Lecka product ID. Obtain from get_products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns nutritional info and pricing, but does not mention any side effects, idempotency, rate limits, or safety considerations. It is adequate but not extra.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: first states purpose, second provides input guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does describe what is returned ('full nutritional information and regional pricing'). It could be more specific about the structure or units, but it is fairly complete for a single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds minimal value beyond the schema's parameter description. It reinforces the source of the product ID but does not add new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Returns' and the resource 'full nutritional information and regional pricing for a specific Lecka product.' It distinguishes from sibling get_products by specifying the need for a product ID, and from calculate_fueling_plan by implication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on how to obtain the product ID ('Use the product ID from get_products.'), but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productsA
Returns the Lecka product catalog. Use to find products by type, caffeine content, or dual-transporter status. All filters are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by product type. Omit to return all types. | |
| region | No | Return pricing for this region. Defaults to us. | |
| caffeine | No | If true, return only caffeinated products. If false, only non-caffeinated. | |
| dual_transporter | No | If true, return only products with dual-transporter carbohydrate profiles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It states it returns a catalog (read operation) but says nothing about auth, rate limits, pagination, or potential side effects. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no fluff. Every word contributes meaning, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description covers the core purpose and filters. However, it fails to mention the 'region' parameter, and provides no hints about return format or data size. Siblings are listed but not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% descriptive coverage. Description adds value by grouping key filters (type, caffeine, dual-transporter) and reinforcing they are optional. However, it omits the 'region' parameter, which is in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the product catalog and lists filtering criteria (type, caffeine, dual-transporter). It distinguishes from siblings: calculate_fueling_plan and get_nutrition_data are different functions. However, it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'All filters are optional' which is a usage hint, but provides no guidance on when not to use this tool or alternatives. Lacks explicit context for when to choose this over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
calculate_fueling_plan - First observed
get_nutrition_data - First observed
get_products
TDQS
Each tool has a clear and distinct purpose: calculating a fueling plan, retrieving product nutrition data, and listing products. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern using snake_case (e.g., calculate_fueling_plan, get_nutrition_data, get_products), making them predictable.
With only 3 tools, the set is minimal but still covers the core needs for the narrow domain of race nutrition planning using Lecka products. Slightly under but reasonable.
The tools cover product discovery, detailed nutrition info, and plan calculation. Minor gaps exist (e.g., no user profile or plan adjustment tools), but the essential workflow is supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Marathon fueling, pace, hydration, heat, carb-loading, and gel-comparison calculators.
Analyse cycling-event GPX routes and build bounded, practical ride-fuelling carry plans.
AI cycling coach: training plans, workouts, nutrition, strength training, Strava, Garmin and Wahoo.
AI running coach. Reads Strava, Suunto, Polar, Apple Health or Health Connect. Adapts to your feel.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides comprehensive running performance calculations including VDOT, training paces, race time predictions, velocity markers, and heart rate zones using Jack Daniels, Greg McMillan, and Riegel methodologies.9MIT
- AlicenseAqualityBmaintenance86 running calculators, 29 marathon events, pace/time/distance calculations, race time predictions, and heart rate training zones for AI agents.10761MIT
- FlicenseAqualityCmaintenanceCalculate TDEE & macro targets, look up food nutrition data, generate meal plans, fix nutrient deficiencies, and score a day's eating from 0–100. Free nutrition tools for AI assistants.5-

musette-mcpofficial
AlicenseNot gradedqualityDmaintenanceAI soigneur for cyclists: turns your Strava ride into an Ien-Vitse-validated nutrition plan (carbs/hour, hydration, timing) and assembles a ready-to-order musette. Works alongside the Strava MCP in Claude and ChatGPT.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mgnirck/lecka-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server