strava-mcp
Read-only integration with Strava that provides tools for querying activities, athlete profiles, activity social data, segments and leaderboards, routes and GPX/TCX exports, training analysis, activity comparisons, and similar activity searches.
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-mcpShow my runs from the last 30 days"
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-grokbot-bridge
Read-only Strava MCP for GrokBot. Each user runs this on their own GrokBot cloud computer. The Bot starts it as a stdio command. There is no public host, no ngrok, and no marketplace tile.
Fork of eddmann/strava-mcp (MIT,
© 2025 Edd Mann), pinned at
2c6fa6991ffa2c4a443887728aaf8eaab5829cea.
See UPSTREAM.md.
Compatible with Strava. This project is not affiliated with, endorsed by, or sponsored by Strava, Inc. Do not name your API app anything that implies an official Strava product (use something like “GrokBot Activity Bridge”). When you link an activity, say “View on Strava”.
Install and attach: follow INSTALL.md (clone or uvx on
the GrokBot cloud computer, put client id/secret on the computer, strava-mcp auth --stdio with Take over, then add a custom stdio command in chat).
What GrokBot users do
Do not use GrokBot’s Add-connector / Plugins marketplace. That catalog is Gmail, Notion, and similar tiles. Strava is not there, and this fork is not a URL connector.
Do not paste Strava access tokens, refresh tokens, or client secrets into chat.
1. Create your own Strava API app
Create an application (this currently requires a Strava subscription)
Authorization Callback Domain:
localhostWebsite can be
http://localhostKeep the client id and secret on the computer — not in chat
New apps start in single-player mode (only you can authorize). That is enough if you own the app.
2. Install on the GrokBot computer
Ask the Bot to clone this repo onto the computer:
git clone https://github.com/naoiseirwin/strava-grokbot-bridge.git /workspace/strava-grokbot-bridgeRequires uv.
3. Authorize on the computer (Take over)
Put STRAVA_CLIENT_ID and STRAVA_CLIENT_SECRET on the computer with a GrokBot
secret-request, or write them into /workspace/.strava-mcp.env. Then:
uv run --directory /workspace/strava-grokbot-bridge strava-mcp auth --stdioA browser on this computer opens Strava’s consent screen. If you need a password, passkey, or 2FA, use Take over. Do not paste the redirect URL into chat.
Tokens are stored at /workspace/.strava-mcp.env (mode 600). Access tokens
last about six hours; the server refreshes them. All Bots on your Cursor
account share this computer, so they can all read that file.
Scopes (read-only): profile:read_all, activity:read_all, activity:read.
4. Attach the stdio command
In GrokBot chat, send:
Add a custom MCP server called strava that runs:
uv run --directory /workspace/strava-grokbot-bridge strava-mcp
The Bot should repeat the name, command, and args. Click Add it.
uvx form (same computer, no checkout required after git is public):
Add a custom MCP server called strava that runs:
uvx --from git+https://github.com/naoiseirwin/strava-grokbot-bridge strava-mcp
5. Use it
Type @ and attach strava. Then:
“What’s my athlete profile?”
“Show my runs from the last 30 days”
Those call get_athlete_profile and query_activities.
GrokBot skill the Bot can follow: skills/grokbot-strava/SKILL.md.
Related MCP server: Strava MCP Server
Tools
Tool | Description |
| Query activities with filters and optional laps/zones/streams |
| Comments and kudos |
| Profile, optional stats and zones |
| Segment by id, starred list, or explore bounds |
| Segment leaderboard |
| Route by id or list |
| Export GPX/TCX |
| Training summary over a period |
| Side-by-side compare |
| Similar efforts |
star_segment is not registered. This fork does not request profile:write.
Resource: strava://athlete/profile. Prompts: analyze_recent_training,
segment_performance, activity_deep_dive, compare_recent_runs,
training_summary, race_performance_analysis.
Token file
Place | Path |
GrokBot computer (default) |
|
Override |
|
Desktop fallback |
|
Local checkout if |
|
See SECURITY.md to revoke (Strava → Settings → My Apps).
Not the product
HTTP / Streamable HTTP, Lambda, DynamoDB, Docker, and ngrok remain in the tree
because they came from upstream. They are not how GrokBot users attach this
server. Cursor’s connector backend cannot reach localhost on your laptop, and
this project does not stand up a public URL.
Do not uvx mcp-strava from PyPI — that is upstream, not this fork.
Development
uv sync --extra http
make test
make lintTests are mocked. They do not call the live Strava API.
License
MIT. Copyright (c) 2025 Edd Mann. Fork modifications Copyright (c) 2026 Naoise Irwin. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
- FlaMapOAuthapp.flamap
Your own cycling data for your AI assistant: rides, power, climbs and routes. Read-only.
Ask your AI about your fitness: activities and data from Garmin, COROS, Strava, GPX and more
Strava MCP tools for AI: athletes, activities, segments, clubs, routes. Powered by HAPI MCP server.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Strava's API to access and manage activities, athlete data, routes, segments, clubs, and gear through natural language.227 npmMIT
- AlicenseBqualityDmaintenanceIntegrates with the Strava API to allow AI assistants to access fitness data including athlete profiles, activity history, and segment statistics. It enables users to query detailed performance metrics and explore geographic segment data through natural language commands.835 npmMIT
- AlicenseBqualityDmaintenanceConnects Claude to the Strava API to provide direct access to fitness data, including athlete statistics, detailed activity logs, and time-series performance metrics. It enables users to analyze training progress, compare workouts, and retrieve specific segment details through natural language queries.835 npmISC
- FlicenseNot gradedqualityBmaintenanceEnables querying and analyzing personal Strava activity data through natural language, including activities, segments, gear, and training trends.-