Get the FREE Ultimate OpenClaw Setup Guide →

strava

A Model Context Protocol (MCP) server with Strava OAuth integration, built on Cloudflare Workers. Enables secure authentication and tool access for MCP clients like Claude and Cursor through Strava login. Perfect for developers looking to integrate Strava authentication with AI tools.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio kw510-strava-mcp npm start \
  --env CF_KV_NAMESPACE="OAUTH_KV (Cloudflare KV namespace ID)" \
  --env STRAVA_CLIENT_ID="Your Strava client id" \
  --env STRAVA_CLIENT_SECRET="Your Strava client secret"

How to use

This MCP server provides an OAuth 2.1 provider that authenticates MCP clients using Strava as the external identity provider. It acts as the OAuth authorization server for your MCP clients while also delegating user authentication to Strava. Once deployed (to Cloudflare Workers), clients can connect to this MCP server to obtain access tokens and user context via Strava-authenticated sessions. The included workflow supports issuing tokens, validating them, and securely storing session data in KV, making it suitable for integrating Strava-powered user data into MCP-powered tools and workflows.

To use the tooling, deploy the server to Cloudflare, configure your Strava application and environment variables (client id/secret), and then connect MCP clients (like Claude Desktop or other MCP-enabled tools) to the server's OAuth endpoints. For development and testing, you can use the Inspector tool to monitor authentication flows and the Claude Desktop integration to manage OAuth flows from your desktop environment. The README’s example shows how to reference this MCP server from Claude Desktop by supplying the server URL endpoint and letting the MCP framework handle the rest of the OAuth dance with Strava as the provider.

How to install

Prerequisites:

  • Strava account and Strava API credentials (client ID and client secret)
  • Cloudflare account and Wrangler CLI installed (npm i -g wrangler)
  • Node.js and npm installed

Installation steps:

  1. Clone the repository and install dependencies: git clone https://github.com/kw510/strava-mcp.git cd strava-mcp npm install

  2. Set up Strava API credentials (production):

    • In Strava Settings, create an application and configure the callback domains/URLs as described in the README.
    • Set environment secrets for production: wrangler secret put STRAVA_CLIENT_ID wrangler secret put STRAVA_CLIENT_SECRET
  3. Configure the Cloudflare KV namespace (production): wrangler kv:namespace create "OAUTH_KV" Update wrangler.toml with the generated KV ID.

  4. Start development server locally (for testing): wrangler dev The server will be available at http://localhost:8788

  5. Deploy to Cloudflare Workers (production): wrangler publish

Note: The exact entry point for running locally in this setup is handled by the Wrangler/Cloudflare Worker environment. The npm start script should boot the local development server as described in the repository.

Additional notes

Tips and common considerations:

  • Ensure the Strava OAuth callback URLs in your Strava application match exactly what is configured in your environment (production vs development).
  • For development, you can create a separate Strava app and use localhost callbacks as outlined in the README.
  • Environment variables to configure include STRAVA_CLIENT_ID and STRAVA_CLIENT_SECRET; these should be kept secret and loaded as secrets in Cloudflare/Wrangler.
  • The MCP remote capabilities rely on the mcp-remote compatibility; when configuring clients (like Claude Desktop), point them to the server’s OAuth endpoints and the provided SSE stream for token refresh and session management.
  • Rate limits for Strava API: 200 requests per 15 minutes and 2,000 requests per day; plan your integration accordingly to avoid hitting limits.

Related MCP Servers

Sponsor this space

Reach thousands of developers