Strava MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STRAVA_CLIENT_ID | No | Your Strava application Client ID (optional) | |
| STRAVA_ACCESS_TOKEN | Yes | Your Strava access token (required) | |
| STRAVA_CLIENT_SECRET | No | Your Strava application Client Secret (optional) | |
| STRAVA_REFRESH_TOKEN | No | Your refresh token (optional, for token renewal) |
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
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_athlete_profileB | Get the authenticated athlete's profile information including name, stats, and preferences |
| get_athlete_statsB | Get detailed statistics for the authenticated athlete including totals and recent activity counts |
| list_activitiesB | List the authenticated athlete's activities. Returns up to 30 activities by default. |
| get_activityC | Get detailed information about a specific activity by ID |
| get_segmentC | Get detailed information about a specific segment by ID |
| list_starred_segmentsB | List segments starred by the authenticated athlete |
| explore_segmentsC | Explore segments in a given area. Returns the top 10 segments matching the search criteria. |
| get_segment_effortsC | Get efforts on a specific segment |
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 8 tools
Each tool has a clearly distinct purpose targeting specific resources and actions in the Strava domain. For example, get_activity retrieves a single activity by ID, while list_activities lists multiple activities; explore_segments searches segments by area, while get_segment gets a specific segment by ID. There is no overlap or ambiguity in functionality.
All tool names follow a consistent verb_noun pattern with snake_case, such as get_activity, list_activities, explore_segments, and get_segment_efforts. This uniformity makes the tool set predictable and easy to understand for agents.
With 8 tools, the server is well-scoped for interacting with Strava's API, covering athlete profiles, activities, and segments without being overwhelming. Each tool serves a distinct and necessary function, such as retrieving data or listing resources, making the count appropriate for the domain.
The tool set provides strong coverage for reading athlete data, activities, and segments, including CRUD-like operations like get and list. However, there are minor gaps, such as no tools for creating or updating activities or segments, which might limit full lifecycle management but are not critical for common query-focused workflows.