IntegrateIntegrate
Integrations

Strava Integration

Manage Strava athletes, activities, routes, clubs, segments, streams, gear, and uploads

The Strava integration provides access to manage Strava athletes, activities, routes, clubs, segments, streams, gear, and uploads through the Integrate MCP server.

Installation

The Strava integration is included with the SDK:

import { stravaIntegration } from "integrate-sdk/server";

Setup

1. Create a Strava OAuth App

  1. Create an OAuth application for Strava
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Strava integration to your server configuration. The integration automatically reads STRAVA_CLIENT_ID and STRAVA_CLIENT_SECRET from your environment variables:

import { createMCPServer, stravaIntegration } from "integrate-sdk/server";

export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    stravaIntegration({
      scopes: ["read", "profile:read_all", "profile:write", "activity:read", "activity:read_all", "activity:write"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

stravaIntegration({
  clientId: process.env.CUSTOM_STRAVA_ID,
  clientSecret: process.env.CUSTOM_STRAVA_SECRET,
      scopes: ["read", "profile:read_all", "profile:write", "activity:read", "activity:read_all", "activity:write"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";

await client.authorize("strava");
const result = await client.strava.getLoggedInAthlete({});

console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, stravaIntegration } from "integrate-sdk";

const customClient = createMCPClient({
  integrations: [stravaIntegration()],
});

Configuration Options

Prop

Type

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • read
  • profile:read_all
  • profile:write
  • activity:read
  • activity:read_all
  • activity:write

Tools

strava_get_logged_in_athlete

Get logged in athlete

No parameters.

strava_update_logged_in_athlete

Update logged in athlete

Prop

Type

strava_get_athlete_stats

Get athlete stats

Prop

Type

strava_list_athlete_activities

List athlete activities

Prop

Type

strava_get_activity

Get activity

Prop

Type

strava_create_activity

Create activity

Prop

Type

strava_update_activity

Update activity

Prop

Type

strava_delete_activity

Delete activity

Prop

Type

strava_get_activity_streams

Get activity streams

Prop

Type

strava_list_athlete_routes

List athlete routes

Prop

Type

strava_get_route

Get route

Prop

Type

strava_export_route_gpx

Export route gpx

Prop

Type

strava_list_athlete_clubs

List athlete clubs

Prop

Type

strava_get_club

Get club

Prop

Type

strava_list_club_activities

List club activities

Prop

Type

strava_list_club_members

List club members

Prop

Type

strava_get_segment

Get segment

Prop

Type

strava_explore_segments

Explore segments

Prop

Type

strava_get_segment_leaderboard

Get segment leaderboard

Prop

Type

strava_list_starred_segments

List starred segments

Prop

Type

strava_star_segment

Star segment

Prop

Type

strava_get_gear

Get gear

Prop

Type

strava_get_upload

Get upload

Prop

Type

strava_create_upload

Create upload

Prop

Type

Notes

  • Category: Fitness
  • Authentication mode: OAuth

On this page