1. Conduid
  2. Commerce
  3. kw510/strava-mcp
MCP server · Commerce

kw510/strava-mcp

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.

57Fair

Scored 5 months ago · breakdown

About kw510/strava-mcp

kw510/strava-mcp is an MCP server published by kw510 in the Commerce category: 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.

The repository has 26 stars and 8 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/kw510/strava-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (37)

createActivityCreate a new activity on Strava

Parameters not published.

createRouteCreate a route

Parameters not published.

createUploadUpload an activity

Parameters not published.

deleteActivityDelete an activity

Parameters not published.

exploreSegmentsExplore segments

Parameters not published.

exportRouteGPXExport route as GPX

Parameters not published.

exportRouteTCXExport route as TCX

Parameters not published.

getActivityGet details of a specific activity

Parameters not published.

getActivityCommentsGet comments for a specific activity

Parameters not published.

getActivityKudoersGet kudoers for a specific activity

Parameters not published.

Show all 37 tools
getActivityLapsGet laps for a specific activity

Parameters not published.

getActivityPhotosGet photos from an activity

Parameters not published.

getActivityStreamsGet streams for a specific activity

Parameters not published.

getActivityZonesGet zones for a specific activity

Parameters not published.

getAthleteKomsGet athlete

Parameters not published.

getAthleteStatsGet statistics for a specific athlete

Parameters not published.

getAthleteZonesGet heart rate and power zones for authenticated athlete

Parameters not published.

getClubGet details about a specific club

Parameters not published.

getClubAdminsGet club administrators

Parameters not published.

getClubAnnouncementsGet club announcements

Parameters not published.

getLoggedInAthleteGet user info from Strava

Parameters not published.

getRelatedActivitiesGet related activities

Parameters not published.

getRouteGet details about a specific route

Parameters not published.

getRouteStreamsGet route streams

Parameters not published.

getSegmentGet details about a specific segment

Parameters not published.

getSegmentEffortStreamsGet streams for a specific segment effort

Parameters not published.

getSegmentEffortsGet efforts for a specific segment

Parameters not published.

getSegmentLeaderboardGet segment leaderboard

Parameters not published.

getSegmentStreamsGet streams for a specific segment

Parameters not published.

getStarredSegmentsList starred segments

Parameters not published.

getUploadStatusGet upload status

Parameters not published.

listAthleteActivitiesList authenticated athlete

Parameters not published.

listAthleteClubsList clubs for authenticated athlete

Parameters not published.

listAthleteRoutesList routes for authenticated athlete

Parameters not published.

starSegmentStar or unstar a segment

Parameters not published.

updateActivityUpdate an activity

Parameters not published.

updateLoggedInAthleteUpdate the currently authenticated athlete

Parameters not published.

Ask AI

✦

Ask AI about kw510/strava-mcp

Powered by Claude · Grounded in docs

I know everything about kw510/strava-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 2 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Model Context Protocol (MCP) Server + Strava OAuth

This is a Model Context Protocol (MCP) server that supports remote MCP connections, with Strava OAuth built-in. It allows users to connect to your MCP server by signing in with their Strava account.

Overview

The MCP server (powered by Cloudflare Workers) serves two roles:

  • Acts as an OAuth Server for your MCP clients
  • Acts as an OAuth Client for Strava's OAuth services

This project serves as a reference example for integrating OAuth providers with an MCP server deployed to Cloudflare, using the workers-oauth-provider library.

Prerequisites

  • A Strava account
  • A Cloudflare account
  • Node.js and npm installed
  • Wrangler CLI installed (npm install -g wrangler)

Quick Start

  1. Clone the repository:

    git clone https://github.com/kw510/strava-mcp.git
    cd strava-mcp
    npm install
    
  2. Set up your Strava API credentials (see Setting Up Strava API Credentials)

  3. Set up your Cloudflare KV namespace:

    wrangler kv:namespace create "OAUTH_KV"
    

    Update the wrangler.toml file with the generated KV ID.

  4. Deploy to Cloudflare:

    wrangler deploy
    

Setting Up Strava API Credentials

For Production

  1. Go to Strava's API Settings and create a new application

  2. Configure your application:

    • Application Name: Choose a name for your application
    • Category: Select an appropriate category
    • Website: Your website URL
    • Application Description: Brief description of your application
    • Authorization Callback Domain: mcp-strava-oauth.<your-subdomain>.workers.dev
    • Authorization Callback URL: https://mcp-strava-oauth.<your-subdomain>.workers.dev/callback
  3. Set your production environment variables:

    wrangler secret put STRAVA_CLIENT_ID
    wrangler secret put STRAVA_CLIENT_SECRET
    

For Development

  1. Create a separate Strava API application for development

  2. Configure your development application:

    • Authorization Callback Domain: localhost
    • Authorization Callback URL: http://localhost:8788/callback
  3. Create a .dev.vars file in your project root:

    STRAVA_CLIENT_ID=your_development_strava_client_id
    STRAVA_CLIENT_SECRET=your_development_strava_client_secret
    

Testing Your MCP Server

Using Inspector

  1. Install the Inspector tool:

    npx @modelcontextprotocol/inspector@latest
    
  2. Connect to your server:

    • For production: https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse
    • For development: http://localhost:8788/sse

Using Claude Desktop

  1. Open Claude Desktop and go to Settings -> Developer -> Edit Config
  2. Add your MCP server configuration:
    {
      "mcpServers": {
        "strava": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"
          ]
        }
      }
    }
    
  3. Restart Claude Desktop and complete the OAuth flow

Development

Local Development

  1. Start the development server:

    wrangler dev
    
  2. The server will be available at http://localhost:8788

API Rate Limits

The Strava API has the following rate limits:

  • 200 requests every 15 minutes
  • 2,000 requests per day

How It Works

OAuth Provider

The OAuth Provider library handles:

  • OAuth 2.1 server implementation
  • Token issuance and validation
  • Secure token storage in KV
  • Strava OAuth integration

Durable MCP

Provides:

  • Persistent state management
  • Secure authentication context storage
  • User information access via this.props
  • Conditional tool availability

MCP Remote

Enables:

  • Client-server communication
  • Tool definition and management
  • Request/response serialization
  • SSE connection maintenance

Troubleshooting

  • If you see error messages in Claude Desktop, verify the connection by hovering over the 🔨 icon
  • For Cursor integration, use the "Command" type and combine command and args into one string
  • Ensure your callback URLs match exactly with what's configured in your Strava application

README fetched from the repository 2 hours ago. The original is authoritative.

Questions

About kw510/strava-mcp

How do I install kw510/strava-mcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is kw510/strava-mcp safe to use with an AI agent?

Its trust score is 57 out of 100 (fair). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is kw510/strava-mcp still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.