Your Strava data,
ready to query.
A read-only MCP server that connects your Strava account to any MCP-compatible assistant — Claude, Cursor, Windsurf, and others. Ask questions about your training data directly in conversation. No data stored. No model training. No sharing.
Connect now GitHubConnect to the hosted instance
No account or deployment needed. Authorise via Strava and start querying your data.
Open your MCP client's connector settings. In Claude: Settings → Connectors → Add custom connector. In Cursor: Settings → MCP → Add server.
Enter the server URL:
https://strava-mcp.mikekeefe.workers.dev/mcpClick Connect. Your MCP client opens a Strava authorisation page — approve access and you're done.
Test it: ask "what's my latest activity?" or "show me my 5k PR history."
What this is not
19 read-only tools
get_athlete_profileName, location, weight, FTP
get_recent_activitiesActivity list with filters & pagination
get_activity_detailsFull activity breakdown
get_activity_streamsRaw per-second sensor data
get_activity_best_effortsBest efforts with PR ranks
get_athlete_best_effortsBest efforts at a distance, over time
get_athlete_summaryWeekly / monthly rollups
get_activity_zonesHR & power zone distribution
get_activity_lapsLap-by-lap breakdown
get_athlete_zonesYour zone thresholds
get_athlete_statsRecent / YTD / all-time totals
get_segment_detailsSegment info & your PR
list_my_segment_effortsAll your efforts on a segment
get_segment_effort_streamsPer-second segment streams
explore_segmentsFind segments in a bounding box
list_routesYour saved routes
get_route_detailsRoute metadata & streams
list_gearBikes & shoes with mileage
healthRate limits, cache stats, diagnostics
Deploy your own in 8 steps
Clone the repo and run
pnpm install.Create a Strava API app at strava.com/settings/api. Note your Client ID and Secret. Set the callback domain to
localhostfor now.Create a Cloudflare account (free tier works) and run
npx wrangler login.Create KV namespaces — run
npx wrangler kv namespace create TOKEN_CACHEandSTREAM_CACHE(plus--previewvariants). Paste the IDs intowrangler.jsonc.Deploy with
pnpm run deploy. Your Worker URL is printed at the end.Set secrets via
npx wrangler secret put—STRAVA_CLIENT_ID,STRAVA_CLIENT_SECRET,MCP_AUTH_TOKEN, andWEBHOOK_VERIFY_TOKEN.Update the Strava callback domain to your Worker's hostname, then register the webhook subscription so Strava can notify you on deauthorisation. See the README for the one-line curl command.
Add the server in your MCP client. In Claude: Settings → Connectors → Add custom connector → paste your Worker URL +
/mcp. Other clients follow a similar pattern — check their MCP documentation.