MCP Server Documentation

Connect Coach Leo to Claude, ChatGPT, or any MCP-compatible AI assistant.

Overview

Coach Leo is a personal AI running coach that operates as a remote MCP (Model Context Protocol) server. It connects to your Strava account and provides science-backed training guidance through 12 specialized coaching tools.

When you connect Coach Leo to an AI assistant, the assistant becomes your running coach — it can analyze your workouts, build training plans, monitor your training signals, manage your shoes, and prepare you for races, all grounded in a scientific knowledge base of sports science literature.

How to connect

Coach Leo uses Streamable HTTP transport with OAuth 2.1 authentication and Dynamic Client Registration (DCR).

Server URL

https://mcp.coachleo.ai/mcp

In Claude:

  1. Open Settings > Connectors
  2. Click "Add custom connector"
  3. Enter the server URL: https://mcp.coachleo.ai/mcp
  4. Click Connect — you will be redirected to sign in or create a Coach Leo account
  5. After authentication, Coach Leo's tools are available in your conversation

Requirements

  • A Coach Leo account with an active subscription (7-day free trial available at coachleo.ai)
  • A connected Strava account (required during onboarding to sync your activities)

Authentication

The server implements the full OAuth 2.1 Authorization Server specification:

  • Discovery: /.well-known/oauth-authorization-server
  • Dynamic Client Registration: POST /register
  • Authorization: GET /authorize (redirects to Coach Leo login)
  • Token exchange: POST /token (PKCE with S256)
  • Token refresh: supported with automatic rotation
  • Revocation: POST /revoke

Clients register dynamically via DCR. No static client ID or secret is required.

Tools (12)

Coach Leo exposes 12 tools organized around the STRAP pattern (most tools accept an action parameter with optional data). All tools include MCP annotations (readOnlyHint, destructiveHint, openWorldHint). No tool is destructive — all writes are additive.

get_coaching_briefingread-only

Returns the runner's complete coaching context: profile, latest activity, today's planned session, training load trends (ACWR), target race, active body signal alerts, readiness data, recent coaching decisions, and running character status. Must be called at the start of every conversation.

manage_athlete

Manage the runner's profile and running character.

  • -get_profile — full biometrics, running form data, shoe collection, coaching preferences, training history
  • -update_profile — update any profile field including coaching preferences (communication style, training philosophy, intensity preference, rest philosophy, cross-training role, signal alert threshold, fatigue perception bias)
  • -get_character — retrieve running character data (requires 7+ days and 5+ activities for eligibility)
  • -recalculate_character — recompute character from real activity patterns (called during weekly reviews)
manage_activities

Access and annotate the runner's training activities synced from Strava.

  • -query — search activity history with filters: date range, sport type (run, trail_run, ride, mountain_bike, nordic_ski), training impact (primary, cross_aerobic, cross_muscular, cross_recovery)
  • -get_detail — full activity details including metrics, heart rate zones, pace splits, and GPX summary
  • -record_feedback — record post-workout subjective feedback: perceived effort (1-10), sensations, notes, shoe worn
manage_training

Manage training plans and individual sessions.

  • -get_plan — retrieve the active training plan with the next 14 days of scheduled sessions
  • -create_plan — build a new structured plan with daily sessions (date, type, title, description, target duration). The knowledge base is always consulted first for training methodology.
  • -update_session — mark a session as completed, skipped, or modified, with optional adaptation reason and link to the completed Strava activity
track_body_signals

Track athletic body signals and daily readiness for training optimization.

  • -record_observation — log training-related feedback: tightness, soreness, asymmetry with body area, severity (info/watch/warning/alert), terrain context, AI interpretation, scientific references, and recommended actions
  • -record_physical_setback — record a confirmed physical setback with start date, severity (minor/moderate/severe), type, probable cause, and recovery action
  • -record_readiness — daily readiness check-in: sleep hours, sleep quality, energy level, mood, stress level, muscle soreness, resting heart rate
manage_shoes

Manage the runner's shoe collection with wear tracking and inspections.

  • -add — register a new shoe (brand, model, category: trail/road/mixed, estimated lifetime, Strava gear ID)
  • -update — modify shoe details
  • -retire — mark a shoe as end-of-life
  • -inspect — record a zone-by-zone wear inspection (outsole, midsole lateral, midsole medial, upper, heel, insole) with visual score (1-10), observations, AI analysis, and estimated remaining life
  • -stats — shoe statistics: total km, inspections history, estimated remaining life
  • -link — auto-link shoes to activities via Strava gear IDs
manage_races

Manage races from discovery to post-race report.

  • -list — get all races by status (planned, completed, DNS, DNF)
  • -add — register a race with distance, elevation, terrain type, goal, role (objectif/préparatoire/découverte), and optional parent race for preparation hierarchy
  • -update — modify race details
  • -report — record race results: finish time, notes, full race report
search_knowledge

Access and enrich the scientific knowledge base. Consulted before every training recommendation, body signal analysis, or running form advice.

  • -search — hybrid semantic + full-text search across categories: training methodology, overtraining prevention, trail specific, running form, nutrition & recovery, psychology, cross-training
  • -list_sources — browse documents by category and tier (T1 peer-reviewed, T2 expert, personalized)
  • -ingest — add a new scientific document with automatic chunking and embedding
  • -record_gap — log a missing topic when search returns no relevant results
  • -list_gaps — view knowledge gaps by status (open, researching, resolved)
  • -resolve_gap — mark a gap as resolved with linked documents
coaching_memory

Persistent coaching memory across sessions. Ensures continuity and prevents contradictory advice.

  • -log_conversation — save a coaching exchange with topic (onboarding, plan adaptation, body signal analysis, overtraining prevention, weekly review, race prep), summary, decisions, and actions
  • -search_history — search past coaching decisions, activities, and training observations by date range and scope
estimate_vo2max

Estimate VO2max using three scientific methods: ACSM Running Equation, Jack Daniels VDOT, and HR-Pace regression. Analyzes the last 12 weeks of running activities, detects real max HR from data, and optionally saves the estimate to the runner's profile.

analyze_gpxread-only

Parse and analyze a GPX file: generates an elevation profile, identifies climb/descent/flat segments with gradient analysis, and calculates a terrain diversity score. Can be linked to an activity for persistent storage.

get_skill_workflowread-only

Load a detailed coaching workflow with step-by-step instructions, tool call sequences, and knowledge base queries. Available workflows: onboarding, post-activity analysis, body signal analysis, overtraining monitor, weekly review, adaptive training plan, race planning, deep research, GPX pattern analysis, shoe wear analysis, character reveal.

Coaching Workflows

Beyond individual tools, Coach Leo orchestrates complex coaching scenarios through 11 predefined workflows. Each workflow defines the exact sequence of tool calls, knowledge base queries, and decision logic for a specific coaching situation:

  • Onboarding — guide new runners through initial profile setup, Strava connection, and first coaching conversation
  • Post-activity analysis — structured debrief after a workout: activity metrics, subjective feedback collection, knowledge base consultation, training signal recording
  • Body signal analysis — analyze reported discomfort, tightness, or unusual feelings with scientific context and severity assessment
  • Overtraining monitor — detect overtraining risk from training load spikes, recurring discomfort patterns, and running form signals
  • Weekly review — comprehensive training week summary: volume analysis, plan adherence, readiness trends, character recalculation, memory logging
  • Adaptive training plan — create or modify a periodized plan based on race goals, available time, current fitness, training philosophy, and cross-training integration
  • Race planning — full race lifecycle from discovery to post-race report, including preparation race hierarchy and course analysis
  • Deep research — enrich the knowledge base with new scientific literature on a specific topic
  • GPX pattern analysis — detailed course analysis from GPX data for race strategy and training adjustments
  • Shoe wear analysis — zone-by-zone inspection workflow with replacement timing recommendations
  • Character reveal — ceremonial running character reveal when the runner reaches eligibility (7+ days, 5+ activities)

Multi-sport support

Coach Leo tracks five sport types from Strava, each classified by training impact:

  • Run & Trail run — primary training (full metrics: pace, cadence, HR zones, elevation)
  • Ride — cross-training aerobic
  • Mountain bike — cross-training muscular
  • Nordic ski — cross-training aerobic

Cross-training sessions are integrated into training plans as strategic or complementary blocks depending on the runner's coaching preferences.

Data and privacy

  • All data is stored in a PostgreSQL database hosted in Germany (Hetzner, EU)
  • All connections use HTTPS/TLS encryption
  • Strava data is read-only — Coach Leo never modifies your Strava account
  • Each user's data is strictly isolated — no cross-user data sharing
  • GDPR compliant with full data export and deletion support
  • No data is used for AI model training

Full privacy policy: coachleo.ai/privacy

Support

For questions, issues, or feedback: [email protected]