SportMCP
🏃 SportMCP — Strava für jeden KI-Agenten
Produktionsreifer MCP-Server für Strava — funktioniert mit Claude Desktop, Cursor, Windsurf, Cline, Continue.dev, Poke und jedem anderen MCP-kompatiblen KI-Agenten.
Ein vollständiger Model Context Protocol-Server, der jedem KI-Assistenten sicheren Lesezugriff auf deine persönlichen Strava-Fitnessdaten gewährt. Stelle ihn einmalig auf Cloudflare Workers bereit, authentifiziere dich mit Strava und füge deine persönliche MCP-URL in die KI-Tools ein, die du verwendest.
Kompatibel mit Strava. SportMCP ist nicht mit Strava verbunden und wird von Strava weder unterstützt noch gesponsert.
✨ Features
🤖 Funktioniert mit jedem MCP-Client — Claude Desktop, Cursor, Windsurf, Cline, Continue.dev, Poke und weitere
🔐 Sichere OAuth — Standard-Strava-OAuth-2.0, Token-Isolation pro Benutzer
🏃 21 MCP-Tools — Aktivitäten, Runden, Kudos, Kommentare, Segmente, Segmentleistungen, Routen, Ausrüstung, Clubs, Athleten-Zonen und mehr
🔔 Optionale Webhooks — Echtzeit-Poke-Benachrichtigungen bei abgeschlossenen Workouts (Schlüssel pro Benutzer)
🔄 Automatisches Token-Refresh — Tokens werden vor Ablauf automatisch erneuert
🎨 Dashboard — Web-UI mit Ein-Klick-Konfigurationssnippets für alle gängigen KI-Agenten
⚡ Edge-Performance — Globales Cloudflare-Workers-Netzwerk, Antwortzeiten unter 50 ms
💰 Kostenloses Kontingent — 100k Anfragen/Tag zum Nulltarif
🛡️ Compliance — Volle Einhaltung der Strava-API-Vereinbarung, Deauth-Bereinigung innerhalb von 48 h
Related MCP server: Strava MCP Server
🚀 Schnellstart
Hinweis: Das Deployen auf Cloudflare erfordert einige Terminalbefehle, aber wir haben es so einfach wie möglich gemacht!
Klicke einen Button, dann führe einen Befehl aus
Am besten geeignet für Nutzer, die lieber klicken, als Befehle zu tippen.
⚠️ Stelle sicher, dass du das Repo zuerst forkst/duplizierst ⚠️
Schritt 1: Klicke auf „Deploy to Cloudflare“
Das wird:
Es auf deinem Cloudflare-Konto deployen
Dir eine Worker-URL geben
Schritt 2: Konfiguration abschließen
Nach dem Deploy musst du Secrets und Webhooks konfigurieren:
Terminal öffnen (Mac: Cmd+Leertaste, „Terminal“ eintippen | Windows: nach „PowerShell“ suchen)
Deinen Fork klonen und das Setup ausführen:
# Replace YOUR-USERNAME with your GitHub username git clone https://github.com/YOUR-USERNAME/strava-mcp.git cd strava-mcp npm install node scripts/setup.jsBeantworte die Aufforderungen:
Strava Client ID (erhältst du unter strava.com/settings/api)
Strava Client Secret
Poke API-Key (oder ein anderer AI-/Chat-App-Key) für Webhooks (optional)
Fertig! Rufe deine Worker-URL auf und authentifiziere dich mit Strava.
Kopiere 5 Befehle, beantworte ein paar Fragen, fertig!
Am besten geeignet für Nutzer, die sich mit Terminalbefehlen auskennen.
Dieses automatisierte Skript übernimmt alles: Forken, Datenbankerstellung, Konfiguration, Secrets, Webhooks und Deployment.
Schritt 1: Terminal öffnen
Mac: Drücke Cmd+Leertaste, tippe „Terminal“, drücke Enter
Windows: Suche nach „Command Prompt“ oder „PowerShell“
Schritt 2: Befehle kopieren und einfügen
Füge diese Befehle einen nach dem anderen ein (drücke nach jedem Enter):
# Download the project
git clone https://github.com/gabeperez/strava-mcp.git
# Go into the folder
cd strava-mcp
# Install dependencies (takes ~30 seconds)
npm install
# Login to Cloudflare (opens browser - just click "Allow")
wrangler login
# Run automated setup (asks you a few questions, then does everything!)
node scripts/setup.jsSchritt 3: Beantworte die Aufforderungen
Das Skript fragt dich nach:
Strava Client ID – erhältst du von strava.com/settings/api
Strava Client Secret – dieselbe Seite wie oben
Webhooks einrichten? – Tippe „y“ für Push-Benachrichtigungen (optional)
Poke API-Key – falls du Webhooks gewählt hast, erhältst du den von poke.com/settings/advanced
Schritt 4: Du teilst! 🎉
Das Skript automatisch:
✅ Erstellt deine Datenbank (KV-Namespace)
✅ Aktualisiert alle Konfigurationsdateien
✅ Setzt deine Secrets sicher
✅ Richtet Webhooks ein (falls du mit ja geantwortet hast)
✅ Deployt auf Cloudflare
✅ Gibt dir deine Worker-URL aus
Schritt 5: Dashboard aufrufen
Öffne die URL, die dir das Skript gegeben hat (sieht so aus:
https://sportmcp.deinname.workers.dev)Klicke auf „Authenticate with Strava“
Du siehst dein schönes Dashboard mit:
🏃 Letzte Aktivitäten
📊 Leistungsstatistiken
🔗 Persönliche MCP-URL für KI-Assistenten
🔔 Webhook-Status (falls aktiviert)
Schritt 6: Mit deinem KI-Agenten verbinden
Kopiere deine persönliche MCP-URL aus dem Dashboard und füge sie zu deinem bevorzugten KI-Agenten hinzu:
🤖 Verbinden mit KI-Agenten
SportMCP verwendet das Standard-Model Context Protocol und funktioniert daher mit jedem MCP-kompatiblen Client. Deine persönliche URL sieht so aus:
https://your-worker.workers.dev/mcp?token=YOUR_TOKENClaude Desktop
Bearbeite ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sportmcp": {
"url": "https://your-worker.workers.dev/mcp?token=YOUR_TOKEN"
}
}
}Starte Claude Desktop nach dem Speichern neu.
Cursor
Gehe zu Settings → Cursor Settings → MCP und füge hinzu:
{
"mcpServers": {
"sportmcp": {
"url": "https://your-worker.workers.dev/mcp?token=YOUR_TOKEN"
}
}
}Windsurf
Gehe zu Settings → Cascade → MCP Servers und füge denselben JSON-Block wie oben bei Cursor hinzu.
Cline (VS Code)
Öffne Cline → MCP Servers → Edit Config und füge denselben JSON-Block hinzu.
Continue.dev
Füge zu ~/.continue/config.json hinzu:
{
"mcpServers": [
{
"name": "sportmcp",
"transport": {
"type": "streamable-http",
"url": "https://your-worker.workers.dev/mcp?token=YOUR_TOKEN"
}
}
]
}Poke
Gehe zu Settings → Integrations → Add MCP Server und füge deine MCP-URL direkt dort ein.
Jeder andere MCP-Client
Zwei Transporte sind verfügbar:
Streamable HTTP (empfohlen):
POST /mcp?token=YOUR_TOKENHTTP+SSE (Legacy, z. B. ältere Claude-Desktop-Versionen):
GET /sse?token=YOUR_TOKEN+POST /messages?token=YOUR_TOKEN
Das war's! Frage deinen KI-Agenten: „Zeig mir meine letzten Strava-Workouts“ 🎉
Für Entwickler, die volle Kontrolle möchten
Wenn du lieber alles manuell konfigurierst, anstatt das automatisierte Skript zu verwenden:
Voraussetzungen:
Node.js 18+ installiert (hier herunterladen)
Cloudflare-Konto (kostenlos) – registrieren
Strava-API-App – eine erstellen
Auszuführende Befehle:
# 1. Download and install
git clone https://github.com/gabeperez/strava-mcp.git
cd strava-mcp
npm install
# 2. Login to Cloudflare (opens browser)
wrangler login
# 3. Create database (KV namespace)
wrangler kv:namespace create STRAVA_SESSIONS
# Copy the "id" from output and paste into wrangler.jsonc
# 4. Set your Strava API credentials
wrangler secret put STRAVA_CLIENT_ID
# Paste your Client ID when prompted
wrangler secret put STRAVA_CLIENT_SECRET
# Paste your Client Secret when prompted
# 5. Deploy to Cloudflare
npm run deploy
# 6. Visit your worker URL to authenticate
open https://your-worker-name.your-subdomain.workers.dev/authOptional: Webhooks einrichten
wrangler secret put STRAVA_WEBHOOK_VERIFY_TOKEN
wrangler secret put POKE_API_KEYEine detaillierte manuelle Anleitung findest du in README_DEPLOY.md.
🔔 Echtzeit-Webhooks (Optional)
⚠️ Nur für den persönlichen Gebrauch: Webhooks senden Benachrichtigungen derzeit an einen einzelnen Poke-API-Key. Aktiviere sie nur, wenn du die einzige Person bist, die diese Instanz nutzt. Multi-User-Webhook-Support folgt in Kürze.
Erhalte sofortige Push-Benachrichtigungen über Poke, sobald du deine Workouts beendet hast!
🏃 New Strava Workout!
**Morning Run**
Type: Run
Date: Oct 29, 2025 7:30 AM
Distance: 10.5 km
Duration: 52 minutes
Pace: 4:57 min/km
Elevation: 120m
Avg HR: 145 bpm
🏆 2 PRs!Wird beim Abschluss einer Aktivität über iMessage/SMS sofort an dein Telefon gesendet!
Schnelle Webhook-Einrichtung
# 1. Set Poke API key (get from https://poke.com/settings/advanced)
wrangler secret put POKE_API_KEY
# 2. Set webhook verification token
wrangler secret put STRAVA_WEBHOOK_VERIFY_TOKEN
# Enter: STRAVA_MCP_WEBHOOK
# 3. Test endpoint
node scripts/manage-webhook.js test
# 4. Create subscription
STRAVA_CLIENT_ID=xxx STRAVA_CLIENT_SECRET=xxx \
node scripts/manage-webhook.js create
# 5. Monitor events
wrangler tailDie vollständige Anleitung findest du in WEBHOOK_SETUP.md
📚 Verfügbare MCP-Tools (insgesamt 21)
Stelle neue KI-Assistenten Fragen in natürlicher Sprache, und diese Tools werden automatisch aufgerufen:
Aktivitäten
Tool | Beispiel-Frage |
| „Zeig mir meine letzten 5 Workouts“ |
| „Hole Details für meine letzte Fahrt“ |
| „Zeig mir die Herzfrequenzdaten meines letzten Laufs“ |
| „Wie waren meine Rundenzeiten?“ |
| „Wer hat mir bei meinem Lauf Kudos gegeben?“ |
| „Welche Kommentare habe ich bekommen?“ |
Athlet
Tool | Beispiel-Frage |
| „Was sind meine Strava-Profilangaben?" |
| „Was sind meine Radsport-Statistiken dieses Jahr?“ |
| „Welche Herzfrequenz-Trainingszonen habe ich?" |
| „In welchen Strava-Clubs bin ich?“ |
| „Liste meine gespeicherten Routen auf“ |
Segmente
Tool | Beispiel-Frage |
| „Welche Segmente habe ich mit Stern markiert?“ |
| „Finde Anstiegs-Segmente in der Nähe von San Francisco“ |
| „Erzähl mir von Segment 1234“ |
| „Was sind meine besten Leistungen auf diesem Segment?" |
| „Hole Details zu Segment-Leistung 5678" |
Ausrüstung & Social
Tool | Beispiel-Frage |
| „Wie viele Meilen habe ich auf meinen Laufschuhen?“ |
| „Erzähl mir von meinem Radsport–club“ |
| „Hole Details zu meiner Wochenendroute“ |
| „Wie verbinde ich mein Strava-Konto?“ |
| „Wie fange ich an?” |
🌐 Endpunkte
Endpunkt | Met |
| Oben auf der Seite mit roter Doku |
| Start OAuth-Verfahren |
| Ein persönliches Dashboard mit Statistiken |
| MCP-Server-Endpunkt (für KI-Agenten) |
| Strava-Webhook-Empfänger (optional) |
| Test Poke-Integration |
🎯 Verwendungsbeispiele
Mit Poke
Füge MCP-Server in Poke Einstellungen hinzu
Verw:i.e.
https://deine-worker-url.workers.dev/mcpFrage: „Was war mein Passe bei meinem gestrigen Lauf?“
Mit Claude Desktop
Füge zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"strava": {
"url": "https://your-worker-url.workers.dev/mcp"
}
}
}Fragen in natürlicher Sprache
„Zeige mir meine Mood aktivitäten letzte Strava-Aktivitäten“
„Wie hoch war meine Herzfrequenz während meines letzten Laufes?“
„Hole die Leistungsdaten von meiner gestrigen Rheintour“
„Finde anspruchsvolle Segmente in der Nähe von Boulder“
„Was sind meine Straßen-Radsportstatistiken folgende?“
🔒 Sicherheitsmerkmale
Device-Fingerprinting — Automatische Authentifikation über den Browser
Token Refresh — Nahtlose Verlängerung vor dem Ablauf
Nutzerstart-Isolation — Vollständige Datentrennung
Sicherer Speicher — KV-Verschlüsselung für Tokens
CSRF-Schutz — State-Validierung im OAuth-Flow
Rate Limiting — Berücksichtigt die Strava-API-Kontingente
🏗️ Architektur
┌─────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ AI Assistant │───▶│ Cloudflare Worker │───▶│ Strava API │
│ (Poke/Claude) │ │ │ │ │
│ │ │ • MCP Server │ │ • Activities │
│ Natural Language│ │ • OAuth Handler │ │ • Segments │
│ Queries │ │ • Device Auth │ │ • Routes │
│ │ │ • Token Manager │ │ • Stats │
│ │ │ • Webhook Handler │ │ │
└─────────────────┘ └──────────────────────┘ └─────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌─────────────────┐
│ Cloudflare KV │ │ Poke API │
│ • Sessions │ │ • Push Notify │
│ • OAuth Tokens │ │ • iMessage/SMS │
│ • Activity Data │ └─────────────────┘
└──────────────────┘📖 Dokumentation
README_DEPLOY.md — Schritt-für-Schritt-Deployment (5 Minuten)
WEBHOOK_QUICKSTART.md — Schnelle Webhook-Referenz
WARP.md — Entwicklungs- und Architekturdokumentation
PUBLISHING_CHECKLIST.md — Leitfaden für die Veröffentlichung von Templates
🛠️ Tech-Stack
Laufzeit: Cloudflare Workers (V8-Isolate)
Framework: Hono (leichtes Web-Framework)
Speicher: Cloudflare KV (Sitzungen & Tokens)
Protokoll: Model Context Protocol (MCP)
Authentifizierung: Strava OAuth 2.0
Benachrichtigungen: Poke-API (optional)
💰 Preise
100 % kostenlos! Der Server läuft auf dem großzügigen kostenlosen Kontingent von Cloudflare:
Workers: 100.000 Anfragen/Tag
KV-Speicher: 100.000 Lesevorgänge/Tag, 1.000 Schreibvorgänge/Tag
Bandbreite: unbegrenzt im kostenlosen Tarifstufe
Perfekt für die private Nutzung. Keine Kreditkarte erforderlich.
🔧 Entwicklung
Lokales Testen
# Install dependencies
npm install
# Start local server
wrangler dev
# Visit http://localhost:8787Tests ausführen
npm testUmgebungsvariablen
In .iv.example find du alle Konfigurationsoptionen.
👛️ Fehlerbehebung
Fehler „Authentifizierung erforderlich“
Besüche
/auth, um dich erneut zu authentifizierenStelle sicher, dass dee dzuselben Browser/dasselbe Gerät verwendest
Prüfe den
/status-Enpunkt, um die Sitzung zu überprüfen
„Ungültige Callback-Domain“
Veriifiziere, ob die Callback-Domain der Strava-Aapp exakt mit der Worker-URL übereinstmmt
Gib nicht das Protokoll (http://) oder den Pfad (/callback) an
Keine Webhook-Events empfangen
Führe
honuke scripts/manage-Webhook.js viewaus, um das Subscribeion zu überprüfenÜberwache die Logs mit
wrangler tailStelle sicher, dass der Athlete authentifiziert ist (besuche
/dashboard)Prüfe, ob die Strava-App die richtigen OAuth-Berechtigungsumfäge hat
Poke-Benachrichtigungen funktionieren nicht
Stelle sicher, dass
POKE_API_KEYgesetzt ist:wrangler secret listTeste manuall:
Honke -X POST https://your-worker-url.workers.dev/test-pokePrüfe die Logs auf Poke-API-Fehler
„KV-Namespace nicht gefunden“
Erotze einen Namespace:
wrangler kv:namespace create STRAVA_SESSIONSAaktualeriere die ID in
wrangler.jsonc
„Deployment fehlgeschlagen“
Stelle sicher, dass du angemeldet bist:
wrangler whoamiPrüfe die Syntax in
wrangler.jsoncStelle sicher, dass alle Secrets gesetzt sind
🗎 Roadmap
In Kürze
Multi-Benutzer-Webhook-Unterstützung – Benutzer-spezifische Notification-Schlüssel und -Routen
Weitere Benachrichtigungskanäle – Discord, Slack, E-Mail, usw.
Aktivitätsanalysen – Trends, Einblicke und Trainingsbelastungs-Tracking
Eigene Web-hook-Filter – Wähle, welche Aktivitäten Benachrichtigungen auslösen
Du interessierst dich für einen Bezug? Eröffene eine Diskussion!
🤝 Beiträge
Weitere are always: Bitte:
Fork das Repository
Erstelle einen Feature-Branch (
git branch -b feature/amazing-feature)Committe deine Änderungen (
git commit -m 'Add amazing eig feature')Pushe deine Änderungen (
git push origin feature/amazing-feature)Öffne einen Pull-Request
📝 Lizenzelling
MIT-Lizenz – Die Details findest du in der Datei LICENSE.
🙏 Credits
Gebaut mit Honon
Angetrieben von Cloudflare Workers
MCP by Anthropic
Benachrichtigungen übe aus Poke
Inspiriyet von der Strava-Communität ️♀️🚴️♂️
⭐ Stern-Lauf
Wenn dir dieses Projekt geholfen hat, erwöge, ihm einen Stern zu geben!
Mitg ❤️ gemacht für Athleten, die Fürht lieben
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.
Related MCP Connectors
Strava MCP tools for AI: athletes, activities, segments, clubs, routes. Powered by HAPI MCP server.
Private Apple Health metrics and workout detail for ChatGPT, Claude, and any MCP client.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport. Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates with the Strava API to allow AI assistants to access fitness data including athlete profiles, activity history, and segment statistics. It enables users to query detailed performance metrics and explore geographic segment data through natural language commands.861MIT
- AlicenseBqualityDmaintenanceEnables users to interact with their Strava data through natural language to analyze workouts, track fitness progress, and explore routes. It supports retrieving detailed activity stats, heart rate data, and segment insights directly within AI assistants.26445MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access Strava running data, route planning, and weather information for intelligent running coaching.15MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to directly access and analyze Strava activity data, including runs, rides, and swims, through natural language queries.417MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vivekvy-run/strava-mcp-oauth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server