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.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"strava-mcp": {
"args": [
"mcp-remote",
"https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'wrangler' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
Wrangler affected by OS Command Injection in `wrangler pages deploy`
**Summary** A command injection vulnerability (CWE-78) has been found to exist in the `wrangler pages deploy` command. The issue occurs because the `--commit-hash` parameter is passed directly to a shell command without proper validation or sanitization, allowing an attacker with control of `--commit-hash` to execute arbitrary commands on the system running Wrangler. **Root cause** The `commitHash` variable, derived from user input via the `--commit-hash` CLI argument, is interpolated directl
Arbitrary remote code execution within `wrangler dev` Workers sandbox
### Impact The V8 inspector intentionally allows arbitrary code execution within the Workers sandbox for debugging. `wrangler dev` would previously start an inspector server listening on all network interfaces. This would allow an attacker on the local network to connect to the inspector and run arbitrary code. Additionally, the inspector server did not validate `Origin`/`Host` headers, granting an attacker that can trick any user on the local network into opening a malicious website the ability
Arbitrary remote file read in Wrangler dev server
### Impact Sending specially crafted HTTP requests and inspector messages to Wrangler's dev server could result in any file on the user's computer being accessible over the local network. An attacker that could trick any user on the local network into opening a malicious website could also read any file. ### Patches This issue was fixed in `wrangler@3.19.0`. Wrangler will now only serve files that are part of your bundle, or referenced by your bundle's source maps. ### Workarounds Configure Wr
Cloudflare Wrangler directory traversal vulnerability
### Impact The Wrangler command line tool (<=wrangler@3.1.0 or <=wrangler@2.20.1) was affected by a directory traversal vulnerability when running a local development server for Pages (wrangler pages dev command). This vulnerability enabled an attacker in the same network as the victim to connect to the local development server and access the victim's files present outside of the directory for the development server. ### Patches Wrangler2: Upgrade to v2.20.1 or higher. Wrangler3: Upgrade to v3
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in health
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
MCP server for the ClinicalTrials.gov v2 API. Search trials, retrieve study details and results, and match patients to eligible trials.
Manage your Hevy workouts, routines, folders, and exercise templates. Create and update sessions faster, organize plans, and search exercises to build workouts quickly. Stay synced with changes so your training log is always up to date.
MCP server for Oura Ring API v2 (sleep, activity, readiness, heart rate, workouts).
MCP Security Weekly
Get CVE alerts and security updates for Strava Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
The MCP server (powered by Cloudflare Workers) serves two roles:
This project serves as a reference example for integrating OAuth providers with an MCP server deployed to Cloudflare, using the workers-oauth-provider library.
npm install -g wrangler)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
Go to Strava's API Settings and create a new application
Configure your application:
mcp-strava-oauth.<your-subdomain>.workers.devhttps://mcp-strava-oauth.<your-subdomain>.workers.dev/callbackSet your production environment variables:
wrangler secret put STRAVA_CLIENT_ID
wrangler secret put STRAVA_CLIENT_SECRET
Create a separate Strava API application for development
Configure your development application:
localhosthttp://localhost:8788/callbackCreate a .dev.vars file in your project root:
STRAVA_CLIENT_ID=your_development_strava_client_id
STRAVA_CLIENT_SECRET=your_development_strava_client_secret
Install the Inspector tool:
npx @modelcontextprotocol/inspector@latest
Connect to your server:
https://mcp-strava-oauth.<your-subdomain>.workers.dev/ssehttp://localhost:8788/sse{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"
]
}
}
}
Start the development server:
wrangler dev
The server will be available at http://localhost:8788
The Strava API has the following rate limits:
The OAuth Provider library handles:
Provides:
this.propsEnables: