Strava MCP server
Provides read-only access to a Strava athlete's profile and activities, including tools to retrieve the authenticated athlete's profile, list recent activities with paging and date filters, and fetch detailed activity data by Strava ID.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Strava MCP server show me my last 5 runs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Strava MCP server
A local, read-only Model Context Protocol server for an athlete's Strava profile and activities. It uses standard input/output, so it works with MCP hosts that can launch a local command.
What it can do
get_my_profile— retrieve the authenticated athlete's profilelist_my_activities— retrieve recent activities, with paging and date filtersget_activity— retrieve a detailed activity by its Strava ID
Related MCP server: Strava MCP Server
Set up
In Strava API Settings, create an application. Copy the client ID and client secret.
In the app settings, set Authorization Callback Domain to
localhost.Copy
.env.exampleto.envand fill inSTRAVA_CLIENT_IDandSTRAVA_CLIENT_SECRET.Run
npm run authorize. Open the printed sign-in link and authorizeread,activity:read. The helper verifies activity access and saves the issued tokens to.envautomatically.Install and check the project:
npm install npm run buildConfigure your MCP host to run:
{ "command": "npx", "args": ["tsx", "C:/absolute/path/to/strava-mcp/src/index.ts"] }
The server reads credentials from the project's .env file. Do not duplicate
tokens in the MCP host configuration, because copied values become stale when
Strava rotates a refresh token.
Use the server's inspect script to test it interactively before connecting it to a host.
Security
Never place
.envor a refresh token in source control.The server only registers read-only tools. Add activity-creating or activity-editing tools only after deciding how you want human confirmation to work.
OAuth access may be narrower than requested if the athlete declined a scope; tool calls then receive a Strava error.
Token refresh
Strava issues a refresh token plus a short-lived access token. The authorization helper saves the initial token set to .env, and the server writes newly rotated tokens back to .env before continuing. This ensures that restarts use the most recent refresh token.
Available Tools
3 toolsget_activityGet a Strava activityB
Return the detailed record for one of the authenticated athlete's activities.
Inputs: activity_id (required).
get_my_profileGet my Strava profileA
Return the authenticated athlete's Strava profile and settings.
Inputs: no named parameters.
list_my_activitiesList my Strava activitiesB
List the authenticated athlete's activities in reverse chronological order.
Inputs: page, after, before, per_page.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
The three tools are clearly distinct: one returns the athlete profile, one lists activities, and one returns a single activity's detail. Minor potential confusion between list_my_activities and get_activity, but their purposes are obvious and descriptions clarify the distinction.
All tools use a consistent verb_noun pattern (get_my_profile, list_my_activities, get_activity) with snake_case throughout. Minor inconsistency: 'my' is included in two names but not in get_activity, which slightly breaks the symmetry.
Three tools is on the lower end of the acceptable range and feels thin for a server covering an activity-tracking platform like Strava. It's borderline — sufficient to demonstrate the server works, but not a rich surface.
The surface only offers read operations: profile retrieval, activity listing, and activity detail. Notable gaps include no ability to create/upload activities, update activity records (e.g., change title or privacy), delete activities, manage segments, access clubs, or handle friends/athletes. It's a purely read-only view with no lifecycle operations.
Maintenance
Related MCP Connectors
Strava MCP tools for AI: athletes, activities, segments, clubs, routes. Powered by HAPI MCP server.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides language models with access to Strava API data, allowing them to query and analyze athlete activities from Strava.425MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables language models to interact with Strava data, including activities, athlete statistics, routes, achievements, and social features.6MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables users to access Strava fitness data, including user activities, activity details, segments, and leaderboards through a structured API interface.34MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes Strava API v3 data (activities, segments, routes, clubs, gear, streams) as tools for any MCP client. Read-only by default, with an optional --write flag to enable mutating operations.10 npm1MIT