Strava MCP Server

A remote Model Context Protocol server for the Strava API that runs serverless on AWS Lambda.

Get Started View on GitHub


What is this?

The Strava MCP Server is a production-ready Model Context Protocol server that enables AI assistants like Claude to interact with your Strava account. It runs completely serverless on AWS Lambda, staying within the FREE tier for personal use.

Key Features

  • πŸ” Automatic OAuth Token Refresh - Set it and forget it
  • ☁️ Serverless AWS Lambda - Runs in the free tier
  • πŸ“± Claude Web & Mobile OAuth - Secure connector support
  • πŸƒ 11 Strava API Tools - Activities, athlete stats, streams, clubs, uploads
  • 🎯 Activity Enrichment - Transform generic workout titles into detailed training logs
  • ⚑ Built with Bun - Fast builds and deployments

Quick Start

1. Prerequisites

2. Clone and Install

git clone https://github.com/Stealinglight/StravaMCP.git
cd StravaMCP
bun install

3. Get Strava Credentials

node get-token.js YOUR_CLIENT_ID YOUR_CLIENT_SECRET

4. Build and Deploy

bun run build:lambda
bun run deploy

Follow the prompts to enter your Strava credentials and AWS region.

5. Connect to Claude

After deployment, copy the ClaudeConnectionUrl and add it to Claude:

Claude Web: Settings β†’ Connectors β†’ Add custom connector (OAuth, base URL) Claude Mobile: Settings β†’ MCP Servers β†’ Add Server

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Claude (Web/App)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ Streamable HTTP
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AWS Lambda      β”‚
β”‚ Function URL    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP Protocol
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Strava API      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Available Tools

Activities

  • get_activities - List recent activities
  • get_activity_by_id - Get detailed activity info
  • create_activity - Create manual activities
  • update_activity - Enrich activities with details
  • get_activity_zones - Get heart rate/power zones

Athlete

  • get_athlete - Get profile information
  • get_athlete_stats - Training statistics

Streams

  • get_activity_streams - Time-series telemetry data

Clubs

  • get_club_activities - Club member activities

Uploads

  • create_upload - Upload FIT/TCX/GPX files
  • get_upload - Check upload status

Why Serverless?

Traditional MCP servers run locally and can’t be used with Claude web or mobile. By deploying to AWS Lambda:

  • βœ… Access your Strava data from any device
  • βœ… Works with Claude web and mobile
  • βœ… Zero infrastructure to manage
  • βœ… Free tier means $0/month for personal use
  • βœ… Auto-scales from zero to thousands of requests

Cost

$0/month under AWS Free Tier for typical use:

  • 1M Lambda requests/month (FREE forever)
  • 400,000 GB-seconds compute/month (FREE for 12 months)
  • Typical usage: < 10,000 requests/month

Documentation


Made with ❀️ by Stealinglight