Skip to main content
Glama
rbctmz

mcp-server-strava

analyze_training_load

Analyze training load from Strava activities to monitor workout intensity and optimize athletic performance.

Instructions

Анализ тренировочной нагрузки

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
activitiesYes

Implementation Reference

  • The core handler function for the analyze_training_load MCP tool. Decorated with @mcp.tool() for automatic registration. Computes summary statistics including total distance, time, activity types distribution, and heart rate zone breakdown from a list of Strava activities.
    @mcp.tool()
    def analyze_training_load(activities: List[Dict]) -> Dict:
        """Анализ тренировочной нагрузки"""
        if not activities:
            return {
                "error": "Нет активностей для анализа",
                "activities_count": 0
            }
        summary = {
            "activities_count": len(activities),
            "total_distance": 0,
            "total_time": 0,
            "activities_by_type": {},
            "heart_rate_zones": {
                "easy": 0,  # ЧСС < 120
                "medium": 0,  # ЧСС 120-150
                "hard": 0,  # ЧСС > 150
            },
        }
    
        for activity in activities:
            activity_type = activity.get("type")
    
            # Обновляем счетчик типа активности
            if activity_type not in summary["activities_by_type"]:
                summary["activities_by_type"][activity_type] = 0
            summary["activities_by_type"][activity_type] += 1
    
            # Суммируем дистанцию и время
            summary["total_distance"] += activity.get("distance", 0)
            summary["total_time"] += activity.get("moving_time", 0)
    
            # Анализируем зоны ЧСС
            hr = activity.get("average_heartrate", 0)
            if hr:
                if hr < 120:
                    summary["heart_rate_zones"]["easy"] += 1
                elif hr < 150:
                    summary["heart_rate_zones"]["medium"] += 1
                else:
                    summary["heart_rate_zones"]["hard"] += 1
    
        # Конвертируем единицы измерения
        summary["total_distance"] = round(summary["total_distance"] / 1000, 2)  # в километры
        summary["total_time"] = round(summary["total_time"] / 3600, 2)  # в часы
    
        return summary
  • src/server.py:401-401 (registration)
    The @mcp.tool() decorator registers the analyze_training_load function as an MCP tool.
    @mcp.tool()

Latest Blog Posts

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