strava-mcp
Provides OAuth-based integration with Strava, enabling authentication and access to Strava's API for managing athlete data and activities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@strava-mcpshow my last 5 activities"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository:
git clone https://github.com/kw510/strava-mcp.git cd strava-mcp npm installSet up your Strava API credentials (see Setting Up Strava API Credentials)
Set up your Cloudflare KV namespace:
wrangler kv:namespace create "OAUTH_KV"Update the
wrangler.tomlfile with the generated KV ID.Deploy to Cloudflare:
wrangler deploy
Setting Up Strava API Credentials
For Production
Go to Strava's API Settings and create a new application
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.devAuthorization Callback URL:
https://mcp-strava-oauth.<your-subdomain>.workers.dev/callback
Set your production environment variables:
wrangler secret put STRAVA_CLIENT_ID wrangler secret put STRAVA_CLIENT_SECRET
For Development
Create a separate Strava API application for development
Configure your development application:
Authorization Callback Domain:
localhostAuthorization Callback URL:
http://localhost:8788/callback
Create a
.dev.varsfile 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
Install the Inspector tool:
npx @modelcontextprotocol/inspector@latestConnect to your server:
For production:
https://mcp-strava-oauth.<your-subdomain>.workers.dev/sseFor development:
http://localhost:8788/sse
Using Claude Desktop
Open Claude Desktop and go to Settings -> Developer -> Edit Config
Add your MCP server configuration:
{ "mcpServers": { "strava": { "command": "npx", "args": [ "mcp-remote", "https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse" ] } } }Restart Claude Desktop and complete the OAuth flow
Development
Local Development
Start the development server:
wrangler devThe 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.propsConditional 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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kw510/strava-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server