mcpField
S
strava-mcp

strava-mcp

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

strava-mcp について

strava-mcp は Strava API にアクセスするための MCP サーバーで、LLM が利用者の Strava データを読み取れるようにします。AI クライアントからアクティビティ記録を照会したい Strava ユーザー向けです。

主な機能

  1. 01Strava のアクティビティとワークアウトデータへのアクセス
  2. 02OAuth による利用者アカウントの接続
  3. 03セグメント、ルート、クラブに関する照会
  4. 04ルートの GPX および TCX 形式でのエクスポート

活用シーン

  1. 01最近のトレーニング記録を自然言語で照会
  2. 02単一アクティビティのラップと心拍データの確認
  3. 03ルートの GPS デバイスへのエクスポート

MCP 対応

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

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"r-huijts-strava": {
"command": "npx",
"args": [
"-y",
"strava-mcp-server"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_ACCESS_TOKEN": "<STRAVA_ACCESS_TOKEN>"
}
}
}
}
起動コマンドnpx -y strava-mcp-server
設定が必要な環境変数
STRAVA_CLIENT_IDYour Strava API client ID
STRAVA_CLIENT_SECRETシークレットYour Strava API client secret
STRAVA_ACCESS_TOKENシークレットYour Strava API access token

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

パッケージ
npmstrava-mcp-server1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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 つのサーバーを複数のクライアントで再利用できます。