Connect your AI Endurance training platform to ChatGPT, Claude, and other AI assistants for conversational access to your training data, workouts, and performance analytics and to manage your…
ai-endurance-mcp is an MCP project maintained in the ai-endurance/mcp repository. The maintainer describes its purpose as “Connect your AI Endurance training platform to ChatGPT, Claude, and other AI assistants for conversational access to your training data, workouts, and performance analytics and…”. Read the project documentation for the complete scope.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| actType | "Ride" or "Run" (must match the user's sport: Runner users only Run, Cyclist users only Ride, Triathlete users both) |
| zones | Object with zone upper bounds |
| Endurance | actual hours vs prescribed hours |
| Tempo | actual vs prescribed |
| Threshold | actual vs prescribed |
| VO2Max | actual vs prescribed |
| startDate | optional): YYYY-MM-DD format |
| endDate | optional): YYYY-MM-DD format |
| summaryMode | optional): Boolean - if true, returns lightweight overview with minimal fields, no 35-day cap |
| fullDetails | optional): Boolean - if true, includes the machine-readable step structure (steps_general, swim_sections, zone distribution, compliance data) and untruncated… |
| workoutId | Database ID of workout (the workout_id field of a getPlannedWorkouts result) |
| newDate | New date in YYYY-MM-DD format |
| title | Workout name |
| advice | optional): Coaching notes |
| ess | Target training stress score (required if intensityTime not provided; more than about 100 is a hard workout) |
| intensityTime | Target time at intensity in seconds (required if ess not provided) |
| repeats | optional): Number of repeats at the intensity, for Tempo and above |
| dateStr | Date in YYYY-MM-DD format |
| stepsGeneral | Array of step objects (zone-based targets) |
| isTaper | optional): Boolean, marks as taper workout (default false) |
| intensityType | "Endurance", "Tempo", "Threshold", "VO2Max" or "Anaerobic" |
| swimSections | Array of swim section objects |
| strengthOtherText | The workout description/instructions in free-form text |
| with_dfa_alpha1 | optional): Boolean - adds the DFA alpha 1 threshold values and durability_drift |
| id | the activity id - pass it as activityId to getSwimmingActivityDetail |
| activityId | the activity id (the id field of a getCyclingActivity / getRunningActivity result) |
| with_power_curve | optional): Boolean - adds the peak GAP-pace and running-power curves, % of recent best, effort structure and within_session_durability |
| with_time_series_metrics | optional): Boolean - adds the raw per-sample arrays. Default false |
| resolution | optional): sampling for the raw arrays (same as cycling), so it has no effect unless with_time_series_metrics is true |
| laps | the device laps the watch recorded, with per-lap avg_pace_device (the watch's raw pace, not GAP), power, HR, cadence and respiration |
| durability_drift | this run's internal drift (heart rate, DFA a1, respiration frequency) against your own fitted ~6-week trend at matched work, with the same per-metric verdict… |
| effort_structure | time spent by intensity band and bout length |
| within_session_durability | how far sustained power fell off as work accumulated within the ride, along the ride's own kJ axis. Needs no HRV, so it is available on essentially any ride… |
| Time | series data showing recovery trends (past 14 days by default) |
| Lap-by | lap breakdown |
| activityType | "Ride", "Run" or "Swim" |
| segments | optional): "auto" (default) adds a small table of equal time-window splits (avg power/speed + HR per window); "none" skips it. These are computed windows… |
| range | optional): {"type": "time_seconds", "from": seconds, "to": seconds} restricts the whole analysis to a time window - e.g. the first 30 minutes, or one device… |
| Overview | moving/elapsed time, distance, elevation gain |
| power | avg/max/min, normalized power, variability index, intensity factor |
| pacing | first vs second half averages and fade_pct (positive = second half lower power / slower; terrain-naive, so check the per-half ascent/descent before calling a… |
| sport | "cycling" or "running" |
| isIndoor | optional): Activity was performed indoors (trainer/treadmill/virtual). Also swaps the stored weather to the indoor marker, or re-fetches outdoor weather when… |
| isVirtual | optional): Virtual ride/run (Zwift, Rouvy, etc.). Implies indoor. |
| isErgMode | optional): Recorded in erg mode (the trainer controls power) |
| excludeFromCurves | optional): Exclude from aggregate power/pace-duration curves and recent-best comparisons (e.g. power meter malfunction) |
| excludeFromModel | optional): Exclude from digital twin (GRU) model training data |
| excludeFromDurability | optional): Exclude from durability curve aggregation |
| excludeHrData | optional): Heart rate data is unreliable (e.g. strap failure) - excludes the activity from HRV/alpha 1 aggregation and from model training while keeping the… |
| flags | current values of all seven flags after the update |
| retrain_queued | whether the change queued a digital twin retrain (excludeFromModel and excludeHrData do; excludeHrData additionally rebuilds the stored HRV aggregates) |
| rMSSD | heart rate variability - parasympathetic activity) |
| days_back | optional): How many days of daily recovery data to return, 1-90 (defaults to 14) |
| Activity | specific orthopedic recovery |
| Zone-by | zone breakdown: |
| Anaerobic | actual vs prescribed |
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.
Workers, KV, R2 and D1 by conversation — Cloudflare's official remote servers for building and observability.
Dashboards, Prometheus and Loki queries, incidents and alerts — observability by conversation.
Errors with full context — stack traces, issue triage and AI-powered root-cause analysis from Sentry's server.
Connect Flutter applications with AI coding assistants via the Model Context Protocol.
Enables natural language interaction with Splunk Enterprise and Cloud for searching data and managing resources.