mcpField
S
Strava MCP Server

Strava MCP Server

ローカル
github.com/r-huijtsヘルスケア50320 週間前に更新

Strava MCP Server について

Strava MCP Server は Strava API に接続する MCP サーバーで、LLM を通じて利用者のアクティビティデータについて質問できます。ランニングやサイクリングの記録を自然言語で分析したい Strava ユーザー向けです。

主な機能

  1. 01アクティビティ、ラップ、心拍データの取得
  2. 02プロフィール、トレーニングゾーン、用具の走行距離の表示
  3. 03セグメントの閲覧、スター登録、ランキングの確認
  4. 04ルートを GPX または TCX 形式でエクスポート
  5. 05Zwift の .zwo ワークアウトファイルの生成

活用シーン

  1. 01一定期間のランニングやサイクリングの走行距離の集計
  2. 02単一のワークアウトのパワーと心拍の分析
  3. 03近くの人気セグメントの検索とスター登録

MCP 対応

本プロジェクトは MCP サーバーであり、アクティビティ、セグメント、ルート、クラブの照会などの Strava 関連ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"strava": {
"command": "npx",
"args": [
"-y",
"@r-huijts/strava-mcp-server"
]
}
}
}
起動コマンドnpx -y @r-huijts/strava-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@r-huijts/strava-mcp-server

ツール

24

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

Strava MCP サーバー

AI を使って Strava のデータと会話しましょう。

Claude を Strava アカウントに接続すると、自然な英語で質問できます。「今月は何キロ走った?」「最後のライドを分析して」「最速のセグメントを表示して」など。

MseeP.ai セキュリティ評価バッジ

Strava Server MCP サーバー

何ができますか?

接続したら、Strava の全データにアクセスできる友人と話すように、Claude に話しかけるだけです。

🏃 進捗を追跡する

「今月は何キロ走りましたか?」

「1月から12月までのランニング統計を比較して」

「これまでで最長のライドは何ですか?」

📊 ワークアウトを分析する

「最後のサイクリングワークアウトを詳しく分析して。パワー、心拍数、ケイデンスを表示して」

「昨日のランニング中、心拍数ゾーンはどのような状態でしたか?」

「インターバルトレーニングの各ラップの平均ペースは?」

🗺️ ルートとセグメントを探索する

「セントラルパーク付近で最も人気のあるサイクリングセグメントはどれですか?」

「スター付きのセグメントを表示して」

「日曜朝のルートを GPX ファイルとしてエクスポートして」

🏆 コーチングの分析情報を得る

「今週のトレーニング負荷を分析して」

「現在のフィットネスを先月と比較するとどうですか?」

「今年のサイクリングのパフォーマンスをまとめて」


クイックスタート(3 ステップ)

ステップ 1:Claude Desktop に追加する

Claude Desktop の設定ファイルを開きます。

  • Mac:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

ファイルに以下を追加します。

{
  "mcpServers": {
    "strava": {
      "command": "npx",
      "args": ["-y", "@r-huijts/strava-mcp-server"]
    }
  }
}
ステップ 1(別の方法):Claude Code に追加する

次のコマンドで、この MCP サーバーを Claude Code に追加できます。

claude mcp add --transport stdio strava -- npx @r-huijts/strava-mcp-server

次のようにして、インストールが成功したことを確認できます。

% claude mcp list
Checking MCP server health...

strava: npx @r-huijts/strava-mcp-server - ✓ Connected
ステップ 2:Claude Desktop を再起動する

Claude Desktop を終了して再度開き、新しい設定を読み込みます。

ステップ 3:Strava に接続する

Claude に次のように話しかけます。

「Strava アカウントに接続して」

ブラウザーウィンドウが開きます。Strava API の認証情報を入力してアプリを認証すれば完了です。

これだけです! アクティビティについて質問してみましょう。


Strava アカウントへの接続

初回セットアップ

「Strava アカウントに接続して」と言うと、次のことが行われます。

  1. ブラウザーウィンドウが開き、セットアップページが表示されます
  2. Strava API の認証情報(Client ID と Client Secret)を入力します
  3. 「Continue to Strava」をクリックすると、Strava にリダイレクトされます
  4. Strava のウェブサイトでアプリを認証します
  5. 成功メッセージが表示されたら、ブラウザーを閉じて構いません
  6. 完了です! Claude が接続完了を確認します

認証情報は ~/.config/strava-mcp/config.json にローカル保存され、セッションをまたいで保持されます。

Strava API の認証情報を取得する

無料の Strava API アプリケーションを作成する必要があります(初回のみ)。

  1. strava.com/settings/api にアクセスします
  2. 「Create an App」をクリックします(または既存のアプリを表示します)
  3. フォームに入力します。
    • Application Name:任意の名前(例:「My Claude Assistant」)
    • Category:任意の項目を選択
    • Website:任意の内容(例:http://localhost)
    • Authorization Callback Domain:localhost にする必要があります
  4. Client ID と Client Secret をコピーします

これで完了です。この手順は一度だけ行えばよいです。

接続を管理する
  • 状態を確認する:「Strava に接続されていますか?」
  • 再接続する:「Strava アカウントに接続して」(再接続するには force: true を使用します)
  • 接続を解除する:「Strava アカウントの接続を解除して」

インストール方法

オプション A:そのまま使う(推奨)

インストールは不要です。クイックスタートの npx コマンドが、最新バージョンを自動的にダウンロードして実行します。

オプション B:グローバルにインストールする

一度だけインストールしたい場合は、次のようにします。

npm install -g @r-huijts/strava-mcp-server

次に、Claude の設定を更新して、以下を使用します。

{
  "mcpServers": {
    "strava": {
      "command": "strava-mcp-server"
    }
  }
}

注: パッケージ名は @r-huijts/strava-mcp-server ですが、後方互換性のため、実行ファイル名は引き続き strava-mcp-server です。

オプション C:ソースからビルドする

コードを変更したい開発者向けです。

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

次に、ローカルのビルドを Claude に指定します。

{
  "mcpServers": {
    "strava": {
      "command": "node",
      "args": ["/path/to/strava-mcp/dist/server.js"]
    }
  }
}

会話例

朝のチェックイン

あなた:今週はどんな運動をしましたか?

Claude:今週の Strava のアクティビティを見ると、次の運動を完了しています。

  • 月曜日:5.2km のランニング(28:15)
  • 水曜日:45km のサイクリング(1:32:00)
  • 土曜日:10km のランニング(52:30)

合計:3 件のアクティビティで 60.2km です。継続できていますね!

ワークアウトの分析

あなた:直近のサイクリングのワークアウトを詳しく分析してください

Claude:昨日の「Evening Loop」のライドを分析すると、次のとおりです。

概要

  • 距離:42.3 km
  • 時間:1:28:45
  • 平均速度:28.6 km/h

パワー分析

  • 平均パワー:185W
  • 標準化パワー:198W
  • 最大パワー:520W

心拍数

  • 平均:142 bpm
  • 最大:175 bpm
  • ゾーン 4 以上の時間:23 分

パワーと心拍数の比率から、優れた有酸素効率がうかがえます……

新しいルートを探す

あなた:コロラド州ボルダー近郊で、挑戦しがいのあるサイクリングの登坂ルートを探してください

Claude:ボルダー近郊で人気の登坂セグメントをご紹介します。

  1. Flagstaff Road - 5.2km、平均勾配 6.8%
  2. Sunshine Canyon - 3.8km、平均勾配 7.2%
  3. Left Hand Canyon - 8.1km、平均勾配 4.5%

後で簡単に見つけられるように、いずれかをお気に入りに登録しますか?


利用可能なツール

アカウントとプロフィール
質問できること実行されること
「Strava アカウントを接続して」Strava を Claude に接続します
「Strava の接続状況を確認して」接続状況を表示します
「Strava アカウントを切断して」Strava の接続を解除し、保存されているトークンを消去します
「持っているシューズは?」シューズと使用距離を一覧表示します
「トレーニングゾーンは?」心拍数とパワーのゾーンを表示します
アクティビティ
質問できること実行されること
「最近のアクティビティを見せて」最新のワークアウトを一覧表示します
「1 月のランニングをすべて取得して」フィルターを適用してアクティビティを取得します
「アクティビティ 12345 を分析して」1 件のアクティビティの詳細情報を表示します
「直近のランニングのラップを見せて」ラップごとの内訳を表示します
「ライドの心拍数データを取得して」時系列のワークアウトデータを取得します(最適化されたコンパクト形式)
「ハイキングの写真を見せて」アクティビティの写真を表示します
統計と進捗
質問できること実行されること
「ランニングの統計は?」年初来および全期間の合計を表示します
「今年はどれくらいサイクリングした?」種類別のアクティビティ合計を表示します
「最長のライドは?」自己記録を表示します
セグメント
質問できること実行されること
「お気に入りのセグメントを見せて」お気に入りのセグメントを表示します
「[location] 近郊のセグメントを探して」人気のセグメントを見つけます
「セグメント 12345 の詳細を取得して」セグメント情報とリーダーボードを表示します
「このセグメントをお気に入りに登録して」お気に入りに保存します
「[segment] での自分の記録を見せて」そのセグメントでの挑戦記録を表示します
ルート
質問できること実行されること
「保存したルートを一覧表示して」作成したルートを表示します
「自分の [route name] の詳細を取得して」ルート情報を表示します
「[route] を GPX 形式でエクスポートして」GPS デバイス用にダウンロードします
「[route] を TCX 形式でエクスポートして」GPS デバイス用にダウンロードします
クラブ
質問できること実行されること
「どのクラブに所属している?」Strava の所属クラブを一覧表示します
ワークアウト
質問できること実行されること
「このワークアウトを Zwift ファイルに変換して」ワークアウトプランを構造化ファイル(現在は Zwift .zwo)に変換します
サーバー
質問できること動作
「Strava サーバーのバージョンは何ですか?」MCP サーバーのバージョンとメタデータを表示します

トラブルシューティング

「Strava アカウントを接続して」がブラウザーを開かない
  • Claude Desktop が MCP サーバーを実行していることを確認してください(Claude でエラーを確認してください)
  • Claude Desktop を再起動してみてください
  • ポート 8111 がファイアウォールでブロックされていないか確認してください
「認証に失敗しました」または「無効なトークン」
  • トークンの有効期限が切れている可能性があります。「Strava アカウントを接続して」と伝えて再接続してください
  • strava.com/settings/api で Strava API アプリケーションがまだ有効であることを確認してください
「認証情報がありません」というエラー
  • OAuth フローを完了する必要があります。「Strava アカウントを接続して」と伝えてください
  • 環境変数を使用している場合は、4 つすべてが設定されていることを確認してください(「開発者向け」セクションを参照)
Claude に Strava のツールが表示されない
  • claude_desktop_config.json が有効な JSON であることを確認してください(末尾にカンマを付けないでください!)
  • 設定を変更した後、Claude Desktop を再起動してください
  • Claude の開発者コンソールでエラーメッセージを確認してください
パッケージ名を変更した後に JSONRPC.ProtocolTransportError が発生する

@r-huijts/strava-mcp-server に更新した後に JSONRPC エラーが発生する場合:

  1. npx キャッシュをクリアする:ターミナルで rm -rf ~/.npm/_npx を実行します
  2. 設定を確認する:古い strava-mcp-server ではなく、@r-huijts/strava-mcp-server が使われていることを確認します
  3. Claude Desktop を完全に再起動する(終了して再度開きます)
  4. 手動でテストする:npx -y @r-huijts/strava-mcp-server を実行します。「Starting Strava MCP Server v1.2.1...」と表示されるはずです

開発者向け

クリックして技術的な詳細を表示
環境変数

ブラウザベースの認証の代わりに、環境変数を設定できます。

変数説明
STRAVA_CLIENT_IDStrava アプリケーションのクライアント ID
STRAVA_CLIENT_SECRETStrava アプリケーションのクライアントシークレット
STRAVA_ACCESS_TOKENOAuth アクセストークン
STRAVA_REFRESH_TOKENOAuth リフレッシュトークン
ROUTE_EXPORT_PATHGPX/TCX エクスポート用ディレクトリ
トークンの更新

サーバーは期限切れのトークンを自動的に更新します。新しいトークンは process.env と ~/.config/strava-mcp/config.json の両方に保存されます。

設定の優先順位
  1. 環境変数(最優先)
  2. ~/.config/strava-mcp/config.json
  3. ローカルの .env ファイル
ビルドとテスト
npm install
npm run build
npm test
アクティビティストリームの最適化

get-activity-streams ツールはデフォルトでコンパクト形式を使用します。すべてのデータを保持しながら、ペイロードサイズを約 70~80%削減します。

  • コンパクト形式(デフォルト):メタデータ付きの生配列で、サイズを約 70~80%削減します。LLM での処理に最適です
  • 詳細形式:値を整形した、人が読みやすいオブジェクトです(後方互換性あり)
  • スマートなチャンク分割:大きなアクティビティは自動的に約 50KB のチャンクに分割されます
  • 任意のダウンサンプリング:重要な特徴を保持しながら、非常に大きなデータセットを縮小できます

コンパクト形式には、包括的なメタデータ(単位、説明、統計情報)が含まれているため、LLM は生の数値データを理解できます。

API リファレンス

このサーバーは Model Context Protocol(MCP)を実装し、Strava API v3 用の 25 個のツールを公開しています。実装の詳細については、src/tools/ のソースコードを参照してください。

コントリビューション

コントリビューションを歓迎します!Pull Request を送信してください。


ライセンス

MIT License。詳細については LICENSE ファイルを参照してください。


質問がありますか? GitHub で issue を作成してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。