Get the FREE Ultimate OpenClaw Setup Guide →

strava

Personal MCP server for Strava with OAuth authentication, beautiful dashboard, and personal MCP URLs for AI assistants

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio gabeperez-strava-mcp uvx gabeperez-strava-mcp-oauth \
  --env POKE_API_KEY="Optional: your Poke API key for webhooks" \
  --env STRAVA_CLIENT_ID="Your Strava Client ID" \
  --env STRAVA_CLIENT_SECRET="Your Strava Client Secret" \
  --env STRAVA_WEBHOOK_VERIFY_TOKEN="Optional: verification token for webhooks (default: STRAVA_MCP_WEBHOOK)"

How to use

This MCP server enables an AI-assisted interface to your Strava data via the Strava MCP OAuth implementation. It exposes a set of MCP tools that allow natural language queries to retrieve activities, segments, routes, athlete stats, and related Strava data, plus optional real-time webhook notifications when you complete workouts. The server is designed for personal use, with a single webhook key (Poke or equivalent) used to deliver notifications to your chosen AI assistants. You can authenticate with Strava through the provided OAuth flow, auto-refresh tokens, and access a dashboard to inspect your data.

To use it, deploy the server to a Cloudflare Workers environment (or your preferred runtime) and configure the required environment variables and secrets (Strava client credentials, webhook keys, and optional Poke API key). Once configured, authenticating with Strava grants the MCP tools access to your data. You can then ask your AI assistant questions like “Show me my recent runs,” “What’s my weekly total distance?” or “Provide my top segments,” and the MCP tools will fetch and return the results. If you enable webhooks, you’ll receive real-time updates pushed to your webhook endpoint whenever you complete workouts.

How to install

Prerequisites

  • Node.js 18+ installed
  • Cloudflare account (free tier) with Wrangler CLI
  • Strava API credentials (Client ID and Client Secret)
  • Optional: Poke API key if you plan to enable real-time webhooks

Step-by-step setup

  1. Clone the repository and install dependencies
git clone https://github.com/gabeperez/strava-mcp-oauth.git
cd strava-mcp-oauth
npm install
  1. Sign in to Cloudflare and set up the project
wrangler login
wrangler secret put STRAVA_CLIENT_ID
# paste your Strava Client ID
wrangler secret put STRAVA_CLIENT_SECRET
# paste your Strava Client Secret
  1. Configure kv namespace and secrets as needed (per README instructions in the project).
  2. Deploy to Cloudflare
npm run deploy
  1. Open the deployed worker URL and complete the Strava OAuth setup in the dashboard if prompted. Then configure your webhook and MCP URL in your AI assistant integrations.

Additional notes

Notes and tips:

  • This MCP server is intended for personal use and uses a single Poke API key for webhook delivery; multi-user support is not available yet.
  • Ensure you securely manage Strava API credentials and webhook tokens. Use environment variables or Cloudflare Secrets as recommended by the project.
  • If you encounter token expiration issues, rely on the auto token refresh feature described in the README to keep access valid without manual re-authentication.
  • Webhook setup requires providing a valid Poke API key and defining a verification token; you can test the endpoint with the provided manage-webhook script.
  • The Cloudflare edge network aims for low latency, but actual performance depends on your location and the Cloudflare region used by the deployment.

Related MCP Servers

Sponsor this space

Reach thousands of developers