Connect your AI Agents to Strava in minutes

Available tools
create_activity
Create a manual activity. Requires name, type (Run, Ride, Swim, etc.), start_date_local (ISO 8601), and elapsed_time (seconds).
get_activity
Get an activity by ID. Returns detailed activity data including stats, map, and segment efforts.
update_activity
Update an activity. Can change name, type, description, trainer, commute, and gear_id. Set gear_id to 'none' to remove gear.
list_athlete_activities
List the authenticated athlete's activities with pagination. Filter by before/after epoch timestamps. Use page and per_page for pagination.
list_activity_comments
List comments on an activity. Use page and per_page for pagination.
list_activity_kudoers
List athletes who gave kudos on an activity. Use page and per_page for pagination.
get_activity_laps
Get laps for an activity. Returns lap splits with time, distance, and pace data.
get_authenticated_athlete
Get the authenticated athlete's profile. Returns detailed info including name, location, stats, and gear.
update_athlete
Update the authenticated athlete's profile. Currently only weight can be updated.
get_athlete_zones
Get the authenticated athlete's heart rate and power zones.
get_athlete_stats
Get an athlete's activity stats (totals, recent, year-to-date). Use get_authenticated_athlete to find the athlete ID.
get_club
Get a club by ID. Returns club details including name, location, member count, and sport type.
list_athlete_clubs
List clubs the authenticated athlete belongs to. Use page and per_page for pagination.
list_club_members
List members of a club. Use page and per_page for pagination.
list_club_admins
List admins of a club. Use page and per_page for pagination.
get_route
Get a route by ID. Returns route details including name, distance, elevation, and map data.
list_athlete_routes
List an athlete's routes. Use get_authenticated_athlete to find the athlete ID. Use page and per_page for pagination.
export_route_gpx
Export a route as GPX XML. Returns the GPX file content as a string.
export_route_tcx
Export a route as TCX XML. Returns the TCX file content as a string.
get_segment
Get a segment by ID. Returns segment details including name, distance, grade, and elevation.
explore_segments
Explore segments in a geographic area. Provide bounds as 'sw_lat,sw_lng,ne_lat,ne_lng'. Optionally filter by activity_type ('running' or 'riding').
list_starred_segments
List the authenticated athlete's starred segments. Use page and per_page for pagination.
star_segment
Star or unstar a segment. Set starred to true to star or false to unstar.
get_activity_streams
Get activity streams (time series data). Specify keys like time, distance, latlng, altitude, heartrate, cadence, watts, temp, moving, grade_smooth.
get_route_streams
Get route streams (distance and altitude data).
get_segment_streams
Get segment streams (distance and altitude data). Specify keys like distance, altitude, latlng.
upload_activity
Upload an activity file (FIT, TCX, GPX). Provide base64-encoded file content and data_type (fit, tcx, gpx, or .gz variants).
get_upload
Check the status of an activity upload. Returns processing status and activity_id when complete.
validate_credential
Validate Strava credentials. Verifies credentials during setup.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Strava MCP server
FAQs on using Merge's Strava MCP server
What is a Strava MCP?
It's an MCP server that gives your agents direct access to Strava's fitness and activity data via tools. Your agents can invoke these tools to retrieve athlete activities, fetch performance stats, explore route segments, manage club memberships, and more.
Strava doesn't offer an MCP server purpose built for Strava, but you can use one from a third-party platform, like Merge Agent Handler.
How can I use the Strava MCP server?
The use cases naturally depend on the agent you've built, but here are a few common ones:
- Post-workout coaching digest: After an athlete completes an activity, an agent fetches the activity streams (pace, heart rate, and power) and historical stats from Strava, then sends a personalized performance summary to the athlete via email or Slack
- Weekly training volume report: An agent pulls the past 7 days of activities from Strava, compares total mileage against a training plan stored in a spreadsheet, and generates a summary for a coach or training app
- Segment discovery for route planning: When a user enters a new region, an agent calls Strava to explore nearby segments ranked by popularity, then adds the top picks to a connected route planning or mapping tool
- Club activity leaderboard: An agent pulls recent activities from Strava club members, identifies who logged a workout in the past 24 hours, and posts a daily leaderboard to the club's Slack or Discord channel
What are popular tools for Strava's MCP server?
Here are some of the most commonly used tools:
list_athlete_activities: returns a paginated list of activities for the authenticated athlete, sorted by date. Useful for agents that need to scan recent workouts as part of a reporting or coaching workflow
get_activity: retrieves full details for a single activity, including distance, elapsed time, elevation, and gear. Call this when an agent needs granular activity data to power a summary or comparison
get_activity_streams: fetches raw time-series data for an activity, including pace, heart rate, power output, and cadence. Good for workflows that need to analyze performance at a per-second resolution
get_athlete_stats: pulls lifetime and recent totals for the authenticated athlete, covering total distance run, ridden, or swum. Helpful when an agent needs a high-level performance overview rather than individual activity records
explore_segments: searches for Strava segments within a map bounds area, filterable by activity type. Use this when an agent is building route recommendations or identifying competitive benchmarks in a given region
create_activity: logs a manual activity entry against the athlete's account with fields like type, distance, and duration. Use this when an agent needs to record an activity sourced from an external device or system that doesn't sync automatically
What makes Merge Agent Handler's Strava MCP server better than alternative Strava MCP servers?
Merge Agent Handler's Strava MCP server has a few distinct advantages over rolling your own or relying on an alternative:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Strava, this means you can prevent athlete health data, location history, and personal performance records from being exposed even when the agent has broad read access
- Managed authentication and credentials: Merge stores and refreshes Strava OAuth tokens on your behalf. You never hand raw credentials to an agent or build your own token refresh logic
- Real-time observability and audit trail: Every tool call made against Strava is logged with timestamp, tool name, input parameters, and response metadata. You can review exactly what an agent read or wrote without adding any instrumentation to your own code
- Tool Packs and controlled access: Tool Packs let you bundle specific Strava tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more
How can I start using Merge Agent Handler's Strava MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the Strava connector. Choose which tools to include: enable read tools like list_athlete_activities and get_athlete_stats for analysis and reporting, or add write tools like create_activity and update_activity if your agent needs to log or modify activity records.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate Strava by completing the OAuth flow. Merge stores and manages the credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your Strava tools are now accessible through that endpoint.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now
























