Propusher MCP server
This URL is an MCP endpoint, not a web page. Paste it into an MCP client (Claude, ChatGPT, or any other) to let it read and write your Propusher exercises, workouts, questionnaires and programs.
The client opens a browser window to sign in with your Propusher account (OAuth); it then acts as you.
Tools (19)
-
create_exerciseCreate an exercise in the coach's library (title, description, muscle groups). It starts with no 3D animation; add one with set_exercise_animation.
-
create_programCreate a program in the coach's library, with its workouts, in one call. Each slot either reuses an existing workout (workoutId) or defines a new one from library exercises (exercises). Workouts are stored as snapshots inside the program — nothing is added to the coach's workout library. Questionnaires (from list_questionnaires) and activities (a sport or session the client does outside Propusher) can be scheduled onto the same calendar. Look up real ids with list_exercises / list_workouts / list_questionnaires first — invented ids are rejected and nothing is written.
-
create_questionnaireCreate a questionnaire template in the coach's library — a form clients fill out (check-ins, intake, RPE, etc).
-
create_workoutCreate a workout template in the coach's library from library/own exercises, in one call. Look up real ids with list_exercises first — invented ids are rejected and nothing is written.
-
describe_animation_formatThe full guide to authoring an exercise 3D animation: scene axes, the 23 joints, the frame format, equipment, and worked examples. Read this before your first call to preview_animation or set_exercise_animation.
-
get_exerciseFetch one exercise in full: its variations (the saved prescriptions), its demo videos, and its 3D animation as key poses you can edit and re-save. Works on library exercises too — the quickest way to see the numbers behind a pose that already looks right.
-
get_programFetch one program in full, with its ordered workouts.
-
get_questionnaireFetch one questionnaire template in full, with its questions.
-
get_workoutFetch one workout in full, with its ordered exercises (sets, reps, weight, duration).
-
list_exercisesList exercises (id, title, description, muscle groups), optionally filtered by muscle group. Use get_exercise for full data.
-
list_programsList multi-week programs (id, title, description). Use get_program for the ordered workouts.
-
list_questionnairesList questionnaire templates (id, title, question count). Use get_questionnaire for the full question list.
-
list_workoutsList workout templates (id, title, description, duration). Use get_workout for the ordered exercises.
-
preview_animationRender key poses so you can SEE them, without saving anything. Returns one image per frame (at most 6), in order. Use it to check a pose before set_exercise_animation, and again after any fix.
-
set_exercise_animationSave a 3D animation onto one of the coach's own exercises, replacing any it already has. It becomes the exercise thumbnail and plays wherever the exercise appears. Preview it first — this overwrites what is there.
-
update_exerciseEdit one of the coach's own exercises (library exercises are read-only). Every field is optional; only what you send changes. Leaves the exercise's 3D animation alone — that's set_exercise_animation's job.
-
update_programEdit one of the coach's own programs (library programs are read-only). Every field is optional; only what you send changes. Sending workouts REPLACES the whole calendar — send the full set of slots you want, not just the changed ones. Sending questionnaires REPLACES only the scheduled questionnaires, and sending activities REPLACES only the scheduled activities — the other kind is left untouched. Each workout is a snapshot inside the program; the coach's workout library is never touched. Call get_program first to see the current state.
-
update_questionnaireEdit one of the coach's own questionnaires (library questionnaires are read-only). Every field is optional; only what you send changes. Sending inputs REPLACES the whole question list — send the full set you want, not just the changed ones. Echo each unchanged question back with its own _id so it keeps its identity instead of being re-created. Call get_questionnaire first to see the current state.
-
update_workoutEdit one of the coach's own workout templates (library workouts are read-only). Every field is optional; only what you send changes. Sending exercises REPLACES the whole list — send the full set you want, not just the changed ones. Call get_workout first to see the current state. To change one exercise's notes: send every exercise back as { id } from get_workout, with description (or any other field) added on the one that changes.