Skip to main content
Glama
ai-mcp-garage

MyFitnessPal MCP Server

get_daily_exercise

Retrieve daily exercise data from MyFitnessPal, including cardio duration and calories burned, plus strength training sets, reps, and weights for any specified date.

Instructions

Get exercise activities: cardio (duration, calories) and strength (sets, reps, weight).

Args: date: Date in YYYY-MM-DD format (defaults to today)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNo

Implementation Reference

  • The handler function decorated with @mcp.tool that implements the get_daily_exercise tool. It retrieves exercise data for a specified date from MyFitnessPal, processes cardio and strength activities to extract durations and calories burned, formats a markdown summary of individual exercises and totals, and returns it via text_response.
    def get_daily_exercise(date: Optional[str] = None):
        """
        Get exercise activities: cardio (duration, calories) and strength (sets, reps, weight).
        
        Args:
            date: Date in YYYY-MM-DD format (defaults to today)
        """
        try:
            target_date = parse_date(date)
            client = get_client()
            
            # Fetch day data
            day = client.get_day(target_date)
            exercises = day.exercises
            
            output = f"# Exercise for {target_date.strftime('%B %d, %Y')}\n\n"
            
            if not exercises:
                output += "No exercise logged for this day.\n"
            else:
                # Collect all exercise entries from all exercise categories
                all_entries = []
                for exercise in exercises:
                    all_entries.extend(exercise.entries)
                
                if not all_entries:
                    output += "No exercise logged for this day.\n"
                else:
                    total_calories = 0
                    total_minutes = 0
                    
                    for entry in all_entries:
                        nutrition = entry.nutrition_information
                        
                        output += f"- **{entry.name}**\n"
                        
                        # Duration
                        minutes = nutrition.get('minutes')
                        if minutes:
                            output += f"  - Duration: {minutes:.0f} minutes\n"
                            total_minutes += minutes
                        
                        # Calories burned
                        calories = nutrition.get('calories burned', 0)
                        if calories:
                            output += f"  - Calories Burned: {calories:.0f} kcal\n"
                            total_calories += calories
                        
                        output += "\n"
                    
                    # Summary
                    output += "## Summary\n"
                    if total_minutes > 0:
                        output += f"- **Total Duration**: {total_minutes:.0f} minutes\n"
                    if total_calories > 0:
                        output += f"- **Total Calories Burned**: {total_calories:.0f} kcal\n"
            
            return text_response(output)
            
        except Exception as e:
            return text_response(f"Error retrieving exercise: {str(e)}")

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/ai-mcp-garage/mcp-myfitnesspal'

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