Skip to main content
Glama

mcp-server-strava

Strava API と Model Context Protocol (MCP) SDK の統合

CIコーデックパイソンライセンス: MITラフ

Model Context Protocol SDK を使用して、Strava データに基づくトレーニング分析と推奨事項を統合します。

🚀 機能

  • Stravaからのワークアウトの分析
  • トレーニングの推奨事項
  • 自動トークン更新
  • APIリクエストのレート制限

📋 要件

⚙️ インストール

# Клонируем репозиторий git clone https://github.com/rbctmz/mcp-server-strava.git cd mcp-server-strava # Установка через uv (рекомендуется) curl -LsSf https://astral.sh/uv/install.sh | sh uv pip install . # Установка в режиме разработки uv pip install -e ".[dev]"

MCP SDKのインストール

uv add "mcp[cli]"

🔧 設定

Strava APIの設定

  1. API設定ページへ移動
  2. アプリケーションを作成します。
    • アプリケーション名: MCP Strava 統合
    • カテゴリー: トレーニング分析
    • ウェブサイト: http://localhost
    • 承認コールバックドメイン: localhost

環境の設定

  1. 環境変数を含むファイルを作成します。
    cp .env-template .env
  2. アクセス トークンを取得します。
    python scripts/auth.py
  3. 設定を確認してください:
    mcp dev src/server.py curl -X GET "http://localhost:8000/activities"

📚 APIと例

リソースとツール

タイプ名前説明
リソースstrava://activities活動リスト
リソースstrava://activities/{id}アクティビティの詳細
リソースstrava://athlete/zonesトレーニングゾーン
リソースstrava://athlete/clubsアスリートクラブ
リソースstrava://gear/{gear_id}機器情報
道具analyze_activity(activity_id)トレーニング分析
道具analyze_training_load(activities)負荷解析
道具get_activity_recommendations()推奨事項

使用例

from mcp import ClientSession # Получение активностей async with ClientSession() as session: activities = await session.read_resource("strava://activities") activity = await session.read_resource("strava://activities/12345678") # Анализ тренировки result = analyze_activity(activity_id="12345678") """ { "type": "Run", "distance": 5000, "moving_time": 1800, "analysis": { "pace": 5.5, # мин/км "effort": "Средняя" } } """ # Анализ нагрузки summary = analyze_training_load(activities) """ { "activities_count": 10, "total_distance": 50.5, # км "total_time": 5.2, # часы "heart_rate_zones": { "easy": 4, # ЧСС < 120 "medium": 4, # ЧСС 120-150 "hard": 2 # ЧСС > 150 } } """ # Получение тренировочных зон async with ClientSession() as session: zones = await session.read_resource("strava://athlete/zones") """ { "heart_rate": { "custom_zones": true, "zones": [ {"min": 0, "max": 120, "name": "Z1 - Recovery"}, {"min": 120, "max": 150, "name": "Z2 - Endurance"}, {"min": 150, "max": 170, "name": "Z3 - Tempo"}, {"min": 170, "max": 185, "name": "Z4 - Threshold"}, {"min": 185, "max": -1, "name": "Z5 - Anaerobic"} ] }, "power": { "zones": [ {"min": 0, "max": 180}, {"min": 181, "max": 250}, {"min": 251, "max": 300}, {"min": 301, "max": 350}, {"min": 351, "max": -1} ] } } """

🛠 開発

CI/CDとセキュリティ

  • カバレッジ
  • テスト
  • ラフ
GitHub Actionsでのチェック
タイプ道具説明
リンティングラフコードのフォーマットと分析
テストpytestユニットテストと統合テスト
コーティングpytest-covコードカバレッジレポート
セキュリティと秘密
  1. トークン保護:
    • .envから.gitignore
    • CI/CD のための GitHub Secrets
    • レート制限: 100 リクエスト/15 分
  2. シークレットの設定:
    # В GitHub: Settings → Secrets → Actions STRAVA_CLIENT_ID=<client_id> STRAVA_CLIENT_SECRET=<client_secret> STRAVA_REFRESH_TOKEN=<refresh_token>

貢献

  1. リポジトリをフォークする
  2. 依存関係をインストールします: uv pip install -e ".[dev]"
  3. ブランチを作成する: git checkout -b feature/name
  4. 変更を確認します。
    ruff format . ruff check . pytest --cov=src
  5. プルリクエストを作成する

📫 サポート

  • GitHub Issues(https://github.com/rbctmz/mcp-server-strava/issues)
  • テレグラム: @greg_kisel

📄 ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

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

Strava APIとモデルコンテキストプロトコルSDKの統合

  1. 🚀 機能
    1. 📋 要件
      1. ⚙️ インストール
        1. MCP SDKのインストール
      2. 🔧 設定
        1. Strava APIの設定
        2. 環境の設定
      3. 📚 APIと例
        1. リソースとツール
        2. 使用例
      4. 🛠 開発
        1. CI/CDとセキュリティ
        2. 貢献
      5. 📫 サポート
        1. 📄 ライセンス

          Related MCP Servers

          • A
            security
            F
            license
            A
            quality
            A Model Context Protocol server implementation for interacting with Salesforce through its REST API.
            Last updated -
            4
            34
            TypeScript
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol gateway that connects to RFK Jr-related endpoints, supporting both STDIO and SSE transport methods.
            Last updated -
            Python
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that provides language models with access to Strava API data, allowing them to query and analyze athlete activities from Strava.
            Last updated -
            4
            13
            Python
            MIT License
            • Apple
          • -
            security
            A
            license
            -
            quality
            A Model Context Protocol server that enables language models to interact with Strava data, including activities, athlete statistics, routes, achievements, and social features.
            Last updated -
            2
            Python
            MIT License
            • Linux
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/rbctmz/mcp-server-strava'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server