Skip to main content
Glama
mgnirck

Lecka Nutrition Race Planner

by mgnirck

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

get_products

Returns the full catalog of Lecka nutrition products

calculate_fueling_plan

Calculates a race-day fueling plan based on duration, intensity, and athlete data

get_nutrition_data

Retrieves per-product nutrition data (carbs, calories, electrolytes, etc.)

Related MCP server: rundida-mcp

MCP Server URL

https://lecka-mcp.vercel.app/mcp

Connect 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 start

Available Tools

3 tools
calculate_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
race_typeYesThe race distance or type.
goal_minutesYesAthlete's goal finish time in minutes. E.g. 240 for a 4-hour marathon.
weight_kgYesAthlete's body weight in kilograms.
genderNoAffects sodium targets. Defaults to male.
conditionsNoRace day temperature and humidity conditions. Defaults to mild.
effortNoIntended effort level. Defaults to race_pace.
caffeine_okNoWhether the athlete is comfortable consuming caffeine. Defaults to false.
athlete_profileNoTraining level. Affects carb and sodium targets. Defaults to intermediate.
regionNoUsed to filter product availability. Defaults to us.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesThe Lecka product ID. Obtain from get_products.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by product type. Omit to return all types.
regionNoReturn pricing for this region. Defaults to us.
caffeineNoIf true, return only caffeinated products. If false, only non-caffeinated.
dual_transporterNoIf true, return only products with dual-transporter carbohydrate profiles.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv1.0.0
    • First observedcalculate_fueling_plan
    • First observedget_nutrition_data
    • First observedget_products

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clear and distinct purpose: calculating a fueling plan, retrieving product nutrition data, and listing products. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., calculate_fueling_plan, get_nutrition_data, get_products), making them predictable.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    AI 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

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