Strava MCP server
Privacy-first MCP server for Strava activities, streams, routes and training.
3 stars418 downloads/wk
Reviews
Write oneNobody has reviewed Strava yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Strava tools (21, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
strava_agent_manifestMachine-readable install, runtime and client guidance for AI agents. Includes Hermes direct tool names and anti-gateway-restart guidance. Does not call Strava or expose secrets.
strava_cache_statusShow optional local SQLite cache status. Enable with STRAVA_CACHE=sqlite or STRAVA_CACHE=true.
strava_capabilitiesExplain supported Strava data, privacy boundaries, GPS handling, recommended agent workflow and project links. Does not call Strava or expose secrets.
strava_connection_statusCheck local Strava config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Strava or exposing secrets.
strava_daily_summaryBuild a practical daily training/load summary from recent Strava activities. Read-only and non-medical.
strava_data_inventoryInventory supported Strava data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Strava APIs or expose user data.
strava_demoReturns realistic example payloads of strava_daily_summary, strava_training_context, and strava_list_activities so agents see the contract before calling real Strava APIs.
strava_exchange_codeExchange a Strava OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned.
strava_get_activity_streamsGet Strava activity streams such as time, distance, heartrate, cadence, watts and altitude. GPS latlng is withheld unless include_gps=true or privacy_mode=raw.
strava_get_athleteGet the authenticated Strava athlete profile. Requires read/profile scope depending on requested fields.
strava_get_athlete_statsGet public-visible aggregate Strava stats for the authenticated athlete.
strava_get_auth_urlGenerate a Strava OAuth authorization URL. Use this first when no local token exists.
strava_get_zonesGet the authenticated athlete heart-rate and power zones when available.
strava_onboardingRead-only. Return the 11-question Delx Wellness onboarding flow (en or pt-BR), the current shared profile, missing critical fields, and a cross-connector hint. Use this when the user starts a fresh wellness session and you need to fill out preferred_name, goals, devices, training context, nutrition, preferences, and safety. Strava continues to redact GPS by default — onboarding does not change tha
strava_privacy_auditReturn local privacy, cache, token-path, GPS redaction and env-presence posture without revealing secret values.
strava_profile_getRead the canonical Delx Wellness profile shared with the other wellness MCP connectors (Nourish, Cycle Coach, CGM, etc.). Read-only. Profile stores only what the user typed during onboarding — never OAuth tokens, API keys, or biomarkers. Note: this profile does NOT change Strava's GPS-redaction default; Strava continues to redact latlng and route geometry unless STRAVA_GPS_INCLUDE=true or include_
strava_profile_updatewrite actionPersist a partial patch to the canonical Delx Wellness profile. Requires explicit_user_intent=true after the user confirms they want to save. Rejects secret-like fields (oauth, token, api_key, password, cookie, refresh, session). Strava's GPS-redaction default is unaffected by profile changes.
strava_quickstartPersonalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Strava?'
strava_revoke_accessRevoke the current Strava OAuth access grant and delete the local token file. Use only when the user explicitly wants to disconnect Strava.
strava_training_contextNormalize recent Strava activity load into a compact training_context for workout recommendation engines. Includes fallback guidance when recent Strava activity is missing.
strava_weekly_summaryBuild a weekly Strava scorecard with volume, intensity, sport mix, bottlenecks and next-week actions. Read-only and non-medical.
Public scan report
scanner v0.1.10 · 2026-11-10 · same rubric, same numbers if you re-run it
- Code scan58 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 5 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Strava compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,114 servers
- Tools
- 21
- the typical server has 7
- Tools that change things
- 5%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 3
- more than 80% of 28,851 servers
- Downloads a week
- 418
- more than 86% of 15,093 servers with a package
What its tools let an agent do: 20 read · 1 change
Install Strava in Claude Code, Cursor or VS Code
Runs npx -y strava-mcp-unofficial on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add strava-mcp -- npx -y strava-mcp-unofficial
What the publisher says
From the Strava repository's README, as published. We do not edit it. Read it on GitHub
<!-- delx-wellness header v2 --> Strava MCP
Give your AI agent your Strava activities, streams, segments and routes — locally. Local-first MCP server — tokens never leave your machine.
⚡ One-command install with Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup — preconfigures this connector and the other 8 in a dedicated Hermes profile.
Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below.
HTTP (v2 stateless)
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y strava-mcp-unofficial --http
# GET http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp (sessionless)Env: STRAVAMCPHOST, STRAVAMCPPORT, STRAVAMCPTRANSPORT=http.
<!-- /delx-wellness header v2 -->
Local-first MCP server that connects AI agents to your Strava activities, routes, streams and training context.
Unofficial project. Not affiliated with, endorsed by or supported by Strava, Inc. Strava is a trademark of its respective owner. Use this only with your own Strava account and in line with Strava's API agreement.
Built by David Mosiah for people who use Claude, Cursor, Hermes, OpenClaw or other MCP-compatible agents to think about training, endurance and performance — without copy-pasting numbers from Strava.
Part of Delx Wellness, a registry of local-first wellness MCP connectors.
If this connector helps your agent workflow, please star the repo. Stars make the project easier for other AI builders to discover and help Delx keep shipping local-first wellness infrastructure.
Why this exists
Strava holds the long memory of your training — every ride, run, swim, segment, route and stream. But it lives behind an OAuth API with strict rate limits (200 req/15min, 2k/day per app) and GPS data that's privacy-sensitive by default.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Strava: common questions
- Is Strava MCP server safe?
- Mostly: it is graded B (83/100). Read the Strava safety report
- How do I install Strava?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Strava need an API key?
- Yes. The registry entry asks for
STRAVA_CLIENT_SECRET. - Is Strava maintained?
- The last commit was 10 days ago (2026-11-05). The latest release is v0.4.6.
- How does Strava compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,114 servers); tools 21 (the typical server has 7); tools that change things 5% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.