mcp server
fitfly-engine
Deterministic fitness coaching engine: adaptive programs, progression math, readiness autoregulation
Description as published by the maintainer. Source
- version 0.2.0
- active
active — Registry entry last updated 2026-07-02.
What this server can do
10 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
changelog(limit)- 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.
get_program- The athlete's current multi-day program (render-ready).
get_todays_session(dayIndex)- 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.
list_swap_options(exerciseId)- Valid alternatives for an exercise — same muscle group, filtered to the athlete's equipment/level/injuries. Use before swap_exercise. Required: exerciseId.
log_workout(goal, dayIndex, exercises)- 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. Required: exercises.
meal_plan(exclusions, mealsPerDay, trainingDay, dietaryStyle)- 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).
nutrition_targets- The athlete's daily calorie + macro targets, computed from body stats, activity, and goal.
readiness_checkin(sleep, energy, soreness)- 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. Required: energy, sleep, soreness.
regenerate_program- Rebuild the whole program from the stored profile (~20s AI generation). Use after a profile change or a plateau.
swap_exercise(scope, dayIndex, exerciseId, toExerciseId)- 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). Required: exerciseId, toExerciseId.
Last successful function declaration observed on . Source: https://workout-engine-production-5dd7.up.railway.app/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://workout-engine-production-5dd7.up.railway.app/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 0.2.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-02 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-07-02 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 10 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | workout-engine-production-5dd7.up.railway.app | |
| mcp endpoint status | ok | The server listed 10 functions when asked. | as of probe | workout-engine-production-5dd7.up.railway.app |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json