mcpField
S
Strava Mcp Unofficial

Strava Mcp Unofficial

ローカル
wellness.delx.aiヘルスケア33 週間前に更新

Strava Mcp Unofficial について

Strava Mcp Unofficialは、トレーニングや持久系活動を振り返る人向けの、MCP対応クライアント用ローカル優先Stravaデータサーバーです。GPSを既定で隠すプライバシーモードを備え、トークンと任意のSQLiteキャッシュをローカルに保存します。

主な機能

  1. 01アクティビティ、セグメント、ルートの取得
  2. 02心拍数やパワーなどのストリーム取得
  3. 03日次・週次トレーニング概要の生成
  4. 04GPSデータの既定非表示
  5. 05ローカルOAuthとSQLiteキャッシュ

活用シーン

  1. 01最近の活動と週ごとのトレーニング負荷の確認
  2. 02活動の心拍数、パワー、ケイデンスの調査
  3. 03明示的に有効化した後のGPS軌跡の確認
  4. 04AIエージェント接続前のStrava設定確認

MCP 対応

MCPクライアントに、Stravaのアクティビティ、ストリーム、アスリート情報、セグメント、ルート用のツール、プロンプト、リソースを公開します。既定のstdioに加え、ループバック限定のStreamable HTTPにも対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"strava-mcp-davidmosiah": {
"command": "npx",
"args": [
"-y",
"strava-mcp-unofficial"
],
"env": {
"STRAVA_CLIENT_ID": "<STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<STRAVA_CLIENT_SECRET>",
"STRAVA_REDIRECT_URI": "<STRAVA_REDIRECT_URI>",
"STRAVA_TOKEN_PATH": "<STRAVA_TOKEN_PATH>",
"STRAVA_PRIVACY_MODE": "<STRAVA_PRIVACY_MODE>",
"STRAVA_CACHE": "<STRAVA_CACHE>",
"STRAVA_CACHE_PATH": "<STRAVA_CACHE_PATH>",
"STRAVA_NO_CACHE": "<STRAVA_NO_CACHE>"
}
}
}
}
起動コマンドnpx -y strava-mcp-unofficial
設定が必要な環境変数
STRAVA_CLIENT_IDStrava OAuth client ID. Optional when configured with strava-mcp-server setup.
STRAVA_CLIENT_SECRETシークレットStrava OAuth client secret. Prefer strava-mcp-server setup so this secret is stored in ~/.strava-mcp/config.json instead of MCP client config.
STRAVA_REDIRECT_URIRedirect URI configured in the Strava Developer Dashboard. Optional when configured with strava-mcp-server setup.
STRAVA_TOKEN_PATHシークレットOptional local path for OAuth tokens. Defaults to ~/.strava-mcp/tokens.json.
STRAVA_PRIVACY_MODEOptional payload mode: summary, structured, or raw. Defaults to structured. raw means full Strava API payloads, not continuous 24/7 raw sensor telemetry.
STRAVA_CACHEOptional SQLite cache toggle. Set to true or sqlite to enable.
STRAVA_CACHE_PATHOptional local SQLite cache path. Defaults to ~/.strava-mcp/cache.sqlite.
STRAVA_NO_CACHESet to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless.

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

パッケージ
npmstrava-mcp-unofficial0.4.6

ツール

29

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

パラメーター型必須説明
response_formatenumいいえmarkdown | json

詳細

Strava MCP

Strava MCP — AI エージェント向け Strava MCP
Strava のアクティビティ、ストリーム、セグメント、ルートを AI エージェントに提供します — ローカルで。
ローカルファーストの MCP サーバー — トークンがマシンの外に出ることはありません。

npm バージョン npm ダウンロード数 MIT ライセンス サイト

GitHub スター数 MCP 向けに構築 Hermes のワンコマンドセットアップ Strava

⚡ Delx Wellness for Hermes を使えば、ワンコマンドでインストールできます: npx -y delx-wellness-hermes setup — このコネクターとほかの8つを、専用の Hermes プロファイルに事前設定します。

または、Claude Desktop/Cursor/ChatGPT Desktop に単独で組み込むこともできます — 詳しくは以下のインストールセクションをご覧ください。


HTTP(v2 ステートレス)

デフォルトは stdio です。オプションで Streamable HTTP を使用できます — セッション ID なし、JSON レスポンス、ループバックのみ:

npx -y strava-mcp-unofficial --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp   (sessionless)

環境変数:STRAVA_MCP_HOST、STRAVA_MCP_PORT、STRAVA_MCP_TRANSPORT=http。

AI エージェントを Strava のアクティビティ、ルート、ストリーム、トレーニングのコンテキストに接続する、ローカルファーストの MCP サーバーです。

非公式プロジェクトです。 Strava, Inc. との提携、同社による承認またはサポートはありません。Strava はそれぞれの所有者の商標です。ご自身の Strava アカウントでのみ使用し、Strava の API 契約に従ってください。

David Mosiah が、Strava の数値をコピー&ペーストすることなく、Claude、Cursor、Hermes、OpenClaw、その他の MCP 互換エージェントを使ってトレーニング、持久力、パフォーマンスについて考える人々のために開発しました。

ローカルファーストのウェルネス MCP コネクターのレジストリ、Delx Wellness の一部です。

このコネクターがエージェントのワークフローに役立つ場合は、ぜひリポジトリにスターを付けてください。スターが増えると、ほかの AI 開発者がこのプロジェクトを見つけやすくなり、Delx がローカルファーストのウェルネス基盤を提供し続ける助けになります。

このパッケージの目的

Strava には、すべてのライド、ラン、スイム、セグメント、ルート、ストリームなど、トレーニングの長期的な記録が保存されています。しかし、そのデータは厳しいレート制限(アプリごとに200 req/15min、2k/day)が設けられたOAuth APIの背後にあり、GPSデータはデフォルトでプライバシーに配慮した扱いが必要です。

このパッケージは、OAuthの認証フローをローカルで処理し、Stravaのアプリごとの制限に合わせてリクエストを制御します。明示的に許可しない限りGPSの緯度・経度を秘匿し、Model Context Protocolを通じてStravaを公開します。MCP互換のエージェントなら、設定を一箇所追加するだけでトレーニングのコンテキストを利用できます。トークンがマシンの外に出ることはありません。

クイックスタート

最初のエージェント呼び出しまで、所要時間は約1分です。必要なのは、リダイレクトURIをhttp://127.0.0.1:3000/callbackに設定したStravaアプリ(こちらで作成)だけです。

1. アプリのクライアントIDとシークレットを貼り付けます(対話形式で入力し、~/.strava-mcp/config.jsonに0600で保存します):

npx -y strava-mcp-unofficial setup

2. Stravaを認証します。 authを実行するとブラウザーが開きます。--no-openを指定するとURLが表示されるので、自分で貼り付けられます(ヘッドレス環境で便利です)。トークンはローカルに保存され、コマンドから表示されることはありません:

$ npx -y strava-mcp-unofficial auth --no-open
Strava MCP · Authorization

Open this URL manually:
  https://www.strava.com/oauth/authorize?client_id=12345&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fcallback&response_type=code&approval_prompt=auto&scope=read%2Cactivity%3Aread_all%2Cprofile%3Aread_all&state=aa38f29b

Steps
  1. Approve access in the browser tab that opens.
  2. Strava will redirect to the local callback.
  3. Tokens are saved locally; this command never prints them.

Waiting for callback...

3. 準備ができていることを確認します — doctorはStravaに問い合わせずに、スコープと設定を確認します:

$ npx -y strava-mcp-unofficial doctor
Strava MCP · Doctor
Status: READY ✓

Checks
  ✓  Node.js >=20
  ✓  Env vars
  ✓  Local config
  ✓  Automatic auth redirect
  ✓  Token file
  ✓  Token permissions
  ✓  Refresh token
  ✓  OAuth scopes
  ·  Privacy mode
  ·  Cache

Next steps
  1. Ready. Add this MCP server to your agent and start with strava_daily_summary.

OAuth scopesに✗が表示される場合は、authを再実行し、activity:read_all profile:read_all readを許可してください。

4. 最初の呼び出しを行います — 実際のアカウントは不要です。 エージェントにstrava_demoを実行するよう依頼してください。リアルな合成ペイロード(is_demo: trueタグ付き)が返されるので、実際のデータに接続する前にプロンプトを組み込めます:

> Call strava_demo and summarize my week.

# Strava Demo

- **is_demo**: true
- **recent_sessions**: 3
- **load_classification**: moderate
- **primary_signal**: Recent Strava load is manageable; use intent and consistency as the main lever.
- **recommended_handoff**: exercise_catalog_recommend_session

完全な形で取得するには、response_format: "json"を指定して呼び出します。sampleブロックは、strava_daily_summary、strava_training_context、strava_list_activitiesの各キーをそのまま再現しています — npm run test:demo-contractはfixtures/strava-activities.mjsに対して実際のビルダーを実行し、デモに存在しないフィールドが追加されたり、フィールドが欠落したりするとビルドを失敗させます。strava_demoを実際のツールに置き換えると、同じ形でStravaのデータが入力されます。

5. MCPクライアントに組み込みます:

{
  "mcpServers": {
    "strava": {
      "command": "npx",
      "args": ["-y", "strava-mcp-unofficial"]
    }
  }
}

Claude Desktopでは、setup --client claudeを実行すると設定が自動で書き込まれます。Hermesについては、以下のHermes / リモート設定を参照してください。

エージェントで試す

まずは次の3つを尋ねてみてください:

Use strava_connection_status to check setup, then run strava_daily_summary.
Tell me what my training context looks like in 5 lines.
Call strava_weekly_summary with response_format=json. Find my biggest
load/intensity bottleneck and give me a next-week endurance plan.
Use the strava_activity_stream_investigator prompt for activity_id=<id>.
Don't expose GPS unless I explicitly ask for it.

データの利用可否

このパッケージは公式のStrava API v3を使用します。このREADMEでrawという場合、対応エンドポイントのStravaから返されるJSONを指し、デバイスの連続的なテレメトリを意味するものではありません。

データ利用可否備考
アクティビティ(ラン、ライド、スイム、ウォーク、ワークアウト)✓記録されたすべてのアクティビティ
アクティビティの詳細、ゾーン、スプリット✓心拍数、パワー、ケイデンス、標高、ギア
アクティビティのストリーム(心拍数 / ケイデンス / ワット数 / 高度)✓アクティビティごとの毎秒のサンプル
GPSの緯度・経度のストリームオプトインデフォルトでは非表示。include_gps=trueまたはrawモードが必要
アスリートのプロフィール、ゾーン、集計統計✓認証済みアスリート
ルート、クラブ、ギア✓サマリー/構造化モードではルートの形状情報を秘匿
ライブのデバイステレメトリ/連続的な心拍数—Stravaの公開APIでは公開されていません

ツール

まずはこちらから:

  • strava_connection_status — Strava を呼び出す前に、ローカルの設定、スコープ、準備状況を確認します
  • strava_data_inventory — Strava API を呼び出さずに、サポートされているデータ領域、スコープ、プライバシーモード、おすすめの最初の呼び出しを一覧表示します。
  • strava_daily_summary — 今日の最新アクティビティ、週間負荷、強度の状況
  • strava_weekly_summary — スコアカード、前週との比較、翌週のトレーニング計画

認証と診断

  • strava_capabilities、strava_agent_manifest、strava_privacy_audit、strava_cache_status
  • strava_get_auth_url、strava_exchange_code、strava_revoke_access

アスリートとトレーニング

  • strava_get_athlete、strava_get_zones、strava_get_athlete_stats

アクティビティとストリーム

  • strava_list_activities、strava_get_activity、strava_get_activity_zones
  • strava_activity_series、strava_get_activity_streams — GPS の緯度/経度を取得するには、include_gps=true または raw モードが必要です

ルートとコンテキスト

  • strava_list_routes、strava_get_route、strava_list_clubs、strava_get_gear

プロンプト

  • strava_daily_training_director — 実用的な毎日のトレーニング概要
  • strava_weekly_endurance_review — 週ごとの比較と翌週の持久力トレーニング計画
  • strava_activity_stream_investigator — ストリームを使って特定のアクティビティを調査します(GPS 対応)

それぞれ timezone(IANA、デフォルトは UTC)を指定できます。

リソース

  • strava://capabilities、strava://agent-manifest
  • strava://athlete
  • strava://latest/activity
  • strava://summary/daily、strava://summary/weekly

プライバシーとセキュリティ

  • OAuth トークンは ~/.strava-mcp/tokens.json に 0600 の権限で保存され、ツールから返されることはありません。
  • 書き込み/アップロードのスコープはデフォルトでは要求されません。設計上、読み取り専用です。
  • summary および structured モードでは GPS の緯度/経度とルートのジオメトリが再帰的に削除されます。ストリームの呼び出しで include_gps=true を明示するか、raw モードを指定した場合にのみ含まれます。
  • structured モードでは、それ以外の上流の生理学的記録全体と、将来追加される Strava のフィールドが保持されます。
  • アクティビティの after/before フィルターは、タイムゾーン付きの ISO 日時から Strava のエポック秒に変換する際も瞬時点としての意味を保持します。無効な範囲は HTTP 呼び出しの前にエラーになります。
  • raw モードが明示的に要求されない限り、ルートのジオメトリも非表示になります。
  • MCP クライアントがアクセストークンやリフレッシュトークンを参照することはありません。
  • これは医療上の助言ではありません。このサーバーは、診断やトレーニング処方ではなく、個人向け AI ワークフローのために、ユーザーが許可したデータを提供します。

設定

setup を実行すると、これらの大半が ~/.strava-mcp/config.json(0600)に書き込まれます。環境変数による手動の上書きにも対応しています。

STRAVA_CLIENT_ID=…
STRAVA_CLIENT_SECRET=…
STRAVA_REDIRECT_URI=http://127.0.0.1:3000/callback

# Optional
STRAVA_SCOPES="read activity:read_all profile:read_all"
STRAVA_PRIVACY_MODE=structured        # summary | structured | raw
STRAVA_CACHE=sqlite                   # optional read-through cache

Hermes/リモート設定

npx -y strava-mcp-unofficial setup --client hermes --no-auth
npx -y strava-mcp-unofficial auth                       # run locally if browser auth is needed
npx -y strava-mcp-unofficial doctor --client hermes
hermes mcp test strava

Hermes では通常、Strava ツールに次のプレフィックスが付けられます。

  • mcp_strava_strava_agent_manifest
  • mcp_strava_strava_connection_status
  • mcp_strava_strava_daily_summary
  • mcp_strava_strava_weekly_summary
  • mcp_strava_strava_get_activity_streams

Hermes の設定変更後は、/reload-mcp または hermes mcp test strava を使用してください。通常のデータアクセスでは、ゲートウェイを再起動する必要はありません。

ブラウザー OAuth を Hermes とは別のマシンで行う必要がある場合は、ローカルで auth を実行し、~/.strava-mcp/tokens.json を chmod 600 でサーバーにコピーしてください。アクティビティ履歴とストリームを利用するには、トークンに activity:read_all profile:read_all read が含まれている必要があります。

要件

  • Node.js 20+
  • リダイレクト URI http://127.0.0.1:3000/callback が設定された Strava アプリ

これらのスコープが必要な理由:

  • read — 公開プロフィール、ルート、公開 Strava リソース
  • activity:read_all — アプリから参照できる非公開アクティビティを含む、あなたのアクティビティ
  • profile:read_all — 認証済みアスリートのより詳細なプロフィールフィールド

書き込みスコープはデフォルトでは要求されません。

開発

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

MCP Inspector でテストします:

npx @modelcontextprotocol/inspector node dist/index.js

リンク

関連項目

Delx Wellness のコネクターライブラリ全体:

プロバイダーパッケージリポジトリ
WHOOPwhoop-mcp-unofficialwhoop-mcp
Ouraoura-mcp-unofficialouramcp
Garmingarmin-mcp-unofficialgarminmcp
Stravastrava-mcp-unofficialstrava-mcp
Fitbitfitbit-mcp-unofficialfitbitmcp
Withingswithings-mcp-unofficialwithingsmcp
Apple Healthapple-health-mcp-unofficialapple-health-mcp
Polarpolar-mcp-unofficialpolarmcp
Nourish(栄養)wellness-nourishwellness-nourish

Hermes のワンコマンドセットアップ — 上記のすべてのコネクターに加え、ウェルネススキルとオンボーディングを事前設定します:delx-wellness-hermes。

📧 お問い合わせとサポート

ライセンス

MIT — LICENSE を参照してください。

免責事項

このソフトウェアは現状有姿で提供されます。医療機器ではなく、医療上の助言を提供するものでもありません。また、診断、治療、トレーニングの処方に使用しないでください。医療やトレーニングに関する懸念がある場合は、必ず資格を持つ専門家に相談してください。

スキルまたは MCP

同じパッケージに、2つの使い方があります。MCP は stdio/HTTP でツールを登録します。スキルを使うと、クライアントに MCP がない場合でも、CLI 経由で同じツールを操作できます:

npx -y strava-mcp-unofficial call strava_connection_status --json '{}'

skill/SKILL.md をエージェントのスキルディレクトリにコピーしてください。

コメント

MCP は初めてですか?

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

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