# Strava Social MCP

> Strava Social connects your AI agent to the full social graph of Strava. It lets you read activity feeds, track kudos, analyze comments, find local training segments by bounding box, and manage club memberships—all without logging into a browser.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** activity-tracking, social-networking, fitness-data, community-engagement, segment-discovery

## Description

**Strava Social** connects your AI agent directly to Strava's entire social network. You treat it like a massive data source, pulling activity feeds, kudos counts, comments, and segment details without ever having to open a browser tab or log in yourself. It’s pure utility for your workflow.

### Tracking Your Activity History
When you run `list_activities`, you get the full rundown of your recent workouts. This isn't just a list; it gives you basic stats, activity type, distance, and elevation gain for every entry. You'll also see real-time counts for kudos received and comments left on each activity, giving you an immediate sense of community engagement.

For deeper dives into your achievements, `list_starred_segments` pulls up every segment you’ve favorited (or 'starred'). It gives you a clear breakdown of those routes, including your personal best times—your PRs—for the segments. This is how you track consistent performance on specific, known climbs or stretches.

### Analyzing Community Feedback and Support
Want to know who liked your ride? Call `get_activity_kudos`, and it lists every athlete who hit that 'kudos' button for a specific workout; you get their names and profile details. Need the full story? Run `get_activity_comments` on an activity ID, and you retrieve *all* text comments left by other athletes about it—you know exactly who wrote what.

### Discovering Routes and Local Training Spots
Finding a good route shouldn't be guesswork. Use `explore_segments` to search for cycling or running segments within any geographic area using bounding box coordinates. This tool returns all the necessary details, including distance, grade, and climb category. If you need to know what’s popular near your house, this is it.

### Social Connections: Clubs and Training Partners
Your social life on Strava runs through its clubs. `list_athlete_clubs` shows every single club the logged-in athlete belongs to, giving member counts and defining the primary sport type for each group. If you want details on one specific squad, `get_club` fetches all the info—like the club's description or focus—for that particular entity.

When it comes time to find training partners, you can browse a whole roster using `list_club_members`. You give it a club, and it provides names and basic profile details for everyone in it. Want to see what’s happening right now with your crew? `list_club_activities` pulls recent activities from members within that specific club.

You can also get the nitty-gritty on any individual athlete using `get_athlete`. This gives you their full profile stats, including location and how many followers they've racked up. It’s a complete picture of who’s out there.

## Tools

### explore_segments
Finds cycling or running segments within specified coordinates, returning details like distance and grade.

### get_activity_comments
Retrieves all text comments written by other athletes about a specific activity ID.

### get_activity_kudos
Lists the names and profiles of athletes who gave kudos (likes) to a specific workout.

### get_athlete
Gets profile details for an athlete, including their location and follower count.

### get_club
Fetches detailed information about a specific Strava club, like its description and focus.

### list_activities
Retrieves the authenticated user's activity feed with basic stats, allowing filtering by date range.

### list_athlete_clubs
Lists every club the logged-in athlete is a member of, showing member counts and sport types.

### list_club_activities
Pulls recent activities from members within a specific Strava club.

### list_club_members
Browses the roster of a given club, providing names and basic profile details for potential training partners.

### list_starred_segments
Lists all segments you have favorited (starred), including your personal best times (PRs) for those routes.

## Prompt Examples

**Prompt:** 
```
Show my recent activities.
```

**Response:** 
```
Recent activities: 1) Morning Ride — 45.2 km, 1h32m, 520m elev, 12 kudos. 2) Easy Run — 8.5 km, 42min, 85m elev, 8 kudos. 3) Recovery Ride — 22 km, 48min, 120m elev, 5 kudos. 4) Tempo Run — 10 km, 38min, 95m elev, 15 kudos.
```

**Prompt:** 
```
Explore cycling segments in Manhattan, NYC.
```

**Response:** 
```
Found 25 segments in Manhattan. Top climbs: 1) Cat 1 climb: West Side Highway (2.1 km, 4.2% avg) — 3,420 efforts. 2) Cat 3: Central Park North Hill (0.8 km, 8.1% avg) — 1,890 efforts. 3) Cat 4: Broadway Sprint (1.5 km, 2.1% avg) — 2,150 efforts. Most attempted: Central Park Full Loop (6.2 km).
```

**Prompt:** 
```
Show comments on my latest activity.
```

**Response:** 
```
Found 5 comments: 1) Sarah M.: "Great pace on that ride! 💪" 2) Tom K.: "Nice work! How did the new route feel?" 3) Lisa P.: "Solid effort 🚴" 4) Mike R.: "Let's do this route together next week" 5) Anna D.: "Impressive elevation gain!"
```

## Capabilities

### Track Activity History
List your recent workouts, receiving name, type, distance, elevation gain, and current kudos/comment counts.

### Analyze Community Feedback
Retrieve all comments left on a specific activity, including the author's name and text.

### Identify Training Partners
List your club memberships or browse members of a club to find local athletes with shared interests.

### Discover Local Routes
Search for cycling or running segments within any geographic area using coordinates, filtered by difficulty and type.

### View Athlete & Club Details
Fetch an individual athlete's profile stats (location, followers) or get detailed information about a specific club.

## Use Cases

### Planning a trip to a new city
You're moving to Portland, OR, and need local running routes. You ask your agent: 'Find the hardest 10k segments near downtown.' The agent runs `explore_segments` with the coordinates, giving you immediate results for top climbs and popular tracks, so you don't waste time mapping it out manually.

### Checking team motivation after a race
The team captain wants to know which members are still active. They ask the agent: 'Show me what people in our club did last week.' The agent uses `list_club_activities`, pulling all recent workouts from every member, allowing the coach to spot who's dropping off or who needs a challenge.

### Summarizing workout performance
You just finished a challenging ride. You ask your agent: 'What did people think of my ride?' The agent runs `get_activity_comments`, pulling all the feedback, so you can quickly see if teammates noticed the high elevation gain or complimented your pacing.

### Finding new training buddies
You want to find someone with similar goals in a specific club. You ask: 'List five members of the 'Early Birds' club who run long distances.' The agent runs `list_club_members` and filters the results, giving you names and details for potential running partners.

## Benefits

- See who's been active: Use `list_activities` to pull recent workouts, getting stats like distance, elevation, and how many kudos or comments they earned. It gives a full picture of the week's effort.
- Monitor group progress: Run `list_club_activities` to see what every member of your club is doing right now. This replaces manually checking dozens of profiles for updates.
- Find new routes easily: Use `explore_segments` with just coordinates (a bounding box). You don't need to visit a map; the agent returns top climbs and popular segments immediately.
- Track social engagement: Check `get_activity_kudos` after a big ride. Instead of scrolling through names, your agent tells you exactly who supported it, helping track community impact.
- Understand your network: Run `list_athlete_clubs` to see all your affiliations at once. You can then use `get_club` to know the specific focus and mission of any group.

## How It Works

The bottom line is you treat Strava not as a website, but as an API endpoint for social fitness data.

1. Subscribe to the Strava Social server and provide your OAuth2 Access Token.
2. Pass the necessary identifiers (like an `activityId` or bounding box) from your AI client's prompt.
3. Your agent executes the required tool (`list_activities`, `explore_segments`, etc.) and returns structured data on your workout history, local segments, or club members.

## Frequently Asked Questions

**How do I find new running routes using explore_segments?**
You run `explore_segments` and pass in a bounding box (coordinates) for your desired area. You can also filter the search by setting the activity type to 'running' or 'riding'.

**What does get_activity_kudos actually tell me?**
`get_activity_kudos` tells you exactly which athletes supported your workout. It returns names and profile details, so you know who was paying attention.

**Can I see all my clubs using list_athlete_clubs?**
Yes. `list_athlete_clubs` gives a clean roster of every club you belong to, showing the name and the total member count for each one.

**How can I get comments on an activity using get_activity_comments?**
You must provide the numeric `activityId` from Strava. The tool then returns every comment, including who wrote it and when they posted it.

**Does list_club_members show current members only?**
Yes, `list_club_members` is paginated and provides a roster of current club members. This helps you find specific training partners in your local area.

**How do I filter my activity history by a specific date range using list_activities?**
You must provide epoch timestamps for the 'before' and 'after' parameters. This limits the results precisely to your desired date window. Remember that you need to convert your start and end dates into Unix timestamps before calling this function.

**What exact data points does get_athlete return about my profile?**
It returns core identity details, location information, follower counts, and equipment setup. Think of it as a complete snapshot of your public Strava profile at the time of the call.

**Can I use explore_segments to find segments with high difficulty or steep grades?**
Yes, you filter by `min_cat` and `max_cat`. Use a low number for `min_cat` (like 0) if you want the steepest or most challenging segments. This helps narrow down dangerous climbs.

**Can I see who liked my activities?**
Yes! Use the get_activity_kudos tool with any activity ID. It returns the full list of athletes who gave kudos to that activity, including their names, cities, and profile pictures. This helps you understand who's following and supporting your training.

**How can I discover popular segments in a new city?**
Use the explore_segments tool with a bounding box of the area you're interested in. The bounds format is "southwest_lng,southwest_lat,northeast_lng,northeast_lat". For example, "-74.00,40.70,-73.95,40.75" covers Manhattan. You can filter by activity_type ("riding" or "running") and difficulty category (0-5, where 0 is hardest).

**Can I see what my club members have been doing?**
Yes! Use list_club_activities with the club ID. It returns the 30 most recent activities from club members with athlete names, activity types, distances, and dates. Paginate through results to see more. This is great for staying connected with your training group's activities.