Strava integration for AI agents.
Strava integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Strava tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.
Real Strava actions, managed and audited.
Your user connects Strava once; your agent can then use the Strava API to manage athlete profiles, activities, routes, segments, clubs, streams, uploads, and workout data — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.
- 1
Your user grants Strava access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
Supported Strava tools.
34 tools are generated from the published Strava catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.
Showing 34 tools. All published catalog entries are included in this page's server-rendered HTML.
- Create an Activity
- Creates a manual activity for an athlete, requires activity:write scope.
- Activities
- Upload Activity
- Uploads a new data file to create an activity from. Requires activity:write scope.
- Uploads
- Explore segments
- Returns the top 10 segments matching a specified query.
- Segments
- Get Activity
- Returns the given activity that is owned by the authenticated athlete. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities. We strongly encourage you to display the appropriate attribution that identifies Garmin as the data source and the device name in your application. Please see example below from VeloViewer (that provides an attribution for a Garmin Forerunner device). 
- Activities
- Get Activity Streams
- Returns the given activity's streams. Requires activity:read scope. Requires activity:read_all scope for Only Me activities.
- Streams
- List Club Activities
- Retrieve recent activities from members of a specific club. The authenticated athlete must belong to the requested club in order to hit this endpoint. Pagination is supported. Athlete profile visibility is respected for all activities.
- Clubs
- List Club Administrators
- Returns a list of the administrators of a given club.
- Clubs
- Get Club
- Returns a given a club using its identifier.
- Clubs
- List Club Members
- Returns a list of the athletes who are members of a given club.
- Clubs
- List Activity Comments
- Returns the comments on the given activity. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities.
- Activities
- List Segment Efforts
- Returns a set of the authenticated athlete's segment efforts for a given segment. Requires subscription.
- SegmentEfforts
- Get Equipment
- Returns an equipment using its identifier.
- Gears
- List Activity Kudoers
- Returns the athletes who kudoed an activity identified by an identifier. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities.
- Activities
- List Activity Laps
- Returns the laps of an activity identified by an identifier. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities.
- Activities
- Get Authenticated Athlete
- Returns the currently authenticated athlete. Tokens with profile:read_all scope will receive a detailed athlete representation; all others will receive a summary representation.
- Athletes
- List Athlete Activities
- Returns the activities of an athlete for a specific identifier. Requires activity:read. Only Me activities will be filtered out unless requested by a token with activity:read_all.
- Activities
- List Athlete Clubs
- Returns a list of the clubs whose membership includes the authenticated athlete.
- Clubs
- List Starred Segments
- List of the authenticated athlete's starred segments. Private segments are filtered out unless requested by a token with read_all scope.
- Segments
- Get Zones
- Returns the the authenticated athlete's heart rate and power zones. Requires profile:read_all.
- Athletes
- Export Route GPX
- Returns a GPX file of the route. Requires read_all scope for private routes.
- Routes
- Export Route TCX
- Returns a TCX file of the route. Requires read_all scope for private routes.
- Routes
- Get Route
- Returns a route using its identifier. Requires read_all scope for private routes.
- Routes
- Get Route Streams
- Returns the given route's streams. Requires read_all scope for private routes.
- Streams
- List Athlete Routes
- Returns a list of the routes created by the authenticated athlete. Private routes are filtered out unless requested by a token with read_all scope.
- Routes
- Get Segment
- Returns the specified segment. read_all scope required in order to retrieve athlete-specific segment information, or to retrieve private segments.
- Segments
- Get Segment Effort
- Returns a segment effort from an activity that is owned by the authenticated athlete. Requires subscription.
- SegmentEfforts
- Get Segment Effort Streams
- Returns a set of streams for a segment effort completed by the authenticated athlete. Requires read_all scope.
- Streams
- Get Segment Streams
- Returns the given segment's streams. Requires read_all scope for private segments.
- Streams
- Get Athlete Stats
- Returns the activity stats of an athlete. Only includes data from activities set to Everyone visibilty.
- Athletes
- Get Upload
- Returns an upload for a given identifier. Requires activity:write scope.
- Uploads
- Get Activity Zones
- Summit Feature. Returns the zones of a given activity. Requires activity:read for Everyone and Followers activities. Requires activity:read_all for Only Me activities.
- Activities
- Star Segment
- Stars/Unstars the given segment for the authenticated athlete. Requires profile:write scope.
- Segments
- Update Activity
- Updates the given activity that is owned by the authenticated athlete. Requires activity:write. Also requires activity:read_all in order to update Only Me activities
- Activities
- Update Athlete
- Update the currently authenticated athlete. Requires profile:write scope.
- Athletes
Strava integration, answered
- How do AI agents use Strava through Open Connector?
- Your user connects Strava once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Strava tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
- Is this a Strava MCP server?
- Yes. Open Connector can serve Strava as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Strava actions with credentials injected server-side.
- Where do Strava credentials live?
- In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.
Give your agents Strava — keep the keys.
Open source, self-hostable, with Strava credentials that never leave your infrastructure. Run it from source today.