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
- In your assistant, add a connector with the URL
https://mcp.trainedby.fit/mcp. - Sign in on the TrainedBy page with your coach account: email, Apple or Google, the same as the TrainedBy app.
- Review the permissions and approve.
- 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
- “Who needs me today?” The assistant calls
list_attentionand 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. - “Alex's squat has stalled for three weeks. Suggest a change to next week.” The assistant reads
get_client_planandlist_recent_workouts, then callsdraft_workout_progression. You approve or reject the draft in TrainedBy; nothing reaches the client before that. - “Draft replies to this week's check-ins.” The assistant calls
list_recent_check_insanddraft_weekly_check_infor 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.
| Tool | What it does | Changes data |
|---|---|---|
append_client_context | Write into this coach’s private context file for the client. | Yes |
append_coach_context | Write a confirmed coaching rule or why into this coach’s own file immediately. | Yes |
append_lead_context | Write into this lead’s own pre-onboarding context file. | Yes |
apply_draft | Apply a compatible non-coaching AgentDraft. | Yes |
assign_program | Draft a saved program (from import_workout_program) as a new workout plan for each chosen client (1 to 25). | Yes |
create_client_subscription_link | Create a provider-hosted monthly subscription link for an EXISTING owned client. | Yes |
create_offer | Create one coach offer through the existing offer service. | Yes |
diff_plan | Preview the diff for an owned workout_plan_draft, workout_plan_revision_draft, or diet_plan_draft. | No |
draft_competition | Create a pending Competition OS draft for coach review. | Yes |
draft_diet_plan | Create a pending diet_plan_draft for coach dashboard review. | Yes |
draft_weekly_check_in | Create a pending weekly check-in message for a client. | Yes |
draft_workout_block | Create a pending workout_plan_draft for a new client. | Yes |
draft_workout_day_edit | Create a pending, dashboard-review-only targeted edit draft for one workout day in the active plan. | Yes |
draft_workout_plan_revision | Create a pending structural revision draft for a client whose plan is protected. | Yes |
draft_workout_progression | Create pending workout_progression drafts for a client. | Yes |
ensure_client_booking_link | Create a private booking-link token for one owned client when absent, or return the existing link. | Yes |
explain_change | Explain an owned workout_plan_draft, workout_plan_revision_draft, or diet_plan_draft in coach-readable terms. | No |
explain_competition_score | Explain one participant competition preview score and missing-data impact. | No |
get_agent_policy | Read 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_status | Check an approval you requested: pending, approved, rejected, expired, changed (the draft changed after the link was made) or decided_elsewhere. | No |
get_booking_link | Read an existing native TrainedBy booking link for a session type. | No |
get_call_transcript | Read one call transcript's raw text, chunk-paginated with a hard 30k-character cap per call. | No |
get_client | Get a converted client profile, last durable workout, active training block, current workout plan summary, and latest weekly review summary. | No |
get_client_assessment_profile | Read 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_consistency | Read 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_context | Read this coach’s private context file for the client. | No |
get_client_daily_status | Read 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_plan | Read the client's single ACTIVE diet plan: plan meta, daily targets, and per-meal prescribed macros with full food items. | No |
get_client_muscle_volume | Daily strength volume (sum kg×reps) and top-set load by catalog primary muscle group for one owned client. | No |
get_client_operating_brief | Read 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_plan | Read a client workout plan/block context for drafting. | No |
get_client_plan_readiness | Read whether a client can receive a first workout-plan draft, including setup-plan and onboarding context. | No |
get_client_recovery_status | Latest 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_subscription | Read 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_term | Read an owned client coaching term, renewal mode and remembered payment rail. | No |
get_coach_context | Read this coach’s own living coaching-intelligence file. | No |
get_competition_data_readiness | Inspect coach-owned participants for competition metric readiness. | No |
get_lead_context | Read this lead’s own pre-onboarding context file. | No |
get_meal_photo | Fetch one meal photo as an image for coach analysis, downscaled server-side. | No |
get_renewal_settings | Read 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_variance | Compare planned vs actual per occurrence for one durable workout session (seconds, meters, reps, load). | No |
get_started | Start here. | No |
get_workout_session | Get one durable workout session with full set-level logs and notes. | No |
import_clients | Prepare adding clients to the coach's roster, for the coach to approve. | Yes |
import_diet_template | Save a diet template you extracted from the coach's document into their diet template library. | Yes |
import_workout_program | Save a multi-week training program you extracted from the coach's document into their program library, to reuse for many clients. | Yes |
invite_clients | Prepare the TrainedBy invite email for existing clients who have not joined, for the coach to approve (at most 50). | Yes |
link_coach_account | Link this connected AI client to the authenticated coach account using a one-time code from TrainedBy Settings. | Yes |
list_agent_activity | List 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_connections | List 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_attention | Includes 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_biometrics | List client wearable biometrics (recovery score, HRV, resting HR, sleep, strain, calories, SpO2, skin temp) over a client-local date range. | No |
list_client_call_transcripts | List 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_checkins | List historical daily check-ins for one client over a strict client-local date range. | No |
list_client_form_videos | Read coach-owned form-check videos for one client. | No |
list_client_meal_entries | List client meal logs and nutrition entries over a strict client-local date range. | No |
list_client_whatsapp_thread | List the WhatsApp Cloud API thread for one owned client. | No |
list_clients_needing_plans | List clients with no live workout plan, a workout block that has ended, or no live diet plan. | No |
list_coaching_decisions | Read recent owned-client coaching decisions, coach resolutions, evaluated outcomes, and evidence-backed personal response patterns. | No |
list_competition_metric_catalog | List approved Competition OS metrics and resolver contracts. | No |
list_expiring_clients | Read 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_rules | Read 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_offers | List the authenticated coach's offers, including the public URL. | No |
list_pending_drafts | List 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_programs | List the coach's saved training programs and diet templates. | No |
list_recent_check_ins | List recent weekly check-ins for one client. | No |
list_recent_workouts | List recent durable workout sessions for one client across all plans and blocks, including wearable walks. | No |
list_roster | List live (non-archived) clients in the coach roster. | No |
list_upcoming_bookings | List upcoming native coach bookings. | No |
list_whatsapp_inbound | List inbound WhatsApp Cloud API messages for the authenticated coach. | No |
mark_sick_day | Mark a past client-local day as sick/excused via POST | Yes |
narrow_agent_permissions | Remove permissions from one connected AI (this AI when agent_id is omitted). | Yes |
preview_competition_leaderboard | Preview weekly and overall Competition OS leaderboards from approved metrics and selected weights. | No |
propose_follow_up_rules | Propose 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_decision | Create a pending TRAINEDBY review item for a substantive maintain, defer, request-more-data, or stop decision. | Yes |
record_outside_payment | Record that an owned manual-renewal client says they paid OUTSIDE the app, for the coach to confirm. | Yes |
report_missing_capability | Use this only when the coach asks to request a feature or to tell the team about something TrainedBy cannot do yet. | Yes |
request_approval | Ask the coach to approve one pending draft from their phone or chat. | Yes |
resolve_exercise_names | Resolve proposed exercise names against the active exercise library. | No |
resolve_food_names | Resolve proposed food names against FoodProduct as matched, ambiguous, or unknown. | No |
revoke_agent_connection | Disconnect 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_connections | Disconnect EVERY AI from this coach's TrainedBy account, including this one. | Yes |
search_exercises | Search the active TrainedBy exercise library. | No |
search_food_products | Search the TrainedBy FoodProduct nutrition library. | No |
send_client_whatsapp | Send a WhatsApp Cloud API text message to an owned client using the coach's connected WABA. | Yes |
send_renewal_link | For 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_target | Set an owned client's daily step target in TrainedBy. | Yes |
trigger_weekly_check_in | Open the in-app weekly check-in for an owned client the same way the coach dashboard retrigger does (WeeklyCheckinSchedule reschedule). | Yes |
validate_competition_config | Validate a proposed Competition OS config against approved metrics, participant ownership, date windows, missing-data policy, visibility intent, and readiness warnings. | No |
validate_plan_change | Validate 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.