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: 2. Set up your Strava API credentials (see Setting Up Strava API Credentials) 3. Set up your Cloudflare KV namespace: Update the wrangler.toml file with the generated KV ID. 4. Deploy to Cloudflare: 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. .workers.dev - Authorization Callback URL: https://mcp-strava-oauth. .workers.dev/callback 3. Set your production environment variables: 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: Testing Your MCP Server Using Inspector 1. Install the Inspector tool: 2. Connect to your server: - For production: https://mcp-strava-oauth. .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: 3. Restart Claude Desktop and complete the OAuth flow Development Local Development 1. Start the development server: 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