Strava MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STRAVA_CLIENT_ID | Yes | Your Strava application Client ID | |
| STRAVA_EXPIRES_AT | Yes | The expiration timestamp for the access token | |
| STRAVA_ACCESS_TOKEN | Yes | Your Strava OAuth access token | |
| STRAVA_CLIENT_SECRET | Yes | Your Strava application Client Secret | |
| STRAVA_REFRESH_TOKEN | Yes | Your Strava OAuth refresh token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_activitiesA | Get logged-in athlete activities with optional filters. Use minimal=true for large datasets to reduce context usage. |
| get_activityB | Get detailed information about a specific activity by ID. Use minimal=true to reduce context usage. |
| create_activityC | Create a new manual activity |
| update_activityC | Update an existing activity |
| delete_activityC | Delete an activity |
| get_activity_streamsC | Get activity streams (GPS, heart rate, power, cadence, etc.) |
| get_activity_commentsC | Get comments for an activity |
| get_activity_kudosC | Get kudos for an activity |
| get_athleteB | Get the authenticated athlete profile |
| get_athlete_statsC | Get athlete statistics (totals and recent activities) |
| get_athlete_zonesB | Get athlete zones (heart rate and power zones) |
| get_routesC | Get athlete routes |
| get_routeC | Get detailed information about a specific route |
| get_starred_segmentsC | Get athlete starred segments |
| get_segmentC | Get detailed information about a specific segment |
| get_segment_leaderboardC | Get segment leaderboard with optional filters |
| explore_segmentsC | Explore segments in a geographic area |
| get_athlete_clubsC | Get clubs the authenticated athlete belongs to |
| get_clubC | Get detailed information about a specific club |
| get_club_membersC | Get members of a club |
| get_club_activitiesC | Get recent activities from club members |
| get_gearB | Get detailed information about a specific piece of gear (bike, shoes, etc.) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Every tool has a clearly distinct purpose targeting specific resources (activities, athlete, clubs, gear, routes, segments) and actions (get, create, update, delete, explore). There is no overlap or ambiguity between tools, making it easy for an agent to select the correct one.
All tools follow a consistent verb_noun pattern (e.g., get_activity, create_activity, update_activity) with no deviations. The naming is uniform throughout, using snake_case and clear action-resource combinations.
With 22 tools, the count is slightly high but reasonable for the Strava domain, which covers activities, athlete data, clubs, gear, routes, and segments. It provides comprehensive coverage without being excessive, though it borders on the heavy side.
The tool set offers complete CRUD/lifecycle coverage for key resources like activities (create, get, update, delete) and extensive read operations for athlete, clubs, gear, routes, and segments. There are no obvious gaps, supporting full agent workflows in the Strava ecosystem.