MCP App Store
by KeenEthics

Overview

Onyx Coach helps fitness trainers manage their private client roster, review workout history, maintain exercise and workout libraries, create and assign multi-week plans, and keep private client notes through ChatGPT.

Tools

add_workout_to_plan

ChatGPT
Adds a workout to a workout plan: data.week and data.day (0-based) place it in the program, data.exerciseList prescribes the exercises and sets (exercise ids from search_exercises; ids that resolve to neither library are rejected). Names and metadata are filled in from the library.

add_workout_to_plan_template

ChatGPT
Adds a workout to a client's plan template: data.week and data.day (0-based) place it in the program, data.exerciseList prescribes the exercises and sets (exercise ids from search_exercises; names and metadata are filled in from the library).

assign_workout_plan

ChatGPT
Assigns a plan template to the client: creates an active plan instance from the template's current workouts, starting now unless start names a later day. The client sees it in their app immediately; start only sets the days its workouts are planned on. Call this only when the trainer explicitly asks to start or activate the plan for the client — creating a plan template does not imply starting it.

coach_myself

ChatGPT
Makes the trainer their own client, so workouts and plans can be built for them like for anyone else and they can train with them in the Onyx Coach mobile app, seeing exactly what a client sees. It does not use up a client slot. Use it when the trainer trains alone, has no clients yet, or wants to try the product on themselves. The returned id is the client id to build for.

copy_to_client

ChatGPT
Copies workout content into a client's library. Sources: another client's workoutTemplate or workoutPlanTemplate (sourceClientId + templateId), a general-library workoutPlan (planId), one workout of a general-library plan (workoutPlanWorkout: planId + workoutId — becomes a workout template), one workout of a client plan template (workoutPlanTemplateWorkout: sourceClientId + templateId + workoutId — becomes a workout template), or a workoutCategory (workoutCategoryId — becomes a workout template). Optional name overrides the name of the copy. A copied program is always unlocked for the client: the entitlements of the source are not copied.

create_client_note

ChatGPT
Creates a private trainer note on a client (data.text, optional data.pinned). Only the trainer who wrote a note can see or edit it — the client never can.

create_exercise

ChatGPT
Creates an exercise in the trainer's library. Search first: create only when neither library has the exercise. data.type sets how it is measured (reps, time, distance, ...) and data.withWeight: 1 adds a weight input. Returns the stored exercise including its new id.

create_scheduled_event

ChatGPT
Schedules a workout or rest day on a client's calendar (data.type: 'workout' | 'restDay'). This is the tool for a one-off workout on a specific date ("schedule a workout for Monday") — never create a workout plan for that. For a reusable workout use create_workout_template; for a program of several workouts use create_workout_plan_template. data.scheduledFor is a wall-clock date "YYYY-MM-DD" or datetime "YYYY-MM-DDTHH:mm" in the client's local time — pass it exactly as the client should see it, no timezone conversion. For a workout, put the exercises in data.exerciseList (exercise ids from search_exercises, or the compact entries of a template from list_workout_templates) and set data.templateId only as provenance — later template edits never propagate to already-scheduled events. Names and metadata are filled in from the library. Check-in events cannot be created here.

create_workout_plan

ChatGPT
Creates a workout plan (multi-week program) in the trainer's general library, optionally with its workouts in the same call (workouts; add more later with add_workout_to_plan). Exercise entries need only the exercise id (from search_exercises) and the prescription; names and metadata are filled in from the library. Returns the stored plan including its new id. Only for programs of several workouts across days and weeks — for a single workout use create_workout_template (reusable) or create_scheduled_event (on a date) instead.

create_workout_plan_template

ChatGPT
Creates a workout-plan template (multi-week program) in a client's library, optionally with its workouts in the same call (workouts may be empty — add more later with add_workout_to_plan_template). Exercise entries need only the exercise id (from search_exercises) and the prescription; names and metadata are filled in from the library. Only for programs of several workouts spread across days and weeks — never for a single workout (use create_workout_template for a reusable workout or create_scheduled_event for a workout on a date). If the trainer did not say which of the three they want, ask before creating anything. Activate it for the client with assign_workout_plan, but only when the trainer asks to start it.

create_workout_template

ChatGPT
Creates a workout template in a client's library: a named exercise list where each entry references an exercise id (from search_exercises) and prescribes its sets: reps and weight, time or distance depending on the exercise measurement type. Exercise names, media and metadata are filled in from the library automatically. The client sees the template in their app immediately and can start it any time. Use this for a reusable single workout. For a workout on a specific date use create_scheduled_event instead; for a program of several workouts across days and weeks use create_workout_plan_template. If the trainer did not say which of the three they want, ask before creating anything.

deactivate_workout_plan

ChatGPT
Deactivates (soft-deletes) one of the client's active plan instances. The plan template it was created from is untouched. Plan-instance ids come from list_client_workout_plans.

delete_client_note

ChatGPT
Soft-deletes one of the trainer's own notes on a client.

delete_exercise

ChatGPT
Soft-deletes an exercise from the trainer's library. Templates and workouts that already reference it keep working; the exercise just stops appearing in the library.

delete_plan_template_workout

ChatGPT
Soft-deletes a single workout from a client's plan template.

delete_plan_workout

ChatGPT
Soft-deletes a single workout from a general-library workout plan.

delete_scheduled_event

ChatGPT
Cancels (soft-deletes) a scheduled event, removing it from the client's calendar. Check-in markers are managed by the check-ins service and rejected.

delete_workout_plan

ChatGPT
Soft-deletes a workout plan from the trainer's general library.

delete_workout_plan_template

ChatGPT
Soft-deletes a plan template from a client's library and deactivates any active plans the client started from it.

delete_workout_template

ChatGPT
Soft-deletes a workout template from a client's library. It disappears from the client's app; workouts the client already completed from it are unaffected.

duplicate_plan_template_workout

ChatGPT
Duplicates a workout within a client's plan template, optionally onto a different week/day (0-based). Returns the copy with its new id.

duplicate_plan_workout

ChatGPT
Duplicates a workout within a general-library workout plan, optionally onto a different week/day (0-based). Returns the copy with its new id.

get_client

ChatGPT
Returns one coached client: the relationship record (status, timestamps) plus their name and profile picture. Client ids come from list_clients.

get_client_onboarding_data

ChatGPT
Returns the client's onboarding answers: gender, year born, goal, limiting factor, preferred training days, years of experience, workout location (gym or home), focus areas, height in cm and weight in kg. Read it before programming for a client so the plan fits their goal, experience and schedule. item is null when the client never completed onboarding (for example a managed client without the app).

get_client_timezone

ChatGPT
Returns the client's device-reported IANA time zone (item.timeZone) and clock preferences, so scheduled times can be expressed in their local time. item is null when the client never reported one.

get_client_workout

ChatGPT
Returns a single completed workout of a client by id — the performed exercises with their sets (reps/weight/time/…), start/end timestamps (unix seconds) and the client's feedback (rating, note). Use it when the workout id is already known (e.g. from the current page); otherwise page with get_client_workout_history.

get_client_workout_history

ChatGPT
Returns a client's completed workouts, newest first. Each entry contains the performed exercises with their sets (reps/weight/time/…) and start/end timestamps (unix seconds). Page backwards by passing the oldest start you have as before.

get_exercise

ChatGPT
Returns the full exercise document from either library: complete description, translations, demo video links and default settings. Use it when a search or list summary is not enough, for example before editing one of the trainer exercises.

get_product_guide

ChatGPT
How Onyx Coach itself works, for the trainer's "how do I…" and "where is…" questions: the pages of the trainer web app, the exact button labels and what the product cannot do. Topics: overview (navigation, terms, subscription and billing, settings), clients (adding and inviting clients, the client page, premium access), training (exercises, workouts, programs), checkIns (check-in schedule, inbox, reviewing), calendar (scheduling for a client). Answer from the returned text and never guess a place or a feature it does not mention. This is product documentation, not the trainer's data.

list_client_check_ins

ChatGPT
A client's most recent submitted check-ins, newest first: body measurements (kg, cm, %), the client's note and the trainer's feedback, with the due date and status. Photos are not included. Only check-ins run by the calling trainer are returned.

list_client_notes

ChatGPT
Lists the trainer's own private notes on a client, with text, pinned flag and timestamps. Notes are never visible to the client, and other trainers' notes are never returned.

list_client_workout_plans

ChatGPT
Lists the plan instances a client is actually running (assigned/started plans with per-workout instance ids and progress). For the trainer's reusable plan library use list_workout_plans; for the client's assignable templates use list_workout_plan_templates.

list_clients

ChatGPT
Lists the coached clients of the signed-in trainer with their client id, name, profile picture and relationship status. Use the returned client id for every client-scoped tool. Optionally filter by status (e.g. "active").

list_exercise_blocks

ChatGPT
Lists the trainer's exercise blocks: reusable named groups of exercises (a warm-up, a core finisher, a mobility routine) with their prescribed sets. Copy a block's entries into the exerciseList of a workout to reuse it.

list_exercises

ChatGPT
Browses the trainer's own exercise library (not the official one) as a slim, pageable list: id, name, measurement type, equipment, focus areas and a truncated description. search matches the beginnings of words in the name or any translated name; combine it with the focus area, equipment and measurement filters. Page with offset and the returned nextOffset. When you know which exercise you need, use search_exercises instead.

list_official_exercises

ChatGPT
Browses the OnyxCoach official exercise library, curated exercises every trainer can reference in templates and plan workouts by id exactly like their own. Slim, pageable view (id, name, measurement type, equipment, focus areas, truncated description) with total matches and nextOffset for the next page. search matches the beginnings of words in the name or any translated name; combine it with the focus area, equipment and measurement filters. When you know which exercise you need, use search_exercises instead.

list_scheduled_events

ChatGPT
Lists a client's calendar of scheduled events — planned workouts, rest days and check-in markers — with their status (scheduled/started/completed). scheduledFor is a wall-clock string in the client's local time, "YYYY-MM-DD" or "YYYY-MM-DDTHH:mm"; bound the range with from/to ("YYYY-MM-DD", inclusive). Exercise entries are returned in compact form.

list_workout_plan_templates

ChatGPT
Lists the workout-plan templates in a client's library — multi-week programs that can be assigned to the client with assign_workout_plan. Pass includeWorkouts to also return each template's workouts (exercise entries in compact form).

list_workout_plans

ChatGPT
Lists the trainer's general workout-plan library (multi-week programs). Pass includeWorkouts to also return each plan's workouts (day/week entries with exercise lists in compact form).

list_workout_templates

ChatGPT
Lists the workout templates in a client's library — reusable named workouts (exercise lists with prescribed sets) the client can start any time. Exercise entries are returned in compact form (id, name, type, sets, note, superset).

remove_workout_from_plan

ChatGPT
Removes one scheduled workout occurrence (by instanceId from list_client_workout_plans) from a client's active plan instance. Returns the updated plan.

search_exercises

ChatGPT
Finds exercises by meaning and by name across the OnyxCoach official library (thousands of curated exercises) and the trainer's own library. Understands abbreviations ("RDL"), synonyms and any language, and matches translated exercise names. Returns a ranked list (score 1 is the best hit) with each exercise id, source (official or trainer), measurement type, equipment and focus areas. Use this whenever you need an exercise id for a workout; use the list tools only to browse by filter. Search once per exercise you need, with a specific query.

update_client_note

ChatGPT
Updates a note's text and/or pinned flag. Only notes created by the connected trainer can be edited. Returns the updated note.

update_exercise

ChatGPT
Updates an exercise in the trainer's library (official exercises cannot be edited). Pass only the fields to change in changes; set an optional field to null to clear it. Returns the updated exercise.

update_plan_template_workout

ChatGPT
Updates a workout inside a client's plan template. changes.exerciseList replaces the whole list, so include every exercise the workout should keep (id plus sets). Returns the updated workout.

update_plan_workout

ChatGPT
Updates a workout inside a general-library workout plan (name, week/day placement, exercise list, …). changes.exerciseList replaces the whole list, so include every exercise the workout should keep (id plus sets). Returns the updated workout.

update_scheduled_event

ChatGPT
Updates a scheduled event — name, scheduledFor, exerciseList, note or status. Pass only the fields to change in changes; exerciseList replaces the whole list, so include every exercise the event should keep (id plus sets). Only events created by the connected trainer can be edited; check-in markers are managed by the check-ins service and rejected. Returns the updated event.

update_workout_plan

ChatGPT
Updates a workout plan's metadata in the trainer's general library (name, description, active, hide). Pass only the fields to change in changes — null clears a field.

update_workout_plan_template

ChatGPT
Updates a plan template's metadata in a client's library. Pass only the fields to change in changes — null clears a field. Returns the updated template.

update_workout_template

ChatGPT
Updates a workout template in a client's library. Pass only the fields to change in changes; set an optional field to null to clear it. exerciseList replaces the whole list, so include every exercise the template should keep (id plus sets, as returned by list_workout_templates). Returns the updated template.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

50

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily