# Strava Alternative MCP

> Strava Alternative MCP Server connects your athletic data to your AI agent. Use it to retrieve performance stats, analyze heart rate zones, manage segments, or export raw activity and route data—all without opening the mobile app.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** fitness-tracking, cycling, running, athlete-stats, workout-analysis

## Description

You connect this server to your AI agent and treat every single run, ride, and segment you've done like pure data. You don't gotta dig through dashboards or mess with a mobile app; your agent pulls exactly what you need from your training history. 

### **Analyzing Your Performance Metrics**

You can pull detailed profile stats using `get_athlete_stats` to get an overview of your performance and profile details. For specific zone analysis, you've got `get_activity_zones`, which pulls the exact heart rate or power zones recorded during one activity. You can also check out your personal definition of zones with `get_athlete_zones`. If you wanna keep basic tabs on yourself, `get_authenticated_athlete` grabs core details about the account linked to the server. To manage your profile info itself, use `update_athlete`; it lets you update basic details for your authenticated athlete account.

### **Managing Activities and Laps**

To start analyzing, you'll first need a list of activities; `list_athlete_activities` shows you recent sessions so you can pick one up. Once you select an activity ID, `get_activity` pulls the main details for that specific session. If you want to change something about it—maybe fix a title or update the description—you use `update_activity`. For deep-dive data, `get_activity_streams` fetches raw, high-resolution data streams for the entire activity session. Need to know exactly how often you stopped? `list_activity_laps` gives you a detailed list of measured laps from any recorded run or ride.

Community engagement is right there too. You can use `list_activity_comments` to see every comment someone left on an activity, and `list_activity_kudos` tells you which usernames gave kudos to it. You'll also find that if your agent needs to analyze the raw data for a whole route path, `get_activity_streams` does the heavy lifting.

### **Exploring Routes, Segments, and Efforts**

Finding specific parts of your training is key. To search for segments based on where you are, use `explore_segments`, passing in geographic boundaries (bounds) to narrow down results. Once you find a segment, `get_segment` gives you all the detailed info about it (like 'Main Street Climb'). You can also check out every recorded effort made by *any* athlete on that segment using `list_segment_efforts`. If you want raw data streams for a specific segment's effort over time, use `get_segment_effort_streams`; for general performance tracking on any segment, run `get_segment_streams`. To get the core details of a full route—the start/end points and distance—use `get_route`. You can also list all saved routes associated with you using `list_athlete_routes`, or if you've got favorites, `list_starred_segments` pulls that list. Remember, you can mark or unmark any segment as a favorite using `star_segment`. When it comes to exporting data, you've got two options: `export_route_gpx` exports the route data in GPX format, and `export_route_tcx` does the same thing but uses TCX. If you need raw data streams for an entire route path—not just a segment—run `get_route_streams`.

### **Tracking Clubs and Community Data**

For connecting with your crew, you can list all clubs you belong to using `list_athlete_clubs`. From there, `get_club` pulls detailed information for any specific club. If you wanna see the whole squad, use `list_club_members` to get a full roster of people in that club. You can also find who runs things with `list_club_admins`, or see all activities posted by members using `list_club_activities`. You'll even get a list of all activities posted by other members within a specific club using `list_club_activities`.

## Tools

### create_activity
Manually creates a new activity record in your profile.

### explore_segments
Searches and lists segments based on geographic boundaries (bounds).

### export_route_gpx
Exports a specified route's data in the GPX file format.

### export_route_tcx
Exports a specified route's data in the TCX file format.

### get_activity_streams
Fetches raw, high-resolution data streams for an entire activity session.

### get_activity
Retrieves the main details for a single activity by ID.

### get_activity_zones
Retrieves the specific heart rate or power zones recorded during a particular activity.

### get_athlete_stats
Pulls overall performance statistics and profile details for the authenticated athlete.

### get_authenticated_athlete
Gets basic details about the athlete currently linked to the server.

### get_athlete_zones
Retrieves defined heart rate and power zones specific to your personal athletic profile.

### get_club
Retrieves detailed information for a specific club.

### get_route_streams
Retrieves raw data streams for an entire route path.

### get_route
Gets core details about a specified route, including start/end points and distance.

### get_segment_effort_streams
Fetches raw data streams detailing the effort made on a specific segment.

### get_segment_effort
Retrieves effort-specific details for a particular segment over time.

### get_segment_streams
Retrieves general performance data streams for any given segment.

### get_segment
Gets detailed information about a specific segment (e.g., 'Main Street Climb').

### list_activity_comments
Lists all comments left by other users on a specific activity.

### list_activity_kudos
Lists the usernames of people who gave kudos to an activity.

### list_activity_laps
Retrieves a detailed list of measured laps from any recorded activity.

### list_athlete_activities
Lists recent activities for the athlete, allowing you to select which one to analyze.

### list_athlete_clubs
Retrieves a list of clubs that the authenticated athlete is a member of.

### list_athlete_routes
Lists all saved or recorded routes associated with the athlete.

### list_club_activities
Retrieves a list of activities posted by members within a specific club.

### list_club_admins
Lists the administrative users for a given club.

### list_club_members
Retrieves the full roster of members belonging to a specified club.

### list_segment_efforts
Lists all recorded efforts made by any athlete on a segment.

### list_starred_segments
Retrieves a list of segments that you have marked as favorites (starred).

### star_segment
Marks or unmarks a specific segment to add it to your favorites.

### update_activity
Modifies metadata, like the title or description, for an existing activity.

### update_athlete
Updates basic profile information for your authenticated athlete account.

## Prompt Examples

**Prompt:** 
```
List my last 5 activities on Strava.
```

**Response:** 
```
I've retrieved your recent activities. Your last sessions include a 'Morning Run' (5.2km), an 'Evening Ride' (25km), and a 'Swim' (1500m). Would you like the details for any of these?
```

**Prompt:** 
```
Show me my heart rate and power zones.
```

**Response:** 
```
Fetching your zones... Your Heart Rate zones are set from Zone 1 (110-130 bpm) up to Zone 5 (175+ bpm). Your Power zones range from Z1 (0-150W) to Z7 (450W+).
```

**Prompt:** 
```
Update activity 123456789: change the name to 'Epic Trail Run' and add 'Great views!' to the description.
```

**Response:** 
```
Activity 123456789 has been updated successfully. The name is now 'Epic Trail Run' and the description has been appended with your notes.
```

## Capabilities

### Analyze Athlete Metrics
Pull detailed profile stats and zone information (heart rate/power) about yourself or other athletes.

### Manage Activities & Laps
List, get details for, update metadata on activities, or retrieve specific laps from a run or ride.

### Explore and Export Routes/Segments
Find segments by location, list your favorite ones, and export complete route data in GPX or TCX formats.

### Track Club & Community Data
List club members, admins, activities, or view comments/kudos attached to your activities.

## Use Cases

### Checking a Rival's Best Segment Times
You see your rival dominates the 'Main Street Climb.' Instead of having them post their time for you to check, you ask your agent: 'What is the fastest recorded effort on Main Street Climb?' The agent runs `get_segment` and provides the best segment effort details immediately.

### Analyzing a Weak Training Block
You suspect your heart rate zones dipped during last week's ride. You prompt: 'Analyze my Z3 to Z4 time for my activity from 20 minutes ago.' The agent uses `get_activity_zones` and returns the specific data points you need, helping pinpoint when the effort dropped.

### Migrating Data for Custom Analysis
You want to use all your routes in a custom database. You ask: 'Export my last three routes as GPX files.' The agent runs `list_athlete_routes` first, then uses `export_route_gpx` on each one, giving you structured, usable data chunks.

### Updating a Shared Training Log
You finished a run and need to correct the title. You ask: 'Update activity 98765: change the name to 'Recovery Spin'.' The agent runs `update_activity` using the ID, ensuring your log is accurate without needing to find the right button in the app.

## Benefits

- Get specific data points instantly. Need to know your Zone 5 average? Use `get_athlete_zones` to pull that number directly, skipping manual calculations in a spreadsheet.
- Stop clicking through activity history. The `list_activity_laps` tool lets you get every measured lap from any session—perfect for reviewing training structure without scrolling endlessly.
- Export everything raw. Use `export_route_gpx` or `get_activity_streams` to pull data formats that custom scripts and analysis tools actually understand, not just what the web interface shows.
- Manage your community data via API. You can list club members (`list_club_members`) or grab all comments on a ride (`list_activity_comments`) directly into your workflow for review.
- Build reports fast. Instead of compiling stats from different dashboards, use `get_athlete_stats` to gather key metrics like total kilometers and best climbs in one go.

## How It Works

The bottom line is you stop digging through Strava's app and start asking questions of your data.

1. Subscribe to the server and provide your Strava Access Token.
2. Prompt your AI agent with a natural language query (e.g., 'Show me my Z5 average for segments in Boston').
3. The agent invokes the specific tool, pulling clean data that gets returned directly into your chat window.

## Frequently Asked Questions

**How do I get my heart rate zones using the Strava Alternative MCP Server?**
Use `get_athlete_zones` to retrieve your defined personal heart rate and power zones. This tells you what Z1, Z2, etc., means for *you*, not just generic guidelines.

**Can I list all my activities with the Strava Alternative MCP Server?**
Yes. You can use `list_athlete_activities` to fetch a roster of your recent sessions, and then follow up by using `get_activity` on any specific ID.

**Does export_route_gpx include all the data?**
It exports the route path in GPX format. If you need performance metrics (like heart rate) tied to that route, use `get_route_streams` instead.

**How do I check my club members using Strava Alternative MCP Server?**
First, get the club details with `get_club`, then run `list_club_members`. This gives you a roster of everyone in that group.

**How do I use the `update_activity` tool if I need to correct details?**
You can modify activity metadata using this tool. You'll pass the activity ID, and then provide new values for fields like the name or description. This is useful when you record a workout manually but need to adjust the recorded notes later.

**What kind of performance data do I get from `get_segment_effort`?**
The tool retrieves detailed metrics for how hard you worked on a specific segment. It goes beyond simple averages by providing effort streams and lap details, helping you pinpoint exactly where you lost time or burned maximum energy.

**How do I check the authenticated athlete using `get_authenticated_athlete`?**
This tool confirms who the data belongs to. It pulls basic profile information for the currently connected user, ensuring that any analysis or listing you perform is tied directly back to your correct account identity.

**Can I use `list_athlete_routes` to see my saved paths?**
Yes, this lists all known and completed routes associated with the athlete. You get a catalog of route outlines—distinct from individual activities—which you can then export using tools like `export_route_gpx`.

**Can I see my heart rate and power zones using this integration?**
Yes! You can use the `get_athlete_zones` tool to retrieve your configured heart rate and power zones directly from your Strava profile.

**Is it possible to update the name or description of an existing activity?**
Absolutely. Use the `update_activity` tool by providing the Activity ID. You can modify the name, sport type, description, and even toggle commute or trainer status.

**How can I check my all-time running or cycling statistics?**
You can use the `get_athlete_stats` tool with your Athlete ID to get a comprehensive breakdown of your totals, including distance, moving time, and elevation gain for all sports.