Skip to main content
Glama
KerkhofMe
by KerkhofMe

Strava MCP Server

An MCP (Model Context Protocol) server that connects Claude to the Strava API, giving Claude direct access to your training data.

Features

  • Athlete Profile — Get your Strava profile info

  • Athlete Stats — Lifetime and recent totals (runs, rides, swims)

  • Activities — List recent activities or filter by date range

  • Activity Details — Deep dive into any single activity

  • Activity Streams — Time-series data: GPS, heartrate, power, cadence, altitude

  • Segments — Starred segments and segment details

Setup

1. Create a Strava API Application

  1. Go to strava.com/settings/api

  2. Create an application — use http://localhost as the redirect URI

  3. Note your Client ID and Client Secret

2. Get a Refresh Token

Open this URL in your browser (replace CLIENT_ID):

https://www.strava.com/oauth/authorize?client_id=CLIENT_ID&response_type=code&redirect_uri=http://localhost&scope=read_all,activity:read_all

After authorizing, you'll be redirected to http://localhost?code=AUTHORIZATION_CODE. Copy the code and exchange it:

curl -s -X POST 'https://www.strava.com/oauth/token' \
  -F 'client_id=CLIENT_ID' \
  -F 'client_secret=CLIENT_SECRET' \
  -F 'code=REFRESH_TOKEN' \
  -F 'grant_type=authorization_code'

Save the refresh_token from the response.

3. Install & Build

npm install
npm run build

4. Configure Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.xx:

{
  "mcpServers": {
    "strava": {
      "command": "node",
      "args": ["/Users/USERNAME/Apps/StravaMCP/dist/index.js"],
      "env": {
        "STRAVA_CLIENT_ID": "your_client_id",
        "STRAVA_CLIENT_SECRET": "your_client_secret",
        "STRAVA_REFRESH_TOKEN": "your_refresh_token"
      }
    }
  }
}

Restart Claude Desktop. You should see the Strava tools available in the tools menu (hammer icon).

Available Tools

Tool

Description

get_athlete

Get your Strava profile

get_athlete_stats

Get lifetime and recent statistics

get_activities

List recent activities (paginated)

get_activities_between

Get activities within a date range

get_activity

Get detailed info for one activity

get_activity_streams

Get time-series data (GPS, HR, power, etc.)

get_starred_segments

Get your starred segments

get_segment

Get details for a specific segment

Example Prompts

Once connected, try asking Claude:

  • "What were my activities this week?"

  • "Analyze my running performance over the past month"

  • "Compare my cycling times in January vs February"

  • "Show me my heartrate data from my last run"

  • "What are my all-time stats?"

Development

# Run in dev mode (no build step)
npm run dev

# Build for production
npm run build
npm start

License

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

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/KerkhofMe/StravaMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server