Strava MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STRAVA_CLIENT_ID | Yes | Your Strava API client ID | |
| STRAVA_CLIENT_SECRET | Yes | Your Strava API client secret | |
| STRAVA_REFRESH_TOKEN | Yes | Your Strava API refresh token obtained via OAuth |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_activityA | Create a manual activity on Strava. Requires activity:write scope. Args: name: The name of the activity. sport_type: Sport type, e.g. Run, Ride, Swim, Hike, Walk, MountainBikeRide, GravelRide, TrailRun, Yoga, WeightTraining, Workout, etc. start_date_local: Start time in ISO 8601 format (e.g. 2025-03-07T08:00:00). elapsed_time: Total elapsed time in seconds. description: Optional description. distance: Distance in meters. Optional for non-GPS activities. trainer: Set True if this is a trainer/indoor activity. commute: Set True if this is a commute. |
| get_activityA | Get full details for a specific activity including splits, segment efforts, laps, gear, description, and map data. Args: activity_id: The numeric Strava activity ID. include_all_efforts: If True, include all segment efforts (not just notable ones). |
| get_activity_commentsA | Get comments on a specific activity. Args: activity_id: The Strava activity ID. page_size: Number of comments per page (default 30). |
| get_activity_kudoersC | Get the list of athletes who gave kudos on an activity. Args: activity_id: The Strava activity ID. page: Page number (default 1). per_page: Items per page (default 30). |
| get_activity_lapsA | Get lap-by-lap breakdown for a specific activity. Useful for interval workouts and structured training sessions. Args: activity_id: The numeric Strava activity ID. |
| get_recent_activitiesA | Get the most recent activities from your Strava account. Args: count: Number of activities to return (1-200, default 10). |
| get_activities_by_dateA | Get activities within a specific date range. Args: after: Start date in YYYY-MM-DD format (inclusive). before: End date in YYYY-MM-DD format (inclusive). count: Max activities to return (1-200, default 50). |
| get_activity_zonesA | Get heart rate and power zones for a specific activity. Shows time spent in each zone. Requires Strava Summit. Args: activity_id: The Strava activity ID. |
| update_activityA | Update an existing activity. Requires activity:write scope. Only provide the fields you want to change. Args: activity_id: The Strava activity ID to update. name: New name for the activity. sport_type: New sport type (e.g. Run, Ride, Swim). description: New description. trainer: Set True/False for trainer flag. commute: Set True/False for commute flag. gear_id: ID of gear to associate (e.g. "b12345"). Use "none" to remove. |
| get_athlete_profileA | Get the authenticated athlete's full Strava profile. Returns name, bio, location, weight, FTP, bikes, shoes, premium status, and measurement preferences. |
| get_athlete_zonesA | Get the authenticated athlete's heart rate and power zones. Returns zone boundaries and distribution data. Requires profile:read_all scope. |
| get_athlete_statsA | Get all-time and recent statistics for the authenticated athlete. Includes totals for running, cycling, and swimming broken down by recent (last 4 weeks), year-to-date, and all-time. |
| update_athlete_weightC | Update the authenticated athlete's weight. Args: weight_kg: Athlete's weight in kilograms. |
| get_my_clubsA | List all clubs the authenticated athlete is a member of. Args: page: Page number (default 1). per_page: Items per page (default 30). |
| get_clubC | Get detailed information about a specific club. Args: club_id: The Strava club ID. |
| get_club_membersB | List members of a specific club. Args: club_id: The Strava club ID. page: Page number (default 1). per_page: Items per page (default 30). |
| get_club_adminsB | List administrators of a specific club. Args: club_id: The Strava club ID. page: Page number (default 1). per_page: Items per page (default 30). |
| get_club_activitiesB | List recent activities posted by members of a specific club. Args: club_id: The Strava club ID. page: Page number (default 1). per_page: Items per page (default 30). |
| get_gearB | Get details about a specific piece of gear (bike or shoes). Gear IDs start with 'b' for bikes and 'g' for shoes. Args: gear_id: The gear ID (e.g. "b12345" for a bike, "g12345" for shoes). |
| get_my_routesA | List the authenticated athlete's saved routes. Args: page: Page number (default 1). per_page: Items per page (default 30). |
| get_routeC | Get detailed information about a specific route. Args: route_id: The Strava route ID. |
| export_route_gpxB | Export a route as GPX XML data for use in GPS devices or other apps. Args: route_id: The Strava route ID. |
| export_route_tcxC | Export a route as TCX XML data for use in GPS devices or other apps. Args: route_id: The Strava route ID. |
| explore_segmentsA | Find popular segments within a geographic bounding box. Args: south_west_lat: South-west corner latitude. south_west_lng: South-west corner longitude. north_east_lat: North-east corner latitude. north_east_lng: North-east corner longitude. activity_type: "riding" or "running" (default "riding"). min_cat: Minimum climb category 0-5 (default 0). max_cat: Maximum climb category 0-5 (default 5). |
| get_starred_segmentsB | List the authenticated athlete's starred segments. Args: page: Page number (default 1). per_page: Items per page (default 30). |
| get_segmentB | Get detailed info about a segment: distance, grade, elevation, location, star count, effort count, and your PR. Args: segment_id: The Strava segment ID. |
| star_segmentC | Star or unstar a segment. Args: segment_id: The Strava segment ID. starred: True to star, False to unstar. |
| get_segment_effortsA | List your efforts on a specific segment. Optionally filter by date range. Args: segment_id: The Strava segment ID. start_date_local: Optional start date (ISO 8601, e.g. 2025-01-01T00:00:00Z). end_date_local: Optional end date (ISO 8601). per_page: Items per page (default 30). |
| get_segment_effortB | Get detailed information about a specific segment effort. Args: effort_id: The segment effort ID. |
| get_activity_streamsA | Get time-series stream data for an activity. Returns arrays of second-by-second data for heart rate, speed, power, cadence, altitude, GPS coordinates, temperature, and grade. Args: activity_id: The Strava activity ID. keys: Comma-separated stream types. Available: time, distance, latlng, altitude, velocity_smooth, heartrate, cadence, watts, temp, moving, grade_smooth. Defaults to all. |
| get_route_streamsC | Get stream data for a route (distance, altitude, latlng). Args: route_id: The Strava route ID. |
| get_segment_effort_streamsB | Get time-series stream data for a specific segment effort. Args: effort_id: The segment effort ID. keys: Comma-separated stream types (same as activity streams). |
| get_segment_streamsC | Get stream data for a segment (distance, altitude, latlng). Args: segment_id: The Strava segment ID. |
| get_upload_statusA | Check the processing status of an activity upload. Args: upload_id: The upload ID returned from a previous upload. |
| get_activities_by_typeA | Get recent activities filtered by sport type. Args: sport_type: Run, Ride, Swim, Walk, Hike, TrailRun, MountainBikeRide, GravelRide, VirtualRide, Yoga, etc. count: Number of recent activities to search through (max 200). |
| weekly_summaryA | Summary of all activities from the past 7 days. Total distance, time, elevation, and calories by sport type. |
| monthly_summaryA | Summary of all activities from the past 30 days. Total distance, time, elevation, and calories by sport type. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/manojanasuri16/STRAVA-MCP-SERVER'
If you have feedback or need assistance with the MCP directory API, please join our Discord server