MCP Strava Server について
MCP Strava Server は、Strava と Claude for Desktop を接続し、フィットネスアクティビティを AI で分析するための MCP サーバーです。自然言語でトレーニング記録を確認したい Strava ユーザーに向いています。
主な機能
- 01心拍・ペース・標高・パワーなどのデータストリーム取得
- 02アクティビティごとのラップ別スプリットの表示
- 03400m から 10k までの個人ベスト記録とランキング
- 04日付範囲によるページ送りのアクティビティ検索
- 05Google マップのリンク付きルート提案
活用シーン
- 01月や年をまたいだトレーニング量の比較
- 02直近のランニングにおける心拍と標高の分析
- 03付近の人気のランニングコースやサイクリングコースの検索
MCP 対応
本プロジェクトは MCP サーバーであり、Claude for Desktop などの MCP クライアントに対して Strava のアクティビティ、統計、ルート関連のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Strava サーバー
Strava と Claude for Desktop を連携し、フィットネスアクティビティを AI で分析できるようにする Model Context Protocol(MCP)サーバーです。
機能
- ⭐ ルート生成 - Google Maps のリンク付きで往復ルートを提案します(API キー不要)
- ⭐ 人気ルート - 近くの人気の Strava セグメントを見つけ、セグメントを経由する Google Maps のループルートを取得します
- OAuth 認証 - トークンの自動更新と永続化に対応しています
- アクティビティ分析 - ID を指定してアクティビティの詳細を取得したり、最近のアクティビティを閲覧したりできます
- データストリーム - あらゆるアクティビティの心拍数、ペース、高度、ケイデンス、パワー、GPS データを取得します
- ラップスプリット - ラップごとの距離、時間、速度、標高、心拍数を取得します
- 自己ベスト記録 - ランニングの最速 400m、1k、1 マイル、5k、10k などのペースと PR 順位を取得します
- ページ分割検索 - ページネーションを使って日付範囲でアクティビティを検索します
- 過去の比較 - 年ごとの月別データを比較します
- 統計 - 全期間の統計、週ごと/月ごとの概要を取得します
- フィルタリング - アクティビティの種類(Run、Ride、Swim など)で絞り込みます
利用可能なツール
| ツール | 説明 |
|---|---|
auth_strava | Strava の認証を行います(ブラウザーが開きます) |
logout | アカウントを切り替えるため、保存されたトークンを消去します |
last_activity | 最新のアクティビティの詳細を取得します |
get_activity | ID を指定して任意のアクティビティを取得します |
recent_activities | 直近 10 件のアクティビティを一覧表示します |
search_activities | 任意の日付範囲(before/after はエポック時刻、page、per_page)を指定してページ分割検索します |
athlete_stats | 全期間の統計(ライド、ランニング、スイム)を取得します |
activities_by_type | スポーツの種類でアクティビティを絞り込みます |
weekly_summary | 過去 7 日間の概要を取得します |
monthly_summary | 過去 30 日間の概要を取得します |
month_summary | 指定した月/年の概要を取得します |
compare_months | 2 つの月を比較します(例:2025 年 1 月と 2026 年 1 月) |
get_streams | 最新のアクティビティの心拍数データを取得します |
get_activity_streams | 任意のアクティビティの完全なデータストリーム(心拍数、ペース、高度、ケイデンス、パワー、GPS など)を取得します |
get_laps | 任意のアクティビティのラップスプリット(距離、時間、速度、標高、心拍数)を取得します |
get_best_efforts | ランニングの自己ベスト記録(400m、1k、1 マイル、5k、10k、…)のペースと PR 順位を取得します |
suggest_route | 往復ルートを生成し、ナビゲーション用の Google Maps リンクを取得します |
popular_routes | 近くの人気の Strava セグメントを見つけ、セグメントを経由する Google Maps ルートを作成します |
セットアップ
1. リポジトリをクローンする
git clone https://github.com/MariyaFilippova/mcp-strava.git
cd mcp-strava
2. Strava API の認証情報を設定する
Strava API の設定から認証情報を取得します。
src/main/resources/.env を作成/編集します。
CLIENT_ID="your-client-id"
CLIENT_SECRET="your-client-secret"
3. プロジェクトをビルドする
./gradlew shadowJar
JAR は次の場所に生成されます:build/libs/strava-mcp-server-2.1.0-all.jar
4. Claude for Desktop を設定する
Claude の設定ファイルを編集します。
# macOS
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows
code %APPDATA%\Claude\claude_desktop_config.json
MCP サーバーを追加します。
{
"mcpServers": {
"strava": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/mcp-strava/build/libs/strava-mcp-server-2.1.0-all.jar"
]
}
}
}
Claude for Desktop を再起動します。
使用例
設定が完了したら、Claude に次のような質問をできます。
- 「最近の Strava アクティビティを表示して」
- 「ランニングの全期間の統計を教えて」
- 「2025 年 1 月と 2026 年 1 月を比較して」
- 「今週のサイクリングの概要を教えて」
- 「今月のトレーニングを先月と比較して」
- 「アクティビティ 123456789 のラップスプリットを表示して」
- 「直近のランニングの心拍数と標高データを分析して」
- 「2025 年 3 月のアクティビティをすべて見つけて」
- 「ニューヨーク市のセントラルパークを起点とする 5km のランニングルートを提案して」
- 「48.8566, 2.3522 から始まる 10km のサイクリングルートを生成して」
- 「ニューヨーク市のセントラルパーク付近の人気ランニングセグメントを見つけて」
- 「パリから 10km 以内の人気サイクリングルートを表示して」
認証
初回使用時に、サーバーはStravaの認証のためにブラウザーを開きます。トークンは~/.strava-mcp-token.jsonに保存され、有効期限が切れると自動的に更新されます。
アカウントを切り替える必要がある場合は、logoutツールを使用して保存済みのトークンを消去してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。