MCP Sports Coach
Click on "Install 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 CoachGet 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior fully. It mentions OAuth, implying user redirection and token handling, but does not explain side effects (e.g., whether tokens are stored, if the tool is reusable, or error states). For a one-time setup, this is insufficient detail.
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 extremely concise (one line) and front-loaded with the key action. Every word is meaningful; the phrase 'À lancer une seule fois' adds valuable usage context without redundancy.
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's low complexity (one-time OAuth auth), the description is largely complete. It covers the core action and usage frequency. However, it lacks details on failure modes or re-authentication, and the output schema is not described, but that is not required per instructions if output schema exists.
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?
There are zero parameters, so the input schema is fully covered. According to guidelines, baseline for 0 parameters is 4. The description does not need to add parameter details, and it correctly focuses on the action.
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 verb 'Connecte' (connect) and the resource 'ton compte Strava' (your Strava account) via OAuth. It explicitly distinguishes itself from sibling tools (data retrieval/analysis) by being an authentication step, and 'À lancer une seule fois' reinforces its one-time nature.
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?
The description provides usage guidance by stating 'À lancer une seule fois' (run only once), implying it is a setup step. However, it does not explicitly state when to use vs alternatives or mention prerequisites (e.g., having a Strava account). No sibling authentication tools exist, so differentiation is unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
garmin_statusA
Vérifie si le compte Garmin est connecté. Si non, indique comment s'authentifier.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool only reads status and provides guidance, indicating no side effects. However, it could be more precise about the form of authentication guidance.
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?
Two concise sentences, front-loaded with the main function, no wasted words.
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 zero parameters and the presence of an output schema, the description provides complete context for the tool's behavior. No further details are necessary.
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?
There are no parameters, so baseline is 4. The description does not need to add parameter details; it is sufficient.
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 checks Garmin account connection status and provides authentication guidance if disconnected. The verb 'vérifie' and resource 'compte Garmin' are specific, and it distinguishes from the sibling 'authenticate' tool.
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?
The description implies when to use (check connection status) and hints at alternative (use 'authenticate' if needed), but does not explicitly exclude other scenarios. This is adequate for a simple, parameterless tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activity_detailB
Détail complet d'une activité (allure, FC, puissance, segments...).
| Name | Required | Description | Default |
|---|---|---|---|
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states what data is returned, but does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. For a read tool, this is minimal burden but still incomplete.
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?
Single, front-loaded sentence with no wasted words. Every part adds value.
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?
Despite minimal annotations, the description lists example data types (pace, HR, power, segments) indicating scope. Output schema exists, so return values are defined elsewhere. Missing context like authentication or error handling, but acceptable for a simple get tool.
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 coverage is 0%, and the description does not elaborate on the activity_id parameter beyond implying it identifies an activity. No format or constraints are provided, adding little value beyond the parameter name.
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 indicates the tool returns a complete detail of an activity, including examples (pace, HR, power, segments). This distinguishes it from sibling list tools like get_recent_activities or get_garmin_activities.
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?
No explicit guidance on when to use this tool versus alternatives. While the name implies it's for a single activity, the description does not mention scope, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_athleteA
Récupère ton profil Strava (nom, localisation, stats globales).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose authentication requirements, rate limits, or side effects. For a read operation, it fails to state that no changes are made, leaving behavioral traits unclear.
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 a single, front-loaded sentence with no extraneous words. It is perfectly concise and structured efficiently for the AI agent.
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 no parameters and an output schema exists, the description is mostly complete. It identifies the key return fields. However, it could mention authentication context or the fact that it's read-only, which would improve completeness.
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?
There are no parameters (0 params), so schema coverage is trivially 100%. The description adds no parameter info, which is acceptable. Baseline for 0 params is 4, and the description provides useful context about return fields.
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 retrieves the Strava profile, specifying fields (name, location, global stats). It uses a specific verb 'Récupère' and resource 'profil Strava', distinguishing it from sibling tools like get_activity_detail.
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?
The description implies usage to fetch the authenticated user's profile ('ton profil'), but it lacks explicit guidance on when to use this tool versus alternatives, or any when-not scenarios. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_garmin_activitiesB
Récupère les dernières activités Garmin Connect. nb : nombre (défaut 10, max 50).
| Name | Required | Description | Default |
|---|---|---|---|
| nb | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries full burden for behavioral disclosure. It only mentions the parameter limit (max 50), but fails to disclose effects like requiring prior authentication, rate limits, or error behavior (e.g., if no activities found).
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 very concise (one sentence plus parameter note) and front-loads the core purpose. However, it lacks structure such as separate sections for arguments or examples, but is appropriately minimal for a simple tool.
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?
Despite having only one parameter and an output schema, the description does not explain the output structure, authentication dependency (given 'authenticate' sibling), or error scenarios. It provides minimum viable information but leaves gaps for an agent to infer.
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 description provides meaning for the single parameter 'nb' beyond the schema, specifying it controls the number of activities with default 10 and max 50. Since schema description coverage is 0%, this addition improves usability, though it remains brief.
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 verb 'Récupère' and resource 'activités Garmin Connect', specifying it retrieves the latest activities. However, it does not explicitly differentiate from sibling tools like 'get_recent_activities', which may have similar purpose.
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?
No usage guidance is provided. The description does not indicate when to use this tool versus alternatives, nor does it mention prerequisites like authentication with the 'authenticate' sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_garmin_body_batteryB
Body Battery Garmin des N derniers jours (charge/décharge).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only mentions the time range ('des N derniers jours') and charge/discharge states. It does not mention authentication requirements, data granularity, units, or any side effects. Given that this accesses personal health data, more behavioral context is needed.
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 a single, concise sentence that conveys the core purpose without any wasted words. It is appropriately front-loaded and efficient for its content.
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's simplicity (one parameter, output schema exists), the description is minimally adequate. The output schema covers return values, so that is not required. However, the lack of behavioral context (authentication, data detail) reduces completeness. It could benefit from mentioning that the data is historical and requires prior authentication via the authenticate sibling.
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 0%, so the description should add meaning to the 'days' parameter. The description implies the parameter controls the number of days ('N derniers jours'), but it does not explicitly reference the parameter or explain valid values, range, or behavior. It partially compensates for the lack of schema descriptions but leaves gaps.
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 'Body Battery Garmin des N derniers jours (charge/décharge)' clearly indicates the tool retrieves Garmin body battery data for a recent period. The verb 'get' is implied by the tool name, and the description specifies the resource and scope, distinguishing it from sibling tools like get_garmin_hrv or get_garmin_sleep. However, the description is a noun phrase rather than an explicit action statement.
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?
The description provides no guidance on when to use this tool versus alternatives such as get_garmin_hrv or get_garmin_sleep. It does not mention prerequisites, use cases, or when not to use it. The agent is left to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_garmin_hrvB
Variabilité cardiaque (HRV) Garmin des N derniers jours.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions returning HRV data but does not specify if it is read-only, authentication needs, rate limits, or any other behavioral traits.
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 a single short sentence, concise and front-loaded. However, it could be more structured to include additional information.
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 a simple tool with one parameter, an output schema, and no annotations, the description is adequate but lacks usage context and behavioral details. It meets minimal viability but has clear gaps.
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 single parameter 'days' has a default of 7 but no description in the schema. The description hints at 'N derniers jours' linking to the parameter but does not fully explain its meaning or constraints. Schema coverage is 0%, so the description should compensate, but does so minimally.
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 retrieves Garmin heart rate variability (HRV) for the last N days. It distinguishes from sibling tools like get_garmin_body_battery and get_garmin_sleep.
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?
No guidance on when to use this tool versus alternatives, no prerequisites or context provided. The description only states what it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_garmin_sleepA
Données de sommeil Garmin des N derniers jours (total, profond, REM, score).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It mentions the time range and data types but omits critical details: required authentication, potential limits on 'days', handling of missing data, and whether the output is summary or detailed. The lack of behavioral context beyond the basics makes it inadequate.
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 a single, front-loaded sentence with no waste. It efficiently communicates the tool's purpose and key parameter, making it easy to scan. Every word earns its place.
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?
For a simple tool with one parameter and an output schema (per context signals), the description covers the main data types and scope. It lacks mentions of authentication or error conditions but is functionally complete for basic usage. Minor gaps prevent a perfect score.
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?
With schema description coverage at 0%, the description compensates by explaining the 'days' parameter as 'des N derniers jours', adding meaning beyond the bare integer type and default. This single mention is clear and sufficient for the simple parameter.
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 it provides Garmin sleep data for the last N days, listing specific types (total, deep, REM, score). It effectively distinguishes from sibling tools like get_garmin_body_battery or get_garmin_hrv, which target different metrics.
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?
The description implies usage for retrieving sleep data but offers no explicit guidance on when to use versus alternatives (e.g., other sleep-related tools) or prerequisites like authentication. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| nb | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies a read operation and adds the nb parameter constraints, but lacks explicit safety or authentication context.
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?
Concise two-sentence description, though mixing French and English may reduce clarity for some agents. No redundant information.
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?
For a simple retrieval tool with one parameter and an output schema, description covers the parameter well but omits authentication hints and output format. Adequate but not comprehensive.
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 lacked parameter descriptions (0% coverage). Description adds useful semantics: default value (10) and maximum limit (50), aiding correct usage.
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?
Description clearly states it retrieves recent Strava activities, distinguishing from sibling tools like get_activity_detail (single activity) and get_athlete.
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?
No explicit guidance on when to use this tool vs. alternatives; only implied by 'recent.' No mention of prerequisites like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weekly_summaryA
Résumé de la semaine en cours : volume, temps, types d'activités.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, data freshness, or required permissions. It only states what the tool returns without any context on side effects or dependencies.
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 a single, complete sentence with no wasted words. It efficiently conveys the tool's purpose and scope.
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 there are no parameters and an output schema exists (which likely details return structure), the description suffices for a simple summary tool. However, it could mention whether the summary is cumulative or per-day, but overall it is 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?
The tool has no parameters, and the input schema provides no information. The description adds meaning by specifying the scope ('current week') and content ('volume, time, types'), which is valuable beyond the empty schema.
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 that the tool provides a summary of the current week including volume, time, and activity types. It uses a specific verb ('Résumé') and resource ('semaine en cours'), and distinguishes itself from sibling tools that focus on individual activities or other metrics.
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?
The description implies usage for obtaining a weekly summary but does not explicitly state when to use this tool versus alternatives like get_recent_activities or get_garmin_activities. No exclusions or comparison with siblings are provided.
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. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
authenticate - First observed
garmin_status - First observed
get_activity_detail - First observed
get_athlete - First observed
get_garmin_activities - First observed
get_garmin_body_battery - First observed
get_garmin_hrv - First observed
get_garmin_sleep - First observed
get_recent_activities - First observed
get_weekly_summary
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
- freddyOAuthcoach.freddy
Connect your wearables, rings and training apps, then ask your AI about your own health data.
Query workouts, browse exercises, and explore fitness data from BearTrail
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.26445MIT
- AlicenseAqualityDmaintenanceEnables interaction with Intervals.icu data, including activities, wellness, and calendar events, via natural language.10211MIT
- FlicenseNot gradedqualityBmaintenanceEnables querying and analyzing personal Strava activity data through natural language, including activities, segments, gear, and training trends.-
- FlicenseNot gradedqualityCmaintenanceEnables querying your Garmin Connect data including recent activities, detailed metrics, and daily stats through natural language.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Naten79/mcp-strava'
If you have feedback or need assistance with the MCP directory API, please join our Discord server