Strava MCP Server について
Strava MCP Server は、Strava API から選手のアクティビティデータを取得する MCP サーバーです。言語モデルが最近のアクティビティ、期間指定の記録、個別アクティビティの詳細を参照できます。返されるフィールドは単位が統一されており、モデルがそのまま分析しやすくなっています。
主な機能
- 01最近のアクティビティを件数指定で取得
- 02日付範囲によるアクティビティ検索
- 03過去数日分のアクティビティ絞り込み
- 04ID指定による単一アクティビティの詳細取得
- 05距離・時間・速度・標高をメートル法で返却
活用シーン
- 01前週のトレーニング内容の確認
- 02過去1か月で最も長いランニングの特定
- 03直近のサイクリングの詳細データ取得
MCP 対応
本プロジェクトは、Strava のアクティビティを照会するツールを MCP クライアントに提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Strava MCP サーバー
Strava API へのアクセスを提供する Model Context Protocol(MCP)サーバーです。言語モデルから Strava API のアスリートのアクティビティデータを照会できます。
利用可能なツール
サーバーは次のツールを公開します。
アクティビティの照会
get_activities(limit: int = 10): 認証済みアスリートの最近のアクティビティを取得しますget_activities_by_date_range(start_date: str, end_date: str, limit: int = 30): 指定した日付範囲内のアクティビティを取得しますget_activity_by_id(activity_id: int): 特定のアクティビティの詳細情報を取得しますget_recent_activities(days: int = 7, limit: int = 10): 過去 X 日間のアクティビティを取得します
日付は ISO 形式(YYYY-MM-DD)で指定してください。
アクティビティデータの形式
サーバーは、一貫したフィールド名と単位でアクティビティデータを返します。
| フィールド | 説明 | 単位 |
|---|---|---|
name | アクティビティ名 | - |
sport_type | スポーツの種類 | - |
start_date | 開始日時 | ISO 8601 |
distance_metres | 距離 | メートル |
elapsed_time_seconds | 経過時間の合計 | 秒 |
moving_time_seconds | 移動時間 | 秒 |
average_speed_mps | 平均速度 | メートル毎秒 |
max_speed_mps | 最高速度 | メートル毎秒 |
total_elevation_gain_metres | 累積標高 | メートル |
elev_high_metres | 最高標高 | メートル |
elev_low_metres | 最低標高 | メートル |
calories | 消費カロリー | kcal |
start_latlng | 開始地点の座標 | [lat, lng] |
end_latlng | 終了地点の座標 | [lat, lng] |
認証
このサーバーを利用するには、Strava API の認証が必要です。次の手順に従ってください。
-
Strava API アプリケーションを作成します。
- Strava API Settings にアクセスします
- アプリケーションを作成し、Client ID と Client Secret を取得します
- Authorization Callback Domain を
localhostに設定します
-
リフレッシュトークンを取得します。
- 同梱の
get_strava_token.pyスクリプトを使用します。
python get_strava_token.py- 表示される指示に従ってアプリケーションを認証します
- スクリプトによってトークンが
.envファイルに保存されます
- 同梱の
-
環境変数を設定します。 サーバーには次の環境変数が必要です。
STRAVA_CLIENT_ID:Strava API の Client IDSTRAVA_CLIENT_SECRET:Strava API の Client SecretSTRAVA_REFRESH_TOKEN:Strava API の Refresh Token
使用方法
Claude for Desktop
claude_desktop_config.json(macOS では ~/Library/Application\ Support/Claude/claude_desktop_config.json、Windows では %APPDATA%/Claude/claude_desktop_config.json にあります)を更新して、次の内容を追加します。
{
"mcpServers": {
"strava": {
"command": "uvx",
"args": [
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "YOUR_CLIENT_ID",
"STRAVA_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"STRAVA_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN"
}
}
}
}
Claude Web
Claude Web では、サーバーをローカルで実行し、MCP 拡張機能を使って接続できます。
質問の例
接続後、Claude に次のような質問をできます。
- 「最近のアクティビティを教えてください」
- 「先週のアクティビティを表示してください」
- 「過去1か月で最も長かったランニングは何ですか?」
- 「最新のサイクリングアクティビティの詳細を教えてください」
エラー処理
サーバーは、よくある問題について人が読みやすいエラーメッセージを表示します。
- 日付形式が無効
- API 認証エラー
- ネットワーク接続の問題
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。