Skip to main content
Glama
Mohith1612

Strava Planner MCP

by Mohith1612

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_PUBLIC_URLNoExact public endpoint, e.g. https://mcp-strava.example.com/mcp.
STRAVA_CLIENT_IDNoStrava application client ID.
MCP_OAUTH_CLIENT_IDNoFixed OAuth client ID entered in Claude.
STRAVA_CLIENT_SECRETNoStrava application client secret.
STRAVA_REFRESH_TOKENNoSeeds authorization if no encrypted token file exists.
MCP_OAUTH_CLIENT_SECRETNoFixed OAuth client secret entered in Claude.
MCP_OAUTH_TOKEN_SIGNING_KEYNoSigns MCP access and refresh tokens.
STRAVA_TOKEN_ENCRYPTION_KEYNoEncrypts the persisted Strava token file.

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
getAthleteProfileA

Use this for identity and baseline athlete metadata. Returns the authenticated Strava athlete profile; use activity tools for training data.

getActivitiesA

Use this to browse activity summaries in manageable pages. Supports Unix-second date bounds and client-side activity type filtering; call getActivity for splits and full detail.

getActivityA

Use after finding an activity ID. Returns full activity detail including metric splits and embedded laps when Strava provides them.

getActivityLapsA

Use for lap-by-lap pacing, heart-rate, cadence, and elevation analysis when an activity has recorded laps.

getActivityZonesA

Use for time-in-zone analysis. Returns heart-rate or power zones when Strava exposes them for the athlete and activity.

getActivityStreamsA

Use for point-by-point analysis. Request only needed stream types to control response size; omitted streamTypes selects a useful set based on activity metadata. Strava returns only available streams.

getRecentRunsA

Use for current training analysis without fetching unrelated sports. Returns the newest Run activities up to the requested limit.

getRecentActivitiesB

Returns the most recent activities.

getAthleteContextA

Use alongside Strava data for user-configured goals, heart-rate zones, race targets, constraints, and training preferences. This data is optional and separate from Strava.

getActivitiesByTypeA

Returns one bounded page of activities of a supported type (newest first). Each page scans up to limit activities; when nextPage is non-null, call again with that page value to retrieve older activities. Use after/before (Unix seconds) to constrain the range.

getTrainingHistoryA

Returns one bounded page of activities (newest first) for long-term training analysis. When nextPage is non-null, call again with that page value for older activities. Use after/before (Unix seconds) to constrain the range.

getAthleteOverviewA

Returns a compact training overview and recent trends over a bounded look-back window (default last 365 days). Pass sinceDays or an explicit after for a different window.

getHalfMarathonTrainingContextA

Returns compact, information-dense run/walk training context for the current training cycle. The start date comes from the athlete context (trainingStartDate), else HALF_MARATHON_TRAINING_START_DATE, else a trailing 26-week window. Weeks are athlete-local and inactive weeks are included so streaks reflect real gaps.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct aspect of Strava data retrieval: activities by various criteria, activity details, laps, streams, zones, athlete profile, overview, context, training history, and a specific half marathon context. Descriptions clearly differentiate overlapping tools like getActivities, getActivitiesByType, getRecentActivities, and getTrainingHistory by specifying paging, filtering, and purpose.

Naming Consistency5/5

All tool names use consistent camelCase verb+noun pattern (get followed by resource name). This predictable naming helps agents quickly understand the action and target resource without confusion.

Tool Count5/5

With 13 tools, the server is well-scoped for a Strava planner. Each tool serves a specific purpose in retrieving training data and athlete context, without unnecessary duplication or missing essential operations for a read-only planner.

Completeness4/5

The tool surface covers core data retrieval: activity listing with filters, detailed activity data, laps, streams, zones, athlete info, training history, and half marathon context. Missing tools for updating athlete context or Strava settings, and for retrieving routes or segments, but these are minor gaps for a planner focused on training analysis.

Maintenance

ActivityMaintained
ResponsivenessSyncing