TrainedBy connector documentation

For personal trainers and online fitness coaches who connect their own AI assistant to TrainedBy. Operated by TRAINEDBY FIT LTD (UK company 17488583). Looking for the setup guide? Connect your AI in three steps.

At a glance

  • Connector URL: https://mcp.trainedby.fit/mcp
  • Sign-in: OAuth 2.1 with PKCE, through https://mcp.trainedby.fit
  • Who it is for: coaches with a TrainedBy account. Clients use STREEQ or the TrainedBy client app instead.
  • Privacy policy, Terms, support: viv@trainedby.fit

What it does

  • Roster and attention: list clients and see who needs you today (missed check-ins, workouts, meals and steps, ended training blocks, renewals).
  • Client detail: workouts and sets, check-ins, body metrics and photos the client shared, synced health data, food logs, and call transcripts where you record calls.
  • Drafts you approve: workout plan revisions, progressions, single-day edits, diet plans and weekly check-in replies. A client's plan never changes until you approve the draft in TrainedBy.
  • Business setup: import and invite clients, follow-up rules, offers and payment links, programs and diet templates in your library.
  • AI permissions: choose what the AI may only look at, prepare for your approval, or do itself, with daily limits and quiet hours.

How to connect

  1. In your assistant, add a connector with the URL https://mcp.trainedby.fit/mcp.
  2. Sign in on the TrainedBy page with your coach account: email, Apple or Google, the same as the TrainedBy app.
  3. Review the permissions and approve.
  4. Try: “Use TrainedBy: who needs me today?”

For client developers

  • Authorization code flow with PKCE (S256). Protected resource metadata: https://mcp.trainedby.fit/.well-known/oauth-protected-resource/mcp. Authorization server metadata: https://mcp.trainedby.fit/.well-known/oauth-authorization-server.
  • Dynamic client registration and client ID metadata documents are supported, so no client ID needs to be issued in advance.
  • Scopes: coach:roster.read, coach:client.read, coach:client.workouts.read, coach:client.check_ins.read, coach:client.body_metrics.read, coach:client.biometrics.read, coach:client.meal_log.read, coach:client.transcripts.read, coach:client.targets.write, coach:client.check_ins.write, coach:client.messages.write, coach:client.booking_links.write, coach:client.billing_links.write, coach:renewal.read, coach:renewal.write, coach:offers.write, coach:draft.create, coach:draft.read, coach:draft.apply, coach:agent_session.write, coach:client.context.write, coach:context.read, coach:context.write, coach:activity.read.
  • Coaches can narrow or revoke each connected AI from the assistant or in the TrainedBy web app.

Examples

  1. “Who needs me today?” The assistant calls list_attention and lists clients with a missed check-in, workout or meals, and training blocks that have ended. Steps that have not synced are reported as unknown, not as a miss.
  2. “Alex's squat has stalled for three weeks. Suggest a change to next week.” The assistant reads get_client_plan and list_recent_workouts, then calls draft_workout_progression. You approve or reject the draft in TrainedBy; nothing reaches the client before that.
  3. “Draft replies to this week's check-ins.” The assistant calls list_recent_check_ins and draft_weekly_check_in for each client. You edit and send from TrainedBy.

Tools (90)

Every tool the connector offers. “Changes data” means the tool can write. Every change to a client's plan is a draft until you approve it.

ToolWhat it doesChanges data
append_client_contextWrite into this coach’s private context file for the client.Yes
append_coach_contextWrite a confirmed coaching rule or why into this coach’s own file immediately.Yes
append_lead_contextWrite into this lead’s own pre-onboarding context file.Yes
apply_draftApply a compatible non-coaching AgentDraft.Yes
assign_programDraft a saved program (from import_workout_program) as a new workout plan for each chosen client (1 to 25).Yes
create_client_subscription_linkCreate a provider-hosted monthly subscription link for an EXISTING owned client.Yes
create_offerCreate one coach offer through the existing offer service.Yes
diff_planPreview the diff for an owned workout_plan_draft, workout_plan_revision_draft, or diet_plan_draft.No
draft_competitionCreate a pending Competition OS draft for coach review.Yes
draft_diet_planCreate a pending diet_plan_draft for coach dashboard review.Yes
draft_weekly_check_inCreate a pending weekly check-in message for a client.Yes
draft_workout_blockCreate a pending workout_plan_draft for a new client.Yes
draft_workout_day_editCreate a pending, dashboard-review-only targeted edit draft for one workout day in the active plan.Yes
draft_workout_plan_revisionCreate a pending structural revision draft for a client whose plan is protected.Yes
draft_workout_progressionCreate pending workout_progression drafts for a client.Yes
ensure_client_booking_linkCreate a private booking-link token for one owned client when absent, or return the existing link.Yes
explain_changeExplain an owned workout_plan_draft, workout_plan_revision_draft, or diet_plan_draft in coach-readable terms.No
explain_competition_scoreExplain one participant competition preview score and missing-data impact.No
get_agent_policyRead the coach's rules for what this AI may do: for each action type whether it may only look (observe), only prepare drafts for the coach to approve (prepare), or do it itself (act); daily limits; and quiet hours...No
get_approval_statusCheck an approval you requested: pending, approved, rejected, expired, changed (the draft changed after the link was made) or decided_elsewhere.No
get_booking_linkRead an existing native TrainedBy booking link for a session type.No
get_call_transcriptRead one call transcript's raw text, chunk-paginated with a hard 30k-character cap per call.No
get_clientGet a converted client profile, last durable workout, active training block, current workout plan summary, and latest weekly review summary.No
get_client_assessment_profileRead a client's body-scan assessment profile: AI body composition (body-fat range, muscle definition, symmetry), posture findings, measurements, and comparison to previous scan.No
get_client_consistencyRead a client consistency board for a 7-day, 14-day, or custom local-date window: daily_flags grid, summaries, habits_per_day, weekly_check_in, last_gym, and today_partial when the window ends on the still-open local...No
get_client_contextRead this coach’s private context file for the client.No
get_client_daily_statusRead a client's daily status for one local day: timezone, today's scheduled training occurrence and completion, lastWorkoutAt/lastWorkoutLabel (last plan-linked gym when one exists, otherwise latest durable session...No
get_client_diet_planRead the client's single ACTIVE diet plan: plan meta, daily targets, and per-meal prescribed macros with full food items.No
get_client_muscle_volumeDaily strength volume (sum kg×reps) and top-set load by catalog primary muscle group for one owned client.No
get_client_operating_briefRead this client’s operating brief: intake, onboarding, this coach’s private context, and the separate person-owned context while this coach is current.No
get_client_planRead a client workout plan/block context for drafting.No
get_client_plan_readinessRead whether a client can receive a first workout-plan draft, including setup-plan and onboarding context.No
get_client_recovery_statusLatest recovery snapshot for one client: most recent recovery/HRV/RHR/sleep/strain values (last 3 days) plus each metric's trailing 28-day personal baseline mean and percent deviation.No
get_client_subscriptionRead one owned client's subscription state: renewal_mode (autopay|manual), subscription_status, Razorpay/Stripe ids, access_expires_at, remembered payment_rail from the shared term projection, raw payment_mode, any...No
get_client_termRead an owned client coaching term, renewal mode and remembered payment rail.No
get_coach_contextRead this coach’s own living coaching-intelligence file.No
get_competition_data_readinessInspect coach-owned participants for competition metric readiness.No
get_lead_contextRead this lead’s own pre-onboarding context file.No
get_meal_photoFetch one meal photo as an image for coach analysis, downscaled server-side.No
get_renewal_settingsRead the coach renewal settings and, when client_id is supplied, the owned client’s effective length, term, remembered rail and pending link.No
get_session_varianceCompare planned vs actual per occurrence for one durable workout session (seconds, meters, reps, load).No
get_startedStart here.No
get_workout_sessionGet one durable workout session with full set-level logs and notes.No
import_clientsPrepare adding clients to the coach's roster, for the coach to approve.Yes
import_diet_templateSave a diet template you extracted from the coach's document into their diet template library.Yes
import_workout_programSave a multi-week training program you extracted from the coach's document into their program library, to reuse for many clients.Yes
invite_clientsPrepare the TrainedBy invite email for existing clients who have not joined, for the coach to approve (at most 50).Yes
link_coach_accountLink this connected AI client to the authenticated coach account using a one-time code from TrainedBy Settings.Yes
list_agent_activityList what connected AI apps, commands, approvals, coaching decisions and plan changes did for this coach, newest first, across TrainedBy and the coach's own STREEQ agents.No
list_agent_connectionsList the AIs connected to this coach's TrainedBy account, one row per installed AI, with their permissions, last use and whether each is still connected.No
list_attentionIncludes manual renewal term.ending, term.ended, term.unpaid_3d and term.renewal_pinged items with period, days left, renewal length and remembered payment rail; renewal.payment_claimed means the client reports a...No
list_client_biometricsList client wearable biometrics (recovery score, HRV, resting HR, sleep, strain, calories, SpO2, skin temp) over a client-local date range.No
list_client_call_transcriptsList raw call transcripts from recorded Google Meet booking calls for one owned client, newest first , including pre-conversion lead calls (attendee_type "lead") from this coach's lead linked to the client...No
list_client_daily_checkinsList historical daily check-ins for one client over a strict client-local date range.No
list_client_form_videosRead coach-owned form-check videos for one client.No
list_client_meal_entriesList client meal logs and nutrition entries over a strict client-local date range.No
list_client_whatsapp_threadList the WhatsApp Cloud API thread for one owned client.No
list_clients_needing_plansList clients with no live workout plan, a workout block that has ended, or no live diet plan.No
list_coaching_decisionsRead recent owned-client coaching decisions, coach resolutions, evaluated outcomes, and evidence-backed personal response patterns.No
list_competition_metric_catalogList approved Competition OS metrics and resolver contracts.No
list_expiring_clientsRead active manual-renewal clients with a known expiry within the next within_days UTC calendar days, including overdue clients; sorted by expiry.No
list_follow_up_rulesRead the coach's check-in reminder times for all clients and their follow-up rules (missed check-in, missed workout, inactivity, term ending), with counts per rule type.No
list_offersList the authenticated coach's offers, including the public URL.No
list_pending_draftsList drafts waiting for the coach to approve (newest first), whether each already has an approval link, and bulk previews (imports, invites, follow-up rules) still waiting.No
list_programsList the coach's saved training programs and diet templates.No
list_recent_check_insList recent weekly check-ins for one client.No
list_recent_workoutsList recent durable workout sessions for one client across all plans and blocks, including wearable walks.No
list_rosterList live (non-archived) clients in the coach roster.No
list_upcoming_bookingsList upcoming native coach bookings.No
list_whatsapp_inboundList inbound WhatsApp Cloud API messages for the authenticated coach.No
mark_sick_dayMark a past client-local day as sick/excused via POSTYes
narrow_agent_permissionsRemove permissions from one connected AI (this AI when agent_id is omitted).Yes
preview_competition_leaderboardPreview weekly and overall Competition OS leaderboards from approved metrics and selected weights.No
propose_follow_up_rulesPropose follow-up rules for all active clients (or client_ids) and/or the default check-in reminder hours, for the coach to approve from a link.Yes
record_coaching_decisionCreate a pending TRAINEDBY review item for a substantive maintain, defer, request-more-data, or stop decision.Yes
record_outside_paymentRecord that an owned manual-renewal client says they paid OUTSIDE the app, for the coach to confirm.Yes
report_missing_capabilityUse this only when the coach asks to request a feature or to tell the team about something TrainedBy cannot do yet.Yes
request_approvalAsk the coach to approve one pending draft from their phone or chat.Yes
resolve_exercise_namesResolve proposed exercise names against the active exercise library.No
resolve_food_namesResolve proposed food names against FoodProduct as matched, ambiguous, or unknown.No
revoke_agent_connectionDisconnect one AI from this coach's TrainedBy account for good: its sign-in is ended and it cannot reconnect without a new link code from the coach.Yes
revoke_all_agent_connectionsDisconnect EVERY AI from this coach's TrainedBy account, including this one.Yes
search_exercisesSearch the active TrainedBy exercise library.No
search_food_productsSearch the TrainedBy FoodProduct nutrition library.No
send_client_whatsappSend a WhatsApp Cloud API text message to an owned client using the coach's connected WABA.Yes
send_renewal_linkFor an owned manual-renewal client from list_attention term.* items, create or replay one personal renewal intent, use the shared existing-client subscription-link writer where needed, and durably queue one email.Yes
set_step_targetSet an owned client's daily step target in TrainedBy.Yes
trigger_weekly_check_inOpen the in-app weekly check-in for an owned client the same way the coach dashboard retrigger does (WeeklyCheckinSchedule reschedule).Yes
validate_competition_configValidate a proposed Competition OS config against approved metrics, participant ownership, date windows, missing-data policy, visibility intent, and readiness warnings.No
validate_plan_changeValidate an owned workout_plan_draft, workout_plan_revision_draft, or diet_plan_draft before coach review.No

Troubleshooting

  • “This tool is not available” or “subscription required”. Your coach account needs an active plan or trial.
  • The AI says it is not allowed to do something. Your AI permissions set it to look-only or prepare-only. Ask the assistant to show your AI permissions, then change them in TrainedBy settings.
  • A draft was made but the client sees no change. Correct: drafts wait for you. Approve it in TrainedBy.
  • A client is missing from the roster. Archived clients are hidden. Ask the assistant to include archived clients.
  • Steps show as unknown. The client's phone has not synced Apple Health or Health Connect yet today.
  • The connection expired. Remove the connector and add it again.

Support

Email viv@trainedby.fit with the assistant you use, roughly when it happened and what you asked. Do not send passwords.