Deterministic fitness coaching engine: adaptive programs, progression math, readiness autoregulation
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://workout-engine-production-5dd7.up.railway.app/mcp10 tools · 296msget_todays_sessionToday'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.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.
| Parameter | Type | Description |
|---|---|---|
| dayIndex | integer | Which program day (1-based). Defaults to the first day. |
readiness_checkinRecord 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.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.
| Parameter | Type | Description |
|---|---|---|
| energy* | integer | 1 drained … 5 great |
| sleep* | integer | 1 terrible … 5 great |
| soreness* | integer | 1 none … 5 very sore |
log_workoutRecord 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.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.
| Parameter | Type | Description |
|---|---|---|
| dayIndex | integer | — |
| goal | string | — |
| exercises* | array | Per-exercise completed sets (weights in kg). |
list_swap_optionsValid alternatives for an exercise — same muscle group, filtered to the athlete's equipment/level/injuries. Use before swap_exercise.Valid alternatives for an exercise — same muscle group, filtered to the athlete's equipment/level/injuries. Use before swap_exercise.
| Parameter | Type | Description |
|---|---|---|
| exerciseId* | string | — |
swap_exerciseReplace 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).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).
| Parameter | Type | Description |
|---|---|---|
| exerciseId* | string | — |
| toExerciseId* | string | — |
| dayIndex | integer | — |
| scope | string | Default 'program'. |
get_programThe athlete's current multi-day program (render-ready).The athlete's current multi-day program (render-ready).
No input schema was published for this tool.
regenerate_programRebuild the whole program from the stored profile (~20s AI generation). Use after a profile change or a plateau.Rebuild the whole program from the stored profile (~20s AI generation). Use after a profile change or a plateau.
No input schema was published for this tool.
nutrition_targetsThe athlete's daily calorie + macro targets, computed from body stats, activity, and goal.The athlete's daily calorie + macro targets, computed from body stats, activity, and goal.
No input schema was published for this tool.
meal_planA 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).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).
| Parameter | Type | Description |
|---|---|---|
| mealsPerDay | integer | — |
| trainingDay | boolean | — |
| dietaryStyle | string | — |
| exclusions | array | — |
changelogThe '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.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.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | — |
10 of 10 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Deterministic fitness coaching engine: adaptive programs, progression math, readiness autoregulation
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.