MCP Sports Coach
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Sports Coach Get my weekly workout summary from Strava."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Sports Coach — Strava & Garmin
Serveur MCP (Model Context Protocol) qui connecte Claude aux comptes Strava et Garmin Connect pour analyser les activités sportives, le sommeil, la récupération et bien plus.
Outils disponibles
Strava
Outil | Description |
| Connexion OAuth Strava (à faire une seule fois) |
| Profil, ville, followers, FTP, poids |
| Dernières N activités (distance, durée, FC, D+) |
| Volume, temps total et types d'activités de la semaine |
| Détail complet d'une activité par ID |
Garmin Connect
Outil | Description |
| Vérifie si le compte Garmin est connecté |
| Dernières N activités Garmin |
| Données de sommeil (total, profond, REM, score) |
| Body Battery sur N jours |
| Variabilité cardiaque (HRV) sur N jours |
Related MCP server: Intervals.icu MCP Server
Installation
Prérequis
Python 3.12+
uv (gestionnaire de paquets)
Un compte Strava avec une application enregistrée sur strava.com/settings/api
1. Cloner et installer
git clone https://github.com/Naten79/mcp-strava.git
cd mcp-strava
uv sync2. Configurer les credentials Strava
Copier .env.example en .env et renseigner les credentials Strava :
cp .env.example .envSTRAVA_CLIENT_ID=client_id
STRAVA_CLIENT_SECRET=client_secretCes valeurs sont disponibles sur strava.com/settings/api. Régler l'Authorization Callback Domain sur
localhost.
3. (Optionnel) Authentifier Garmin
Lancer ce script une seule fois en terminal pour sauvegarder le token Garmin localement :
uv run garmin_login.pyLes identifiants Garmin ne transitent jamais par Claude.
4. Configurer Claude Desktop
Ajouter la configuration suivante dans claude_desktop_config.json :
{
"mcpServers": {
"sports-coach": {
"command": "uv",
"args": ["run", "python", "strava_mcp.py"],
"cwd": "/chemin/vers/mcp-strava"
}
}
}5. Authentifier Strava dans Claude
Au premier lancement, utiliser l'outil authenticate dans Claude. Une fenêtre Strava s'ouvre pour autoriser l'accès, puis le token est sauvegardé localement.
Sécurité
Le fichier
.env(credentials API) n'est jamais commitéLes tokens OAuth (
strava_token.json,garth_tokens/) restent en local uniquementLes identifiants Garmin ne sont jamais envoyés à Claude, seulement au serveur Garmin
Stack
MCP Python SDK — FastMCP
httpx — requêtes HTTP async
garminconnect — API Garmin non-officielle
python-dotenv — gestion des variables d'environnement
Available Tools
10 toolsauthenticateA
Connecte ton compte Strava via OAuth. À lancer une seule fois.
Inputs: no named parameters. Returns: result
garmin_statusA
Vérifie si le compte Garmin est connecté. Si non, indique comment s'authentifier.
Inputs: no named parameters. Returns: result
get_activity_detailB
Détail complet d'une activité (allure, FC, puissance, segments...).
Inputs: activity_id (required). Returns: result
get_athleteA
Récupère ton profil Strava (nom, localisation, stats globales).
Inputs: no named parameters. Returns: result
get_garmin_activitiesB
Récupère les dernières activités Garmin Connect. nb : nombre (défaut 10, max 50).
Inputs: nb. Returns: result
get_garmin_body_batteryB
Body Battery Garmin des N derniers jours (charge/décharge).
Inputs: days. Returns: result
get_garmin_hrvB
Variabilité cardiaque (HRV) Garmin des N derniers jours.
Inputs: days. Returns: result
get_garmin_sleepA
Données de sommeil Garmin des N derniers jours (total, profond, REM, score).
Inputs: days. Returns: result
get_recent_activitiesB
Récupère les dernières activités Strava.
nb : nombre d'activités à récupérer (défaut 10, max 50)
Inputs: nb. Returns: result
get_weekly_summaryA
Résumé de la semaine en cours : volume, temps, types d'activités.
Inputs: no named parameters. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
All tools have clearly distinct purposes: authentication tools for Strava and Garmin are separate, and data retrieval tools target different entities (activities, athlete profile, Garmin metrics). No overlapping functionality.
Most tools follow the 'get_' prefix pattern, but 'authenticate' and 'garmin_status' break this pattern. Apart from that, naming is consistent and readable.
10 tools is well-scoped for a sports coach server that interfaces with two platforms, covering authentication, profile, recent activities, detailed activity, and various Garmin health metrics.
The tool set covers core functionalities (profile, activities, health metrics) but lacks features like historical trend analysis or Garmin activity detail beyond listing. Minor gaps exist but do not severely hinder usage.
Maintenance
Related MCP Connectors
Ask your AI about your fitness: activities and data from Garmin, COROS, Strava, GPX and more
Explore Garmin activity and health data with your AI assistant.
Garmin watch data for AI assistants: activities, sleep, HRV, recovery. Never writes to Garmin.
Your Garmin, Oura, WHOOP, Hevy and 35 more fitness apps, queryable from your own AI.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables users to interact with their Strava data through natural language to analyze workouts, track fitness progress, and explore routes. It supports retrieving detailed activity stats, heart rate data, and segment insights directly within AI assistants.26538 npmMIT
- AlicenseAqualityDmaintenanceEnables interaction with Intervals.icu data, including activities, wellness, and calendar events, via natural language.1017 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying and analyzing personal Strava activity data through natural language, including activities, segments, gear, and training trends.-
- FlicenseNot gradedqualityDmaintenanceEnables querying your Garmin Connect data including recent activities, detailed metrics, and daily stats through natural language.-