Strava MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to the Strava API for retrieving and analyzing activity data, including runs, rides, and workouts. Supports fetching activity details, athlete statistics, route visualization, achievement tracking, and social features like kudos and comments.

Strava MCP サーバー

Strava APIへのアクセスを提供するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、言語モデルはアクティビティやアスリート情報などのStravaデータと連携できるようになります。

特徴

  • 🏃‍♂️ アクティビティの追跡と分析
  • 📊 アスリートの統計
  • 🗺️ ルートの視覚化
  • 🏆 達成度の追跡
  • 🤝 ソーシャル機能(称賛、コメント)

前提条件

  • Python 3.12以上
  • Strava API 認証情報
  • pip (Python パッケージインストーラー)

インストール

  1. リポジトリをクローンします。
git clone https://github.com/yourusername/strava_mcp.git cd strava_mcp
  1. 仮想環境を作成します。
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate
  1. 依存関係をインストールします:
pip install -r requirements.txt

構成

  1. Strava API 資格情報を使用してconfig/.envファイルを作成します。
STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REFRESH_TOKEN=your_refresh_token
  1. Strava API 資格情報を取得するには:
    • https://www.strava.com/settings/apiにアクセスしてください。
    • 新しいアプリケーションを作成する
    • クライアントIDとクライアントシークレットを書き留めます
    • OAuth 2.0フローに従ってリフレッシュトークンを取得します

使用法

クロードと一緒に使う

接続すると、Claude を通じてさまざまな方法で Strava データを操作できるようになります。

アクティビティクエリ

  • 「最近のアクティビティを表示」
  • 「前回のランニングの詳細を取得する」
  • 「今月の最長乗車距離はどれくらいでしたか?」
  • 「個人記録を樹立したアクティビティを表示」
  • 「最新のアクティビティのルートマップを表示」

パフォーマンス分析

  • 「今年の私の平均ランニングペースはどれくらいですか?」
  • 「先月と今月のサイクリングパフォーマンスを比較してください」
  • 「昨日のワークアウトの心拍数ゾーンを見せて」
  • 「すべてのアクティビティで獲得した高度の合計はどれくらいですか?」
  • 「毎週のランニング距離を計算してください」

社会的交流

  • 「私の最近の活動に誰がKudosを与えてくれたのか?」
  • 「マラソンのコメントを見せて」
  • 「私のクラブ活動をすべてリストする」
  • 「友達と行ったアクティビティを探す」

達成度の追跡

  • 「すべてのセグメントの実績を一覧表示する」
  • 「ローカルセグメントの個人記録を表示する」
  • 「今週はどんな成果を達成したのか?」
  • 「年間目標の進捗状況を表示する」

クロードを通じて入手可能なデータ

  1. アクティビティの詳細:
    • 距離、期間、ペース
    • ルートマップと標高プロファイル
    • 心拍数、パワー、ケイデンスデータ
    • スプリットとラップ情報
    • 活動中の気象条件
  2. アスリート統計:
    • 年初来および過去合計
    • 個人記録と実績
    • トレーニング負荷とフィットネスの傾向
    • 機器の使用とメンテナンス
  3. ソーシャルデータ:
    • 称賛とコメント
    • クラブ活動とリーダーボード
    • 友達のアクティビティとチャレンジ
    • セグメントの取り組みとランキング
  4. ルート情報:
    • 標高データ付きの詳細な地図
    • セグメント分析
    • 人気のルートと区間
    • ルート計画と分析

MCPサーバーとして

Claude Desktop の設定を更新します。

{ "mcpServers": { "Strava": { "command": "python", "args": ["src/strava_server.py"], "cwd": "/path/to/strava_mcp", "env": { "STRAVA_CLIENT_ID": "your_client_id", "STRAVA_CLIENT_SECRET": "your_client_secret", "STRAVA_REFRESH_TOKEN": "your_refresh_token" } } } }

HTTPサーバーとして

  1. サーバーを起動します。
./run_server.sh
  1. http://localhost:8000で API にアクセスします。

利用可能なエンドポイント:

  • GET /activities/recent - 最近のアクティビティを一覧表示する
  • GET /activities/{id} - アクティビティの詳細を取得する
  • GET /activities/{id}/map - アクティビティマップの視覚化を取得する
  • GET /athlete/stats - アスリートの統計情報を取得する

発達

プロジェクト構造

strava_mcp/ ├── src/ │ ├── strava_server.py # MCP server implementation │ ├── strava_http_server.py # HTTP API server │ ├── map_utils.py # Map visualization utilities │ └── templates.py # HTML templates ├── config/ │ └── .env # Environment variables (not in git) ├── requirements.txt # Python dependencies └── run_server.sh # Server startup script

貢献

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. 変更をコミットする
  4. ブランチにプッシュする
  5. プルリクエストを作成する

安全

  • .envファイルや API 認証情報をコミットしないでください
  • .gitignoreファイルは機密データがコミットされるのを防ぐように設定されています
  • すべての機密構成に環境変数を使用する

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

謝辞

  • Strava APIドキュメント
  • モデルコンテキストプロトコル(MCP)仕様
  • 貢献者とメンテナー
-
security - not tested
A
license - permissive license
-
quality - not tested

アクティビティ、アスリートの統計、ルート、実績、ソーシャル機能などの Strava データと言語モデルが対話できるようにするモデル コンテキスト プロトコル サーバー。

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Usage
            1. Using with Claude
            2. As an MCP Server
            3. As an HTTP Server
          2. Development
            1. Project Structure
            2. Contributing
          3. Security
            1. License
              1. Acknowledgments
                ID: sm3o76u1xq