Higher Ground

コマンドラインからstravaデータをAIでレビューする:Strava MCP + llmコマンドの活用

Strava MCP サーバと llm を組み合わせて、コマンドラインから GPT に「今日のトレーニング内容をレビューして」と壁打ちできる環境を作る。


1. Strava MCP サーバの準備

まずは strava-mcp をローカルにインストールする。

git clone https://github.com/r-huijts/strava-mcp
cd strava-mcp
npm install
npm run build

# 初回はOAuth認証
npx tsx scripts/setup-auth.ts

2. llmllm-mcp のセットアップ

llm インストール

llm 本体を uv でインストール

uv tool install llm

OpenAI APIキーを設定

llm keys set openai

llm-mcp プラグインを導入

llm install 'llm-mcp==0.0.2'

Strava MCP サーバを登録

llm mcp servers add "node /Users/あなたのパス/strava-mcp/dist/server.js"

# 登録確認
llm mcp servers list
llm mcp servers view server | jq -r '.tools[].name'

get-athlete-profile, get-recent-activities などが出ればOK。


3. 壁打ちコマンドを zshrc に登録

.zshrc に以下を追記:

llm-strava() {
  # Stravaの.envを自動で読み込み
  if [ -f ~/repos/strava-mcp/.env ]; then
    export $(grep -v '^#' ~/repos/strava-mcp/.env | xargs)
  fi

  llm -m gpt-4.1-mini \
    -T get-athlete-profile \
    -T get-athlete-stats \
    -T get-recent-activities \
    -T get-activity-details \
    "$@"
}

再読み込み:

source ~/.zshrc

4. 使ってみる

llm-strava "直近のトレーニングをレビューして"

GPT が Strava MCP 経由でアクティビティを取得 → 数値を要約してレビューしてくれる。

// レスポンスのサンプル

🏃 朝のランニング(2025-09-06, 20.02 km)

- 移動時間:1時間49分32秒
- 経過時間:2時間38分13秒
- 距離:20.02 km
- 累積上昇:9 m(ほぼフラットなコース)
- 平均ペース:5:28/km(=平均速度11.0km/h)
- 最高速度:15.6 km/h(区間スパート有り)
- 平均心拍数:151 bpm、最大心拍数:164 bpm
- 平均ケイデンス:94 rpm
- 消費カロリー:1,507 kcal
- シューズ:ASICS novablast 5
- コメント:「給水と休憩しまくり20キロ」

---

▼ ペースと心拍詳細

- ペースは平均的に5:28/km前後。ラップごとに給水や休憩を挟んだ区間も複数存在します。
- 心拍数は徐々に上昇し、終盤に160台まで到達。持久的にしっかり追い込めています。
- ケイデンスは一貫して高め(93~96rpm)でフォームが安定。

---

▼ ラップと休憩傾向(21ラップ)

- 各ラップは1kmごと。大半が5:20~5:40/kmくらい。
- ただし、1kmを大きく超過した遅いラップ(例:Lap 13 29:57など)は長い休憩や給水タイム。
- 給水明け後もリズムを崩さず、ペース復帰が早いのが特徴です。
- 終盤(ラスト3km)はややビルドアップ。最後の1kmは5:11/km(平均心拍160.6)とラストスパート傾向。

---

▼ ストリーム(タイム計測データ)

- 心拍数:90~164bpm、平均151付近。しっかり負荷がかかっており、持久走として良いトレーニング強度。
- 速度:平均11.0km/h、最高13.8km/h。安定した一定走+途中アクセントあり。
- 高度:累積9mとほぼフラット。

---

▼ 総評とアドバイス

- 長めの距離走+こまめな給水・休憩により、熱中症や脱水対策を意識した安全な走り方です。
- 心拍・ケイデンスの両方で安定したフォームを維持できています。大きなペースダウン区間は休憩以外ほぼ無し。
- 今後は、もう少し休憩を短縮して一定時間走り続ける練習や、終盤のラスト数キロでやや上げるビルドアップの意識もおすすめ。

参考

#running #tech