Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STRAVA_CLIENT_IDNoYour Strava Application Client ID
ROUTE_EXPORT_PATHNoDirectory for GPX/TCX exports
STRAVA_ACCESS_TOKENNoOAuth access token
STRAVA_CLIENT_SECRETNoYour Strava Application Client Secret
STRAVA_REFRESH_TOKENNoOAuth refresh token

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
get-athlete-profileA

Fetches the profile information for the authenticated athlete, including their unique numeric ID needed for other tools like get-athlete-stats.

get-athlete-statsA

Fetches the activity statistics (recent, YTD, all-time) for a specific athlete using their ID. Requires the athleteId obtained from the get-athlete-profile tool.

get-activity-detailsC

Fetches detailed information about a specific activity using its ID.

get-recent-activitiesA

Fetches the most recent activities for the authenticated athlete.

list-athlete-clubsA

Lists the clubs the authenticated athlete is a member of.

list-starred-segmentsA

Lists the segments starred by the authenticated athlete.

get-segmentC

Fetches detailed information about a specific segment using its ID.

explore-segmentsC

Searches for popular segments within a given geographical area.

star-segmentA

Stars or unstars a specific segment for the authenticated athlete.

get-segment-effortC

Fetches detailed information about a specific segment effort using its ID.

list-segment-effortsA

Lists the authenticated athlete's efforts on a specific segment, optionally filtering by date.

list-athlete-routesA

Lists the routes created by the authenticated athlete, with pagination.

get-routeA

Fetches detailed information about a specific route using its ID.

export-route-gpxA

Exports a specific Strava route in GPX format and saves it to a pre-configured local directory.

export-route-tcxA

Exports a specific Strava route in TCX format and saves it to a pre-configured local directory.

get-activity-streamsA

Retrieves detailed time-series data streams from a Strava activity. Perfect for analyzing workout metrics, visualizing routes, or performing detailed activity analysis.

Key Features:

  1. Multiple Data Types: Access various metrics like heart rate, power, speed, GPS coordinates, etc.

  2. Flexible Resolution: Choose data density from low (~100 points) to high (~10000 points)

  3. Smart Pagination: Get data in manageable chunks optimized for LLM context limits

  4. Rich Statistics: Includes min/max/avg for numeric streams

  5. Dual Format Support: Compact (LLM-optimized) or verbose (human-readable)

  6. Intelligent Downsampling: Automatically reduce large datasets while preserving key features

Format Options:

  • compact (default): Raw arrays, minified JSON, ~70-80% smaller payloads, ideal for LLM processing

  • verbose: Human-readable objects with formatted values, backward compatible with legacy format

Common Use Cases:

  • Analyzing workout intensity through heart rate zones

  • Calculating power metrics for cycling activities

  • Visualizing route data using GPS coordinates

  • Analyzing pace and elevation changes

  • Detailed segment analysis

Output Format:

  1. Metadata: Activity overview, available streams, data points, units, format info

  2. Statistics: Summary stats for each stream type (max/min/avg where applicable)

  3. Data: Time-series data in compact arrays or verbose objects (based on format parameter)

Notes:

  • Requires activity:read scope

  • Not all streams are available for all activities

  • Older activities might have limited data

  • Large activities are automatically chunked to ~50KB per message

  • Use max_points parameter to downsample very large activities intelligently

get-activity-lapsA

Retrieves detailed lap data for a specific Strava activity.

Use Cases:

  • Get complete lap data including timestamps, speeds, and metrics

  • Access raw values for detailed analysis or visualization

  • Extract specific lap metrics for comparison or tracking

Parameters:

  • id (required): The unique identifier of the Strava activity.

Output Format: Returns both a human-readable summary and complete JSON data for each lap, including:

  1. A text summary with formatted metrics

  2. Raw lap data containing all fields from the Strava API:

    • Unique lap ID and indices

    • Timestamps (start_date, start_date_local)

    • Distance and timing metrics

    • Speed metrics (average and max)

    • Performance metrics (heart rate, cadence, power if available)

    • Elevation data

    • Resource state information

    • Activity and athlete references

Notes:

  • Requires activity:read scope for public/followers activities, activity:read_all for private activities

  • Returns complete data as received from Strava API without omissions

  • All numeric values are preserved in their original precision

get-athlete-zonesA

Retrieves the authenticated athlete's configured heart rate and power zones.

Output includes both a formatted summary and the raw JSON data.

get-athlete-shoesA

Fetches the authenticated athlete's shoes from Strava, including usage distance and primary flag.

get-all-activitiesA

Fetches complete activity history with optional filtering by date range and activity type. Supports pagination to retrieve all activities.

get-activity-photosA

Retrieves photos associated with a specific Strava activity.

Use Cases:

  • Fetch all photos uploaded to an activity

  • Get photo URLs for display or download

  • Access photo metadata including location and timestamps

Parameters:

  • id (required): The unique identifier of the Strava activity.

  • size (optional): Size of photos to return in pixels (e.g., 100, 600, 2048). If not specified, returns all available sizes.

Output Format: Returns both a human-readable summary and complete JSON data for each photo, including:

  1. A text summary with photo count and URLs

  2. Raw photo data containing all fields from the Strava API:

    • Photo ID and unique identifier

    • URLs for different sizes

    • Source (1 = Strava, 2 = Instagram)

    • Timestamps (uploaded_at, created_at)

    • Location coordinates if available

    • Caption if provided

Notes:

  • Requires activity:read scope for public/followers activities, activity:read_all for private activities

  • Photos may come from Strava uploads or linked Instagram posts

  • Returns empty array if activity has no photos

get-server-versionA

Returns the Strava MCP server version and related metadata.

connect-stravaA

Connect your Strava account to enable activity tracking. This will open a browser window for secure authentication. Use this when the user asks to connect, link, or authenticate their Strava account.

disconnect-stravaA

Disconnect your Strava account and remove stored credentials. Use this when the user wants to logout, disconnect, or remove their Strava connection.

check-strava-connectionA

Check if Strava is connected and show the current connection status. Use this when the user asks about their connection status.

get-segment-leaderboardA

Retrieves the leaderboard for a specific Strava segment. Shows top performances with times, power, and heart rate data. Supports filtering by gender, age group, weight class, club, date range, and followed athletes.

Use this to:

  • See top performances on a segment

  • Compare your efforts against others

  • Filter by demographics or time period

  • Check if you have a chance at a top position

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 26 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific Strava resources (e.g., activities, segments, routes, athlete data), with clear separation between get, list, and action operations. However, some potential overlap exists between 'get-all-activities' and 'get-recent-activities', and between 'explore-segments' and 'list-starred-segments', which could cause minor confusion in selection.

Naming Consistency3/5

Naming conventions are mixed, with most tools using kebab-case (e.g., 'get-activity-details') but some using snake_case (e.g., 'get_athlete_stats' in the description). Verb patterns vary, including 'get-', 'list-', 'export-', 'check-', 'connect-', 'disconnect-', 'explore-', and 'star-', which reduces predictability. While readable, the inconsistency across styles and verbs lowers the score.

Tool Count3/5

With 26 tools, the count is borderline high for a Strava integration, suggesting potential over-scoping. While Strava's API is feature-rich, this many tools might overwhelm agents or indicate fragmentation. A more focused set of 15-20 tools could improve coherence without sacrificing functionality.

Completeness5/5

The tool set provides comprehensive coverage of the Strava domain, including athlete management (connect, profile, stats, zones), activities (details, laps, photos, streams, lists), segments (explore, get, leaderboard, efforts, starring), routes (get, export), and clubs. It supports full CRUD-like operations where applicable (e.g., connect/disconnect, star/unstar) and handles key workflows like data export and analysis, with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues