Skip to main content
Glama
esowder22

Strava MCP Server

by esowder22

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STRAVA_CLIENT_IDYesYour Strava API application client ID.
STRAVA_CLIENT_SECRETYesYour Strava API application client secret.
STRAVA_REFRESH_TOKENYesYour Strava refresh token obtained after one-time authorization.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_athleteA

Return the authenticated athlete's profile (name, location, weight, FTP if set).

get_statsA

Return lifetime, year-to-date, and recent (last 4 weeks) totals for the athlete.

Covers run, ride, and swim distance/time/elevation. Useful for tracking load and progress over time.

list_activitiesA

List the athlete's activities, most recent first.

Args: per_page: Activities per page (1-200, default 30). page: Page number (default 1). before: Optional Unix timestamp; only activities before this time. after: Optional Unix timestamp; only activities after this time.

get_activityB

Return full detail for one activity (splits, pace, HR, power, elevation, segments).

get_activity_streamsA

Return time-series streams for an activity for detailed pace/HR/elevation analysis.

Args: activity_id: The activity to inspect. keys: Stream types to fetch. Defaults to time, distance, heartrate, velocity_smooth, altitude.

get_athlete_zonesA

Return the athlete's configured heart-rate and power zones.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or granularity: athlete profile, aggregate stats, activity list, activity detail, time-series streams, and zones. The only close pair, get_activity and get_activity_streams, is cleanly separated by summary detail vs. raw time-series data.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, with five using get_ and one using list_activities. The lone list_ is still a standard retrieval verb, so the naming stays predictable and coherent.

Tool Count5/5

Six tools is a well-scoped size for a read-only Strava analytics server. Each tool covers a distinct part of the activity/athlete data surface without unnecessary duplication or bloat.

Completeness5/5

For the apparent purpose of retrieving athlete and activity data, the surface is complete: profile, aggregate stats, activity listing, detailed activity, streams, and zones. There are no dead ends for common queries like 'how fast was my last ride?' or 'what are my power zones?'

Maintenance

ActivityMaintained
ResponsivenessNo issues