Connect Your AI Agent with Strava for Slack

Integrate Strava MCP server into your Slack workspace for instant access to your AI agent.

No credit card neededOr, book a demo
Documentation
Back to MCP Servers
Strava
Strava
Designed by athletes, for athletes, Strava's mobile app and website connect millions of runners and cyclists through the sports they love.

Categories

Entertainment

Available Tools

Tools that your AI agent can use through this MCP server to interact with Strava

Update Activity

Update fields on an existing Strava activity owned by the authenticated athlete. Use Search Activities first to resolve a name to an activityId. Only fields you provide are updated; omitted fields are left unchanged. sportType uses Strava's modern sport_type enum (not the legacy type field). See the documentation

Search Activities

Search and list the authenticated athlete's Strava activities, ordered most-recent first. Use the before and after epoch parameters to scope a time window. Set after to fetch only activities since a known timestamp (efficient delta sync). For real-time activity notifications, prefer the Activity Created, Activity Updated, or Activity Deleted webhook sources over polling this tool. Cross-references: use Get Activity to fetch a single activity's full details, Get Activity Laps for lap breakdowns, Get Activity Comments for comments, Get Activity Kudoers for kudos. Strava read rate limits: 600 / 15 min and 30,000 / day per application. Large unfiltered fetches consume quota — prefer after for incremental work. See the documentation

Get Stats

Returns the activity stats of an athlete. Only includes data from activities set to Everyone visibilty. See the docs

Get Authenticated Athlete

Identity tool for Strava — returns the currently authenticated athlete (summary representation including id, firstname, lastname, profile photo). Use this whenever you need to know who the connected user is, or to surface the athlete ID for downstream tools. Note: a detailed athlete representation requires the profile:read_all scope, which is not configured for this connector. This tool returns the summary representation. See the documentation

Get Athlete Stats

Get the authenticated athlete's recent, year-to-date, and all-time stats — including totals for runs, rides, and swims. By default, resolves the authenticated athlete's ID automatically (no input needed). Pass athleteId to look up another athlete's publicly-visible stats instead. Stats only include activities the requesting user has permission to view. For private activities of another athlete, results will be limited. See the documentation

Get Activity

Fetch a single Strava activity by ID with full detail. Use Search Activities first to resolve an activity name to an activityId. Set includeAllEfforts to true to include all segment efforts (slower, larger response — leave false for most reads). For sub-resources (comments, kudos, laps), use the dedicated tools: Get Activity Comments, Get Activity Kudoers, Get Activity Laps. See the documentation

Get Activity List

Returns the activities of an athlete for a specific identifier. See the docs

Get Activity Laps

Return the lap-level breakdown for a Strava activity (split times, distances, average speeds, heart rate per lap). Use Search Activities first to resolve a name to an activityId. Note: manually-created activities and some sport types may have no laps; the response will be an empty array in that case (not an error). Returns { laps, _rateLimitUsage }_rateLimitUsage includes Strava's X-RateLimit-Usage and X-ReadRateLimit-Usage so flows can observe approach to the rate-limit cap. See the documentation

Get Activity Kudoers

Return the athletes who gave kudos to a Strava activity. Use Search Activities first to resolve a name to an activityId. Empty array if no one has kudosed the activity. Returns { kudoers, _rateLimitUsage }_rateLimitUsage exposes Strava's rate-limit headers for observability. See the documentation

Get Activity Comments

Return comments on a Strava activity. Use Search Activities first to resolve a name to an activityId. Use pageSize to control the per-page result count (Strava default and max apply). Empty array if no one has commented. Returns { comments, _rateLimitUsage }_rateLimitUsage exposes Strava's rate-limit headers for observability. See the documentation

Get Activity By ID

Returns the given activity that is owned by the authenticated athlete. See the docs

Create Activity

Create a manual activity on Strava (logging a workout you did without a tracking device). For uploading activity files (GPX / TCX / FIT), use Strava's upload endpoint — not exposed by this connector. Pass sportType from Strava's documented sport_type enum (modern field, replaces legacy type). Common values: Run, Ride, Hike, Swim, Walk, Workout, Yoga. startDateLocal must be ISO 8601 in the athlete's local time with timezone offset or Z for UTC. Example: 2026-05-15T07:00:00Z. See the documentation