# strava-mcp [Health: Active]

**Category:** 🏃 Sports  
**Repository:** https://github.com/davidmosiah/strava-mcp  
**GitHub Stars:** 3  
**npm Downloads (last month):** 143  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/strava-mcp

## Description
Privacy-first MCP server for Strava activities, streams, routes and training.

## Tools
Capabilities this server exposes over MCP:

- **strava_connection_status** — verify local setup, scopes and readiness before calling Strava
- **strava_data_inventory** — inventory supported data domains, scopes, privacy modes and recommended first calls without calling Strava APIs.
- **strava_daily_summary** — latest activity, weekly load and intensity context for today
- **strava_weekly_summary** — scorecard, comparison vs prior week, next-week training plan

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "strava-mcp": {
    "command": "npx",
    "args": ["-y","delx-wellness-hermes"]
  }
}
```

## Documentation

## 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.

_Full upstream README: https://allmcps.com/mcp/strava-mcp/readme_

