Servidor MCP

fitfly-engine

io.github.dropflyai/fitfly-engine
Salud Público y accesible MCP 2025-11-25

Qué hace este MCP

Manages an adaptive fitness program with workout sessions, exercise substitutions, readiness adjustments, progression tracking, nutrition targets, and meal plans.

changelog
What the engine changed and why
The 'what changed & why' feed — the engine's coaching decisions (volume bumps, deloads, swaps) in Coach Fly's voice. Use to explain to the athlete why their plan evolved.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}}
get_program
Get the active program
The athlete's current multi-day program (render-ready).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_todays_session
Get today's training session
Today's workout: exercises, sets/reps, per-exercise load guidance and concrete target weights, plus nutrition targets and cycle status. Auto-applies the user's readiness check-in (autoregulation) if they've done one today. Call this to see what the athlete should do now.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'dayIndex': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Which program day (1-based). Defaults to the first day.'}}}
list_swap_options
List same-area swap options for an exercise
Valid alternatives for an exercise — same muscle group, filtered to the athlete's equipment/level/injuries. Use before swap_exercise.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['exerciseId'], 'properties': {'exerciseId': {'type': 'string'}}}
log_workout
Log completed sets
Record what the athlete actually lifted. The engine runs progression (double-progression, e1RM), detects PRs, and returns per-exercise outcomes (established/progressed/held/deloaded) with next-time targets. Weights are in kg.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['exercises'], 'properties': {'goal': {'enum': ['strength', 'hypertrophy', 'general_fitness', 'fat_loss'], 'type': 'string'}, 'dayIndex': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'exercises': {'type': 'array', 'items': {'type': 'object', 'required': ['exerciseId', 'sets'], 'properties': {'sets': {'type': 'array', 'items': {'type': 'object', 'required': ['weightKg', 'reps'], 'properties': {'rpe': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'reps': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'weightKg': {'type': 'number'}, 'completed': {'type': 'boolean'}}}}, 'exerciseId': {'type': 'string'}, 'prescribedRepTop': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}}, 'description': 'Per-exercise completed sets (weights in kg).'}}}
meal_plan
Generate a meal plan
A day of meals hitting the athlete's targets, USDA truth-checked (flags feasible=false with a note when macros are approximate). Slow (~15s AI call).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'exclusions': {'type': 'array', 'items': {'type': 'string'}}, 'mealsPerDay': {'type': 'integer', 'maximum': 5, 'minimum': 3}, 'trainingDay': {'type': 'boolean'}, 'dietaryStyle': {'type': 'string'}}}
nutrition_targets
Get nutrition targets
The athlete's daily calorie + macro targets, computed from body stats, activity, and goal.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
readiness_checkin
Log a readiness check-in
Record how the athlete feels today (energy, sleep, soreness — each 1–5). The engine scores readiness and, on the next get_todays_session, reshapes the workout accordingly (reduce volume / reduce intensity / recovery day). Returns the readiness score + modifier.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['energy', 'sleep', 'soreness'], 'properties': {'sleep': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': '1 terrible … 5 great'}, 'energy': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': '1 drained … 5 great'}, 'soreness': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': '1 none … 5 very sore'}}}
regenerate_program
Regenerate the program
Rebuild the whole program from the stored profile (~20s AI generation). Use after a profile change or a plateau.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
swap_exercise
Swap an exercise
Replace an exercise with a valid same-area alternative. scope 'today' = just this session; scope 'program' = going forward. The new lift starts fresh (day-one calibration).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['exerciseId', 'toExerciseId'], 'properties': {'scope': {'enum': ['today', 'program'], 'type': 'string', 'description': "Default 'program'."}, 'dayIndex': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'exerciseId': {'type': 'string'}, 'toExerciseId': {'type': 'string'}}}
Añadido
changelog
17 de September de 2026 a las 12:41
Añadido
meal_plan
17 de September de 2026 a las 12:41
Añadido
nutrition_targets
17 de September de 2026 a las 12:41
Añadido
regenerate_program
17 de September de 2026 a las 12:41
Añadido
get_program
17 de September de 2026 a las 12:41
Añadido
swap_exercise
17 de September de 2026 a las 12:41
Añadido
list_swap_options
17 de September de 2026 a las 12:41
Añadido
log_workout
17 de September de 2026 a las 12:41
Añadido
readiness_checkin
17 de September de 2026 a las 12:41
Añadido
get_todays_session
17 de September de 2026 a las 12:41