Strava API'ye bağlanan ve LLM'ler aracılığıyla Strava verilerine erişim sağlayan bir Model Context Protocol (MCP) sunucusu.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"r-huijts-strava-mcp": {
"command": "node",
"args": [
"~/.mcp/strava-mcp/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/r-huijts/strava-mcp.git ~/.mcp/strava-mcp
cd ~/.mcp/strava-mcp AI'nizi kullanarak Strava verilerinizle konuşun.
Claude'u Strava hesabınıza bağlayın ve düz İngilizcede sorular sorun: "Bu ay ne kadar koştum?", "Son bisiklet turumu analiz et" veya "En hızlı segmentlerimi göster."
Bağlandıktan sonra, Claude'a tüm Strava verilerinize erişimi olan bir arkadaş gibi konuşun:
"Bu ay kaç kilometre koştum?"
"Ocak ile Aralık arasında koşu istatistiklerimi karşılaştır"
"Şimdiye kadar en uzun bisiklet turumun ne?"
"Son bisiklet antrenmanımı parçala - güç, kalp atış hızı ve kadansı göster"
"Dün koşuşum sırasında kalp atış hızı bölgelerim nasıl görünüyordu?"
"Interval antrenmanımda her tur için ortalama tempom ne?"
"Central Park'ın yakınında en popüler bisiklet segmentleri neler?"
"Yıldızlı segmentlerimi göster"
"Pazar sabahı rotamı GPX dosyası olarak dışa aktar"
"Bu haftaki antrenman yükümü analiz et"
"Mevcut fitness'im geçen ay ile nasıl kıyaslanıyor?"
"Bu yıl bisiklet performansımın bir özetini ver"
Claude Desktop konfigürasyon dosyanızı açın:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonDosyaya bunu ekleyin:
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@r-huijts/strava-mcp-server"]
}
}
}
Bu MCP server'ı claude code'a aşağıdaki komutla ekleyebilirsiniz:
claude mcp add --transport stdio strava -- npx @r-huijts/strava-mcp-server
Başarılı kurulumu aşağıdaki gibi doğrulayabilirsiniz:
% claude mcp list
Checking MCP server health...
strava: npx @r-huijts/strava-mcp-server - ✓ Connected
Yeni konfigürasyonu yüklemek için Claude Desktop'ı kapatıp yeniden açın.
Claude'a basitçe şunu söyleyin:
"Connect my Strava account" (Strava hesabımı bağla)
Bir tarayıcı penceresi açılacak. Strava API kimlik bilgilerinizi girin, uygulamayı yetkilendirin ve bitti!
Hepsi bu! Aktiviteleriniz hakkında soru sormaya başlayın.
"Connect my Strava account" dediğinizde işte ne olur:
Kimlik bilgileriniz ~/.config/strava-mcp/config.json dosyasına yerel olarak kaydedilir ve oturumlar arasında kalıcı olur.
Ücretsiz bir Strava API uygulaması oluşturmanız gerekir (tek seferlik kurulum):
http://localhost)localhost olmalıHepsi bu! Bunu sadece bir kez yapmanız gerekir.
force: true)Kurulum gerekli değil! Hızlı Başlangıç'taki npx komutu en son sürümü otomatik olarak indirir ve çalıştırır.
Eğer bir kez yüklememeyi tercih ederseniz:
npm install -g @r-huijts/strava-mcp-server
Ardından Claude config'inizi güncelleyin:
{
"mcpServers": {
"strava": {
"command": "strava-mcp-server"
}
}
}
Not: Paket adı @r-huijts/strava-mcp-server olsa da, geriye dönük uyumluluk için çalıştırılabilir adı strava-mcp-server kalır.
Kodu değiştirmek isteyen geliştiriciler için:
git clone https://github.com/r-huijts/strava-mcp.git
cd strava-mcp
npm install
npm run build
Ardından Claude'u yerel derlemesine işaret edin:
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/path/to/strava-mcp/dist/server.js"]
}
}
}
Siz: Bu haftada egzersiz için ne yaptım?
Claude: Strava'daki bu haftanın aktivitelerine baktığımızda şunları tamamladınız:
- Pazartesi: 5,2km koşu (28:15)
- Çarşamba: 45km bisiklet turu (1:32:00)
- Cumartesi: 10km koşu (52:30)
Toplam: 3 aktivite içinde 60,2km. Harika tutarlılık!
Siz: Son bisiklet antrenmanımı detaylı olarak analiz et
Claude: İşte dün "Evening Loop" turununuzun analizi:
Genel Bakış
- Mesafe: 42,3 km
- Zaman: 1:28:45
- Ort. Hız: 28,6 km/s
Güç Analizi
- Ortalama Güç: 185W
- Normalleştirilmiş Güç: 198W
- Maksimum Güç: 520W
Kalp Atış Hızı
- Ortalama: 142 bpm
- Maksimum: 175 bpm
- Bölge 4+ saati: 23 dakika
Güç-kalp atış hızı oranınız iyi aerobik verimliliği gösteriyor...
Siz: Boulder, Colorado'nun yakınında zorlu bisiklet tırmanışları bul
Claude: Boulder'ın yakınında popüler tırmanış segmentleri:
- Flagstaff Road - 5,2km, %6,8 ort. gradient
- Sunshine Canyon - 3,8km, %7,2 ort. gradient
- Left Hand Canyon - 8,1km, %4,5 ort. gradient
Bunlardan herhangi birini yıldızlamak istiyorum musunuz böylece daha sonra kolayca bulabilirsiniz?
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "Connect my Strava account" | Strava'yı Claude'a bağlar |
| "Check my Strava connection" | Bağlantı durumunu gösterir |
| "Get my Strava profile" | Profil bilgilerinizi gösterir |
| "What shoes do I have?" | Ayakkabılarınız ve kullanım mesafesini listeler |
| "What are my training zones?" | KA ve güç bölgelerinizi gösterir |
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "Show my recent activities" | Son antrenmanlarınızı listeler |
| "Get all my runs from January" | Aktiviteleri filtrelerle getirir |
| "Analyze activity 12345" | Bir aktivite hakkında detaylı bilgi |
| "Show the laps from my last run" | Tur-tur analiz |
| "Get heart rate data from my ride" | Zaman serisi antrenman verileri (optimize sıkıştırılmış format) |
| "Show photos from my hike" | Aktivite fotoğrafları |
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "What are my running stats?" | YTD ve tüm zamanlar toplamları |
| "How far have I cycled this year?" | Aktivite toplamları türe göre |
| "What's my longest ride?" | Kişisel rekorlar |
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "Show my starred segments" | Favori segmentleriniz |
| "Find segments near [location]" | Popüler segmentleri keşfet |
| "Get details on segment 12345" | Segment bilgisi ve liderlik tablosu |
| "Star this segment" | Favori olarak kaydet |
| "Show my efforts on [segment]" | Bir segmentteki denemeleriniz |
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "List my saved routes" | Oluşturduğunuz rotalar |
| "Get details for my [route name]" | Rota bilgisi |
| "Export [route] as GPX" | GPS cihazları için indir |
| "Export [route] as TCX" | GPS cihazları için indir |
| Ne sorabilirsiniz | Ne yapar |
|---|---|
| "What clubs am I in?" | Strava kulüplerini listeler |
claude_desktop_config.json'inizin geçerli JSON olduğundan emin olun (trailing commas yok!)@r-huijts/strava-mcp-server'a güncelledikten sonra JSONRPC hatası alıyorsanız:
rm -rf ~/.npm/_npx çalıştırın@r-huijts/strava-mcp-server kullanıyor (eski strava-mcp-server değil)npx -y @r-huijts/strava-mcp-server çalıştırın - "Starting Strava MCP Server v1.2.1..." görmelisinizTarayıcı tabanlı kimlik doğrulama yerine ortam değişkenlerini ayarlayabilirsiniz:
| Değişken | Açıklama |
|---|---|
STRAVA_CLIENT_ID |
Strava Application Client ID'niz |
STRAVA_CLIENT_SECRET |
Strava Application Client Secret'ınız |
STRAVA_ACCESS_TOKEN |
OAuth access token |
STRAVA_REFRESH_TOKEN |
OAuth refresh token |
ROUTE_EXPORT_PATH |
GPX/TCX dışa aktarmaları için dizin |
Server, süresi dolmuş token'ları otomatik olarak yeniler. Yeni token'lar hem process.env hem de ~/.config/strava-mcp/config.json dosyasına kaydedilir.
~/.config/strava-mcp/config.json.env dosyasınpm install
npm run build
npm test
get-activity-streams aracı, varsayılan olarak sıkıştırılmış bir format kullanır ve yük boyutunu ~70-80% azaltır:
Sıkıştırılmış format, LLM'lerin ham sayısal verileri anlaması için kapsamlı meta veriler (birimler, açıklamalar, istatistikler) içerir.
Server, Model Context Protocol (MCP) uygular ve Strava API v3 için 25 araç ortaya çıkarır. Uygulama ayrıntıları için src/tools/ dizinindeki kaynak koda bakın.
Katkılar hoş geldindir! Lütfen bir Pull Request gönderin.
MIT License - ayrıntılar için LICENSE dosyasına bakın.
Sorular? GitHub üzerinde bir issue açın.