Skip to main content
Glama
MCP Sports Coach
by Naten79

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

authenticate

Connexion OAuth Strava (à faire une seule fois)

get_athlete

Profil, ville, followers, FTP, poids

get_recent_activities

Dernières N activités (distance, durée, FC, D+)

get_weekly_summary

Volume, temps total et types d'activités de la semaine

get_activity_detail

Détail complet d'une activité par ID

Garmin Connect

Outil

Description

garmin_status

Vérifie si le compte Garmin est connecté

get_garmin_activities

Dernières N activités Garmin

get_garmin_sleep

Données de sommeil (total, profond, REM, score)

get_garmin_body_battery

Body Battery sur N jours

get_garmin_hrv

Variabilité cardiaque (HRV) sur N jours

Related MCP server: Intervals.icu MCP Server

Installation

Prérequis

1. Cloner et installer

git clone https://github.com/Naten79/mcp-strava.git
cd mcp-strava
uv sync

2. Configurer les credentials Strava

Copier .env.example en .env et renseigner les credentials Strava :

cp .env.example .env
STRAVA_CLIENT_ID=client_id
STRAVA_CLIENT_SECRET=client_secret

Ces 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.py

Les 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 uniquement

  • Les identifiants Garmin ne sont jamais envoyés à Claude, seulement au serveur Garmin

Stack

Available Tools

10 tools
authenticateA

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

    A3.7/5.0

    Scored across 10 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    Most tools follow the 'get_' prefix pattern, but 'authenticate' and 'garmin_status' break this pattern. Apart from that, naming is consistent and readable.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers