What this MCP does
Tracks workouts, meals, hydration, body measurements, cardio, nutrition, routines, and muscle recovery, with meal and workout planning tools.
Tools
Input schema
{'type': 'object', 'required': ['days', 'confirm'], 'properties': {'days': {'type': 'number'}, 'goal': {'type': 'string'}, 'health': {'type': 'object', 'properties': {'injuries': {'type': 'array', 'items': {'type': 'string'}}, 'allergies': {'type': 'array', 'items': {'type': 'string'}}, 'pregnancy': {'type': 'boolean'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}}, 'medications': {'type': 'array', 'items': {'type': 'string'}}}}, 'confirm': {'type': 'boolean'}, 'diet_type': {'type': 'string'}, 'daily_calories': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string'}, 'locale': {'type': 'string'}}}
Input schema
{'type': 'object', 'oneOf': [{'required': ['image_url']}, {'required': ['image_base64']}], 'properties': {'image_url': {'type': 'string', 'description': 'Public URL of the image. Mutually exclusive with image_base64.'}, 'image_base64': {'type': 'string', 'description': 'Base64-encoded image bytes, no data: prefix. Mutually exclusive with image_url.'}}}
Input schema
{'type': 'object', 'required': ['days_per_week', 'confirm'], 'properties': {'goal': {'type': 'string'}, 'health': {'type': 'object', 'properties': {'injuries': {'type': 'array', 'items': {'type': 'string'}}, 'allergies': {'type': 'array', 'items': {'type': 'string'}}, 'pregnancy': {'type': 'boolean'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}}, 'medications': {'type': 'array', 'items': {'type': 'string'}}}}, 'confirm': {'type': 'boolean'}, 'experience': {'type': 'string'}, 'days_per_week': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['meal_id'], 'properties': {'meal_id': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'deleted': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['workout_id'], 'properties': {'workout_id': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'deleted': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'confirm': {'type': 'boolean', 'description': 'Required true for a full dump when domains is omitted.'}, 'domains': {'type': 'string', 'description': "Comma-separated subset, e.g. 'meals,workouts'."}}}
Input schema
{'type': 'object', 'required': ['layers'], 'properties': {'view': {'enum': ['front', 'back', 'dual'], 'type': 'string'}, 'gender': {'enum': ['male', 'female'], 'type': 'string'}, 'layers': {'type': 'array'}}}
Output schema
{'type': 'object', 'properties': {'svg': {'type': 'string'}, 'format': {'type': 'string'}, 'muscles_rendered': {'type': 'array'}}}
Input schema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'limit': {'type': 'number', 'default': 100}, 'metric_type': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 100}, 'since': {'type': 'string', 'description': "Cursor from the previous call's last seq. Omit for a first sync."}, 'entities': {'type': 'string', 'description': "Optional comma-separated filter, e.g. 'workout,meal'."}}}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'random': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'properties': {'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
Input schema
{'type': 'object', 'properties': {'include_bodyweight': {'type': 'boolean', 'description': "If true, add the user's bodyweight to bodyweight exercises (requires a logged weight or profile.weight)."}}}
Output schema
{'type': 'object', 'properties': {'muscles': {'type': 'array'}, 'window_days': {'type': 'number'}, 'threshold_volume': {'type': 'number'}}}
Input schema
{'type': 'object', 'properties': {'date_to': {'type': 'string', 'description': "YYYY-MM-DD (defaults to the user's today, in their timezone)"}, 'date_from': {'type': 'string', 'description': 'YYYY-MM-DD'}}}
Output schema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'days': {'type': 'array'}, 'from': {'type': 'string'}, 'limits': {}, 'targets': {}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['metric'], 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'days': {'type': 'number', 'description': 'training_load window'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'sport': {'type': 'string', 'description': 'training_load and cardio_prs'}, 'bucket': {'enum': ['day', 'week', 'month'], 'type': 'string'}, 'method': {'type': 'string', 'description': 'training_load: auto | power | hr | rpe'}, 'metric': {'enum': ['prs', 'volume', 'one_rep_max', 'streaks', 'adherence', 'training_load', 'weight_trend', 'body_delta', 'muscle_recovery', 'cardio_prs', 'goal_trajectory', 'nutrition_balance', 'correlate', 'compare_periods'], 'type': 'string'}, 'window': {'type': 'number', 'description': 'weight_trend smoothing window'}, 'goal_id': {'type': 'string', 'description': 'goal_trajectory'}, 'exercise': {'type': 'string', 'description': 'Required for prs; optional filter for volume, one_rep_max and compare_periods.'}, 'group_by': {'enum': ['exercise', 'muscle'], 'type': 'string', 'description': 'volume only'}, 'metric_a': {'type': 'string', 'description': 'correlate'}, 'metric_b': {'type': 'string', 'description': 'correlate'}, 'include_bodyweight': {'type': 'boolean', 'description': "Add the user's bodyweight to bodyweight exercises (pull-ups, dips). prs, volume and muscle_recovery."}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'date': {'type': 'string'}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 20}, 'date_to': {'type': 'string'}, 'date_from': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'items': {'type': 'array'}}}
Input schema
{'type': 'object', 'required': ['routine_id', 'start_date'], 'properties': {'routine_id': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'cadence_days': {'type': 'number', 'default': 1}, 'idempotency_key': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'goal': {'enum': ['strength', 'hypertrophy', 'general', 'endurance', 'weight_loss'], 'type': 'string'}, 'limit': {'type': 'number', 'default': 20}, 'difficulty': {'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}, 'split_type': {'enum': ['full_body', 'upper_lower', 'push_pull_legs', 'push_pull', 'bro', 'custom'], 'type': 'string'}, 'days_per_week': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['date', 'metric_type', 'value', 'unit'], 'properties': {'date': {'type': 'string'}, 'unit': {'type': 'string'}, 'notes': {'type': 'string'}, 'value': {'type': 'number'}, 'metric_type': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'value': {'type': 'number'}, 'metric_type': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['date', 'sport'], 'properties': {'date': {'type': 'string'}, 'notes': {'type': 'string'}, 'sport': {'type': 'string'}, 'title': {'type': 'string'}, 'avg_hr': {'type': 'number'}, 'calories': {'type': 'number'}, 'distance_m': {'type': 'number'}, 'idempotency_key': {'type': 'string'}, 'duration_seconds': {'type': 'number'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'sport': {'type': 'string'}, 'distance_m': {'type': 'number'}, 'duration_s': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['date', 'name', 'calories'], 'properties': {'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}, 'meal_type': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['date', 'amount_ml'], 'properties': {'date': {'type': 'string'}, 'amount_ml': {'type': 'number'}, 'idempotency_key': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'ml': {'type': 'number'}, 'date': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string'}, 'sets': {'type': 'array', 'items': {'type': 'object', 'properties': {'rpe': {'type': 'number'}, 'reps': {'type': 'number'}, 'notes': {'type': 'string'}, 'weight': {'type': 'number'}, 'completed': {'type': 'boolean'}, 'distance_m': {'type': 'number'}, 'set_number': {'type': 'number'}, 'rest_seconds': {'type': 'number'}, 'exercise_name': {'type': 'string'}, 'duration_seconds': {'type': 'number'}}}}, 'title': {'type': 'string'}, 'primary_sport': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'title': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['barcode'], 'properties': {'barcode': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'found': {'type': 'boolean'}, 'barcode': {'type': 'string'}, 'message': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'domains': {'type': 'string', 'description': "Comma-separated subset. Accepted: workouts, nutrition, checkin, notes, profile, or 'all'. Default: workouts,nutrition."}, 'workout_limit': {'type': 'number', 'default': 10}}}
Output schema
{'type': 'object', 'properties': {'date': {'type': 'string'}, 'domains': {}, 'profile': {}, 'recent_notes': {}, 'latest_checkin': {}, 'nutrition_today': {}, 'recent_workouts': {}}}
Input schema
{'type': 'object', 'required': ['exercise'], 'properties': {'exercise': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}, 'level': {'type': 'string'}, 'limit': {'type': 'number', 'default': 20}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous response. Omit for the first page.'}, 'fields': {'type': 'string', 'description': 'Extra fields, comma-separated, or `all`.'}, 'muscle': {'type': 'string'}, 'equipment': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'results': {'type': 'array', 'items': {'type': 'object'}}, 'next_cursor': {'type': 'string'}, 'total_matched': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}, 'locale': {'type': 'string'}, 'page_size': {'type': 'number'}}}
Output schema
{'type': 'object', 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'required': ['meal_id'], 'properties': {'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'fiber': {'type': 'number'}, 'sugar': {'type': 'number'}, 'sodium': {'type': 'number', 'description': 'mg'}, 'alcohol': {'type': 'number', 'description': 'g of ethanol'}, 'meal_id': {'type': 'string'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}, 'meal_type': {'type': 'string'}, 'saturated_fat': {'type': 'number'}, 'idempotency_key': {'type': 'string'}}}
Output schema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'fats': {'type': 'number'}, 'name': {'type': 'string'}, 'carbs': {'type': 'number'}, 'protein': {'type': 'number'}, 'calories': {'type': 'number'}}}
Input schema
{'type': 'object', 'required': ['set_ids'], 'properties': {'rpe': {'type': 'number'}, 'reps': {'type': 'number'}, 'notes': {'type': 'string'}, 'delete': {'type': 'boolean'}, 'weight': {'type': 'number'}, 'set_ids': {'type': 'array', 'items': {'type': 'string'}}, 'exercise': {'type': 'string', 'description': "Catalog name, ext_id, or the user's own words for a custom movement."}, 'completed': {'type': 'boolean'}}}
Output schema
{'type': 'object', 'properties': {'deleted': {'type': 'number'}, 'missing': {'type': 'array'}, 'updated': {'type': 'number'}}}
Input schema
{'type': 'object', 'properties': {'goal': {'type': 'string'}, 'height': {'type': 'number', 'description': 'cm'}, 'weight': {'type': 'number', 'description': 'kg'}, 'language': {'type': 'string'}, 'timezone': {'type': 'string', 'description': "IANA zone name, e.g. 'Europe/Warsaw'."}, 'diet_type': {'type': 'string'}, 'unit_system': {'enum': ['metric', 'imperial'], 'type': 'string'}, 'active_sports': {'type': 'array', 'items': {'type': 'string'}}, 'meals_per_day': {'type': 'number'}, 'daily_fats_goal': {'type': 'number'}, 'daily_carbs_goal': {'type': 'number'}, 'daily_fiber_goal': {'type': 'number', 'description': 'g/day to reach'}, 'daily_sugar_limit': {'type': 'number', 'description': 'g/day to stay under'}, 'daily_calorie_goal': {'type': 'number'}, 'daily_protein_goal': {'type': 'number'}, 'daily_sodium_limit': {'type': 'number', 'description': 'mg/day to stay under'}, 'daily_water_goal_ml': {'type': 'number'}}}
Recent tool changes
Similar MCP servers
Spoonacular
Provides recipe, ingredient, nutrition, grocery-product, measurement-conversion, and dietary meal-plan tools.
Framezone
Personal life-management dashboard for tasks, projects, habits, goals, notes, finances, books, workouts, nutrition, journaling, a…
Wger
Provides fitness exercise, muscle, equipment, and exercise-detail data from the wger workout management service.
ReminderIt
Schedules real phone-call reminders with optional WhatsApp or email follow-ups, recipient consent management, voice settings, and…
Dieta.ai
Reads and updates Dieta.ai nutrition logs, food macros, goals, diabetes settings, glucose data, wearable integrations, user profi…
AIm Workout Journal
Records and recalls workout data including sets, weights, one-rep maxes, and training volume.
Enshape
Reads a private personal diary and records meal entries through scoped account authorization.
MaCalculatriceEnLigne
Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…