Strava integrationStrava logo

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.

What your agents can do

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. 1

    Your user grants Strava access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

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). ![Attribution](/images/device-attribution-image.png)
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
FAQ

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.