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 install
Set 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.toml file 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.dev - Authorization 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:
localhost - Authorization 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@latest
- Connect to your server:
- For production:
https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse - For 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 dev
- 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
Strava MCP
Project Details
- kw510/strava-mcp
- MIT License
Categories
Recomended MCP Servers
This repo hosts an MCP server for volatility3.x
A Model Context Protocol (MCP) server for interacting with the Canvas API. This server allows you to manage...
MCP Server implementation for Xcode integration
This project provides a toolset to crawl websites wikis, tool/library documentions and generate Markdown documentation, and make that...
This is the most comprehensive wordpress mcp server. Includes functionality to perform CRUD operations on Users, Blogs, Categories...
A comprehensive stdio MCP server for DataForSEO API
A MCP server for interacting with Bear note-taking software.
A MCP provider Deepseek reasoning content to MCP-enabled AI Clients, like Claude Desktop. Supports access to Deepseek's CoT...





