SEMIPRO Cycling Intelligence
Server Details
Analyse cycling-event GPX routes and build bounded, practical ride-fuelling carry plans.
- Status
- Healthy
- Uptime
- 99.8% over 41 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools address completely different aspects: one analyzes a cycling route's physical demands, the other plans carbohydrate intake for a session. There is zero overlap in purpose or inputs.
Both tools follow the same verb_noun pattern with snake_case: analyse_event_route and plan_ride_fuelling. This is perfectly consistent and predictable.
With only two tools, the set feels thin for a server branded as 'Cycling Intelligence'. While both tools are focused and purposeful, the count is at the low end of the acceptable range.
The server name implies broader cycling intelligence capabilities, but only covers course analysis and fuelling. Obvious gaps include athlete data analysis, training prescription, performance prediction, and FIT file analysis.
Available Tools
2 toolsanalyse_event_routeAnalyse cycling event routeARead-onlyIdempotentInspect
Analyse a cycling-event GPX using SEMIPRO Event Demand Intelligence. Use this when a rider, coach or agent asks what a route will demand, which climbs or sections matter, or what kind of performance problem the course creates. This analyses the course only: it does not inspect an athlete, prescribe training, predict a result, diagnose a medical issue, or analyse a completed FIT activity.
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | ||
| gpx_xml | No | Complete GPX XML. Provide this or gpx_base64. Maximum decoded size: 3 MB. | |
| gpx_base64 | No | Base64-encoded GPX file. Provide this or gpx_xml. Maximum decoded size: 3 MB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool analyses the course only and lists explicit non-use cases, which provides context beyond the annotations. It doesn't discuss return format or limitations like rate limits, but the safety profile is well covered.
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?
The description is three sentences long, with the primary action front-loaded. Each sentence adds distinct value: the action, the use cases, and the exclusions. There is no redundant or filler text.
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 purpose, usage, and scope exclusions clearly. However, it does not explain the 'event' parameter or the expected return output. Since there is no output schema, a brief note on output could improve completeness, but the description is sufficient for correct tool selection.
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?
The schema itself describes gpx_xml and gpx_base64 with size limits and mutual exclusivity, covering 67% of parameters. However, the 'event' object has no description in the schema, and the tool description does not compensate for this gap. The main payload (GPX) is well-specified, but the optional event metadata lacks semantic guidance.
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's function with a specific verb and resource ('Analyse a cycling-event GPX'), and explicitly differentiates it from the sibling tool by focusing on route demand analysis rather than fuelling. The exclusions (no athlete inspection, training prescription, etc.) further sharpen the scope.
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?
It provides explicit when-to-use guidance ('Use this when a rider, coach or agent asks what a route will demand, which climbs or sections matter...') and clear exclusions ('it does not inspect an athlete, prescribe training, predict a result, diagnose a medical issue, or analyse a completed FIT activity'). This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_ride_fuellingPlan cycling ride fuellingARead-onlyIdempotentInspect
Turn a cycling session duration, broad work type and current carbohydrate tolerance into a bounded carbohydrate target, carry plan and timing guide. Use this when a rider needs to know how much carbohydrate to carry and how to divide it across their own gels, drink, chews or food. This is general sports-fuelling guidance: it does not provide medical nutrition, prescribe hydration or sodium, create a daily meal plan, or use connected athlete data.
| Name | Required | Description | Default |
|---|---|---|---|
| ride_type | Yes | Broad work demand. Use race_event only for a race, sportive or equivalent performance event. | |
| carb_sources | No | Optional products or foods the rider already has. Omit to receive a generic equivalent pack. | |
| duration_minutes | Yes | Planned cycling duration in minutes. | |
| current_tolerance | Yes | Highest carbohydrate intake in grams per hour already tolerated reliably in similar cycling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral context by stating it is 'general sports-fuelling guidance' and specifying what it does not do, which helps set expectations. It does not contradict any annotations, and the added limitations provide clarity beyond the structured metadata.
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?
The description is only two sentences, tightly packed with actionable information. It front-loads the core function, then adds usage guidance and exclusions without any waste or repetition. Every sentence earns its place, making it highly concise and well-structured.
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 the tool has four parameters, no output schema, and one sibling, the description provides sufficient context. It explains the high-level output ('bounded carbohydrate target, carry plan and timing guide'), states usage conditions, and clarifies limitations. While it does not detail the output format, the lack of an output schema and the broad guidance nature make this adequate.
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%, so the input schema fully documents all four parameters. The description adds a slight framing by mentioning 'duration, broad work type and current carbohydrate tolerance' and 'gels, drink, chews or food,' but it does not provide additional detail beyond what the schema already states. This meets the baseline for high schema coverage.
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 opens with a specific action: 'Turn a cycling session duration, broad work type and current carbohydrate tolerance into a bounded carbohydrate target, carry plan and timing guide.' This clearly states the tool's function and resource, and distinguishes it from the sibling 'analyse_event_route' which is route-focused. The second sentence reinforces the purpose by explaining when to use it for fuelling planning.
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?
Explicitly states 'Use this when a rider needs to know how much carbohydrate to carry and how to divide it across their own gels, drink, chews or food.' It also provides clear exclusions: 'does not provide medical nutrition, prescribe hydration or sodium, create a daily meal plan, or use connected athlete data.' This gives both when-to-use and when-not-to-use guidance.
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.
2 tool updates
- First observed
analyse_event_route - First observed
plan_ride_fuelling
Related MCP Connectors
AI soigneur for cyclists: Strava ride to an Ien-Vitse-validated nutrition plan + orderable box.
Manage your endurance training data and race preparation
Ask your AI about your fitness: activities and data from Garmin, COROS, Strava, GPX and more
Marathon fueling, pace, hydration, heat, carb-loading, and gel-comparison calculators.
Related MCP Servers
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- FlicenseAqualityDmaintenanceRace nutrition planning for endurance athletes. Calculates carb, sodium and fluid targets for marathons, ultras, cycling and triathlons. Returns personalised Lecka product recommendations by race type, conditions and athlete weight.31-
- AlicenseAqualityAmaintenanceLocal-first cycle coach MCP for phase-aware nutrition and training context.1746 npmMIT
- AlicenseAqualityDmaintenanceAnalyze iGPSport cycling data with natural language, computing derived training metrics (NP, IF, TSS, CTL, ATL, TSB) locally via MCP.831 PyPI4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.