MCP-Server

fitfly-engine

io.github.dropflyai/fitfly-engine
Gesundheitswesen Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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).
Eingabeschema
{'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'}}}
Hinzugefügt
changelog
17. September 2026 12:41
Hinzugefügt
meal_plan
17. September 2026 12:41
Hinzugefügt
nutrition_targets
17. September 2026 12:41
Hinzugefügt
regenerate_program
17. September 2026 12:41
Hinzugefügt
get_program
17. September 2026 12:41
Hinzugefügt
swap_exercise
17. September 2026 12:41
Hinzugefügt
list_swap_options
17. September 2026 12:41
Hinzugefügt
log_workout
17. September 2026 12:41
Hinzugefügt
readiness_checkin
17. September 2026 12:41
Hinzugefügt
get_todays_session
17. September 2026 12:41