Strava MCP logo

Strava MCP

Connects AI agents to Strava data locally with OAuth, privacy controls, and daily or weekly training summaries.

Install Strava MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "strava-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "delx-wellness-hermes"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y delx-wellness-hermes

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 10d ago.

Overview

The strava-mcp MCP server connects MCP-compatible agents to Strava activities, streams, routes, and training context through the official Strava API v3. It keeps OAuth tokens on the local machine, throttles requests under Strava limits, and hides GPS coordinates unless explicitly enabled. Use it to check connection readiness, inspect available data, review recent training, or compare weekly load and intensity. It runs over stdio by default and can also expose a sessionless loopback HTTP endpoint.

Use cases

  • Check Strava OAuth readiness before making API calls
  • Review today's activity, weekly load, and intensity
  • Compare weekly training with the prior week
  • Test agent prompts with synthetic Strava data
  • Inspect Strava data availability and privacy modes

Key features

  • Local OAuth token storage
  • GPS redaction with explicit opt-in access
  • Daily and weekly training summaries
  • Strava data and scope inventory
  • Stdio and optional loopback Streamable HTTP transports
  • Request throttling for Strava API limits

Tools4

What Strava MCP lets your agent do. Expand a tool for its parameters.

Self-reported~95 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

10/10 checks healthy over the last 51d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · delx-wellness-hermes (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
npm downloads143Package downloads in the last 30 days.
Last commit5d agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed4Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How Strava MCP works

What strava-mcp does

The strava-mcp MCP server gives an AI agent access to selected data from the authenticated athlete's Strava account. Supported data includes recorded activities such as runs, rides, swims, walks, and workouts; activity details, zones, splits, streams, athlete information, routes, clubs, and gear. Strava's public API does not provide live device telemetry or continuous heart-rate data, so those use cases are outside this server's scope.

The server is designed for local use. OAuth tokens are saved on the user's machine rather than sent through another service. GPS latitude and longitude are omitted by default, while structured and summary responses redact route geometry. GPS streams can be requested explicitly with include_gps=true or by using raw mode.

How it works

The strava-mcp MCP server uses Strava API v3 and exposes the account through MCP tools. Begin with strava_connection_status to check local configuration, OAuth scopes, and readiness. strava_data_inventory describes supported domains, privacy modes, scopes, and suggested first calls without making Strava API requests.

For training analysis, strava_daily_summary reports the latest activity together with weekly load and intensity context. strava_weekly_summary provides a scorecard, a comparison with the previous week, and a next-week training plan. A separate strava_demo call returns synthetic, clearly marked data so prompts and integrations can be tested before connecting a real account.

The default transport is stdio. An optional Streamable HTTP mode listens on loopback, uses sessionless JSON responses, and provides a health endpoint at /health with MCP requests sent to /mcp. Request throttling is included for Strava's documented per-app limits of 200 requests per 15 minutes and 2,000 per day.

Setup and configuration

Create a Strava application with the redirect URI http://127.0.0.1:3000/callback. Run npx -y strava-mcp-unofficial setup to enter the client ID and secret. Configuration is stored at ~/.strava-mcp/config.json with restrictive file permissions. Run npx -y strava-mcp-unofficial auth to authorize the account; --no-open prints the authorization URL for headless environments.

Before adding the server to an agent, run npx -y strava-mcp-unofficial doctor. This checks the Node.js version, environment variables, local configuration, callback behavior, token file and permissions, refresh token, and OAuth scopes. The required read scopes include read, activity:read_all, and profile:read_all.

A stdio client can launch the package with npx -y strava-mcp-unofficial. HTTP mode is enabled with --http; STRAVA_MCP_HOST, STRAVA_MCP_PORT, and STRAVA_MCP_TRANSPORT=http configure the optional HTTP listener.

Limitations and notes

This is an unofficial project and is not affiliated with or supported by Strava. It should be used with the account owner's data and in accordance with Strava's API agreement. GPS access is intentionally opt-in, and route geometry is redacted in summary and structured modes. The server provides Strava API data rather than continuous device telemetry.

The demo response is synthetic and tagged with is_demo: true; it should not be treated as the athlete's real training history. OAuth approval and suitable Strava scopes are required for live account data.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Strava MCP

strava-mcp is an MCP server that connects AI agents to the Strava API v3 and exposes local tools for connection checks, data inventory, daily summaries, and weekly summaries. It keeps OAuth tokens on the user's machine, redacts GPS by default, and can provide synthetic demo data for testing before live account access.

Install it by running `npx -y strava-mcp-unofficial setup`, then authorize Strava with `npx -y strava-mcp-unofficial auth`. Create a Strava app first with the callback URI `http://127.0.0.1:3000/callback`, and run `doctor` to verify setup and scopes.

Yes, strava-mcp works with Cursor through its standard MCP configuration. Add a server entry that launches `npx` with `-y strava-mcp-unofficial`, then complete local Strava setup and authorization before calling the tools.

strava-mcp hides GPS latitude and longitude by default. GPS streams require explicit `include_gps=true` or raw mode, and route geometry is redacted in summary and structured responses.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewStrava MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/strava-mcp?style=directory)](https://allmcps.com/mcp/strava-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/strava-mcp"><img src="https://allmcps.com/api/badge/strava-mcp?style=directory" alt="Strava MCP on AllMCPs" /></a>