Skip to main content
Glama

mcp-server-strava

Интеграция Strava API с Model Context Protocol (MCP) SDK

CI Codecov Python License: MIT Ruff

Интеграция для анализа тренировок и получения рекомендаций на основе данных Strava с использованием Model Context Protocol SDK.

🚀 Возможности

  • Анализ тренировок из Strava
  • Рекомендации по тренировкам
  • Автоматическое обновление токенов
  • Rate limiting для 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. Создайте приложение:
    • Application Name: MCP Strava Integration
    • Category: Training Analysis
    • Website: http://localhost
    • Authorization Callback Domain: 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 и безопасность

  • Coverage
  • Tests
  • Ruff
Проверки в GitHub Actions
ТипИнструментОписание
ЛинтингruffФорматирование и анализ кода
ТестыpytestUnit и интеграционные тесты
Покрытиеpytest-covОтчет о покрытии кода
Безопасность и секреты
  1. Защита токенов:
    • .env в .gitignore
    • GitHub Secrets для CI/CD
    • Rate limiting: 100 запросов/15 мин
  2. Настройка секретов:
    # В GitHub: Settings → Secrets → Actions STRAVA_CLIENT_ID=<client_id> STRAVA_CLIENT_SECRET=<client_secret> STRAVA_REFRESH_TOKEN=<refresh_token>

Contributing

  1. Форкните репозиторий
  2. Установите зависимости: uv pip install -e ".[dev]"
  3. Создайте ветку: git checkout -b feature/name
  4. Проверьте изменения:
    ruff format . ruff check . pytest --cov=src
  5. Создайте Pull Request

📫 Поддержка

📄 Лицензия

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

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

Integration of Strava API with Model Context Protocol SDK

  1. 🚀 Features
    1. 📋 Requirements
      1. ⚙️ Installation
        1. Installing MCP SDK
      2. 🔧 Setting
        1. Setting up Strava API
        2. Setting up the environment
      3. 📚 API and examples
        1. Resources and Tools
        2. Examples of use
      4. 🛠 Development
        1. CI/CD and Security
        2. Contributing
      5. 📫 Support
        1. 📄 License

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            Enables integration with OpenMetadata by wrapping its REST API for standardized interaction through the Model Context Protocol.
            Last updated -
            6
            15
            Python
            MIT License
          • 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
            14
            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
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that enables users to access Strava fitness data, including user activities, activity details, segments, and leaderboards through a structured API interface.
            Last updated -
            3
            4
            Python
            MIT License
            • 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