{"name":"Gird AI Coach","version":"0.1.0","description":"Coach plans sessions and dated cycles toward a target event; the phone records what the person actually did. One Bot speaks as every Coach the person added, in each discipline's own words.","connection":{"mcpUrl":"https://api.gird.app/mcp","authorizationServer":"https://api.gird.app/.well-known/oauth-authorization-server","protectedResource":"https://api.gird.app/.well-known/oauth-protected-resource","scopes":["gird","offline_access"],"notes":["Calling any tool requires an OAuth grant (scope gird) bound to the signed-in phone user; anonymous calls get 401.","Coach acts as the person: it never records a session or checks off a to-do for them.","White-label clients have no bot: their trainer manages them and tool calls as them get 403.","Restricted tools refuse for unauthorized callers — say so and stop instead of retrying."]},"categories":{"coaches":"Coaches — one per discipline, the starting point for every conversation","profile":"Profile — intake, goals, and the coaching policy for unattended runs","daily":"Daily — standing to-dos and the journal Coach can read","nutrition":"Nutrition — macro targets, planned meals, and the meal log the phone records","catalog":"Catalog — published exercises, session templates, and programs to build on","planning":"Planning — user workout templates and dated development cycles","history":"History — completed sessions, bests, and the training summary","reminders":"Reminders — notifications the phone fires","notes":"Notes — pinned messages on a Coach's home screen","circles":"Circles — family, team, studio, and class groups","trainer":"Trainer orgs — white-label clients managed in conversation","ops":"Unattended loop — the once-a-day check-in, mostly silent by design","reports":"Reports — feature requests, problem reports, and admin views"},"tools":[{"name":"list_coaches","summary":"Call first: lists the person's Coaches, one per discipline.","category":"coaches"},{"name":"create_coach","summary":"Adds a Coach for a discipline that has none yet.","category":"coaches"},{"name":"get_profile","summary":"Reads the intake Profile, goals, and coaching policy.","category":"profile"},{"name":"update_profile","summary":"Creates or patches the Profile; completes intake explicitly.","category":"profile"},{"name":"get_account_status","summary":"Reads the subscription status so the Bot can explain PLAN_REQUIRED.","category":"profile","requires":"never blocked — answers while lapsed or unsubscribed"},{"name":"list_daily_todos","summary":"Lists standing everyday items (they never fire as alarms).","category":"daily"},{"name":"create_daily_todo","summary":"Adds a standing everyday item to the Daily screen.","category":"daily"},{"name":"update_daily_todo","summary":"Edits or archives a Daily Todo by id.","category":"daily"},{"name":"delete_daily_todo","summary":"Removes a Daily Todo; archiving is preferred.","category":"daily"},{"name":"get_daily_log","summary":"Per-day check-offs and journal notes for the last 7 days by default.","category":"daily"},{"name":"post_daily_note","summary":"Adds a timestamped journal note as Coach.","category":"daily"},{"name":"get_nutrition_plan","summary":"Reads the active Nutrition Plan: daily macro targets and planned meals with times.","category":"nutrition"},{"name":"suggest_macro_targets","summary":"Read-only Macro Calculator from body weight, goal, and sessions per day.","category":"nutrition"},{"name":"create_nutrition_plan","summary":"Writes a Nutrition Plan with targets and planned meals; archives the previous one.","category":"nutrition"},{"name":"update_nutrition_plan","summary":"Patches targets, meals, guidance, or status of a Nutrition Plan by id.","category":"nutrition"},{"name":"get_meal_log","summary":"Per-day meals eaten vs the plan, with consumed totals and adherence.","category":"nutrition"},{"name":"log_meal","summary":"Records a meal the person said they ate, planned or unplanned.","category":"nutrition"},{"name":"list_exercises","summary":"Resolves names to catalog exercise keys before authoring a workout.","category":"catalog"},{"name":"get_exercise","summary":"Fetches one published exercise definition.","category":"catalog"},{"name":"list_system_workouts","summary":"Lists ready-made session templates for a discipline.","category":"catalog"},{"name":"get_system_workout","summary":"Fetches one published session template.","category":"catalog"},{"name":"list_programs","summary":"Lists published multi-session programs for a discipline.","category":"catalog"},{"name":"get_program","summary":"Fetches one published program definition.","category":"catalog"},{"name":"create_user_workout","summary":"Authors a reusable session template from catalog exercises.","category":"planning"},{"name":"list_user_workouts","summary":"Lists saved templates; favorites are flagged, not separate.","category":"planning"},{"name":"get_user_workout","summary":"Fetches one saved template before editing it.","category":"planning"},{"name":"update_user_workout","summary":"Replaces the full definition of a saved template.","category":"planning"},{"name":"delete_user_workout","summary":"Soft-deletes a saved template.","category":"planning"},{"name":"set_workout_favorite","summary":"Pins or unpins a template in Favorites.","category":"planning"},{"name":"list_development_cycles","summary":"Lists dated plans (cycles) with their target events.","category":"planning"},{"name":"create_development_cycle","summary":"Creates a dated cycle from programs, with reminders and fallbacks.","category":"planning"},{"name":"list_sessions","summary":"Lists recent completed or abandoned sessions (last 50), with videoRefCount.","category":"history"},{"name":"get_session","summary":"Fetches one session: score, feedback, set logs, and video filenames.","category":"history"},{"name":"log_session","summary":"Records a past session only when the person said they already did the work.","category":"history"},{"name":"list_one_rep_maxes","summary":"Lists active 1RM records (fitness only).","category":"history"},{"name":"set_one_rep_max","summary":"Sets a 1RM for a fitness exercise.","category":"history"},{"name":"get_training_summary","summary":"Weekly numbers, bests, records, and cycle consistency — same as Reports.","category":"history"},{"name":"list_reminders","summary":"Lists the active notification schedule, including who placed each row.","category":"reminders"},{"name":"create_reminder","summary":"Schedules a message, to-do, or session alarm on the phone.","category":"reminders"},{"name":"update_reminder","summary":"Edits time, copy, or target of an existing reminder.","category":"reminders"},{"name":"cancel_reminder","summary":"Cancels a reminder so the phone drops its notification.","category":"reminders"},{"name":"list_coach_notes","summary":"Lists pinned home-screen messages per discipline.","category":"notes"},{"name":"post_coach_note","summary":"Pins a note on a Coach's home screen (one pinned per discipline).","category":"notes"},{"name":"update_coach_note","summary":"Edits or re-shows an existing note.","category":"notes"},{"name":"archive_coach_note","summary":"Removes a note from the home screen.","category":"notes"},{"name":"list_circles","summary":"Lists groups, members, and what each member shares (names only, never emails).","category":"circles"},{"name":"create_circle","summary":"Creates a group with this user as its first leader.","category":"circles"},{"name":"invite_to_circle","summary":"Mints a join code or link for a group (nothing is emailed).","category":"circles"},{"name":"create_member_reminder","summary":"Leaders only: places a reminder in a consenting member's account.","category":"circles"},{"name":"list_member_reminders","summary":"Leaders only: sees reminders they placed, plus more if shared.","category":"circles"},{"name":"get_member_training_summary","summary":"Leaders only: a member's numbers, only if the member shares them.","category":"circles"},{"name":"list_my_orgs","summary":"Lists training groups the signed-in trainer owns.","category":"trainer"},{"name":"create_org","summary":"Creates a branded training group for clients.","category":"trainer"},{"name":"create_org_invite","summary":"Mints a client invite code or shared team code.","category":"trainer"},{"name":"list_my_clients","summary":"Call first as a trainer: every client across every owned group.","category":"trainer"},{"name":"get_client","summary":"Confirms one client's identity before writing to their account.","category":"trainer"},{"name":"get_client_training_summary","summary":"A client's numbers; joining the group implies consent.","category":"trainer"},{"name":"list_client_sessions","summary":"A client's recent session history (read-only).","category":"trainer"},{"name":"get_client_session","summary":"One of a client's sessions in full detail (read-only).","category":"trainer"},{"name":"create_client_coach","summary":"Adds a discipline Coach inside a client's account.","category":"trainer"},{"name":"create_client_workout","summary":"Authors a session template inside a client's account.","category":"trainer"},{"name":"update_client_workout","summary":"Replaces a client's saved template in full.","category":"trainer"},{"name":"create_client_cycle","summary":"Creates a dated cycle inside a client's account.","category":"trainer"},{"name":"create_client_reminder","summary":"Places a reminder inside a client's account.","category":"trainer"},{"name":"post_client_note","summary":"Pins a note on a client's home screen.","category":"trainer"},{"name":"log_client_session","summary":"Records a client's past session only when they said they did it.","category":"trainer"},{"name":"get_coaching_snapshot","summary":"Starts every unattended check-in: today, the week, policy, and budget in one read.","category":"ops"},{"name":"record_coach_intervention","summary":"Audit-only close to every unattended run, silent ones included.","category":"ops"},{"name":"schedule_coach_notification","summary":"Unattended loop only: schedules one local notification for today's piece.","category":"ops","requires":"coachingPolicy.autonomy.notify = auto, feature flag on, snapshot envelope"},{"name":"cancel_coach_notification","summary":"Unattended loop only: cancels a loop-scheduled notification and returns the budget.","category":"ops","requires":"snapshot envelope"},{"name":"reschedule_cycle_day","summary":"Unattended loop only: moves today's cycle programs inside the allowed window.","category":"ops","requires":"coachingPolicy.autonomy.reschedule = auto, feature flag on, snapshot envelope"},{"name":"apply_approved_fallback","summary":"Unattended loop only: swaps today for a pre-approved shorter session.","category":"ops","requires":"coachingPolicy.autonomy.fallback = auto, feature flag on, snapshot envelope"},{"name":"list_app_reports","summary":"Lists the person's filed feature requests and problem reports.","category":"reports"},{"name":"request_feature","summary":"Files a feature request after confirming title and body.","category":"reports"},{"name":"report_problem","summary":"Files a problem report after confirming title and body.","category":"reports"},{"name":"get_invitation_request_report","summary":"Who asked for a Gird AI invitation, plus totals by status.","category":"reports","restricted":"Platform Admins only — the tool refuses for anyone else"},{"name":"update_invitation_request_status","summary":"Marks an invitation request invited/declined/pending and emails when invited.","category":"reports","restricted":"Platform Admins only — the tool refuses for anyone else"},{"name":"grant_comp_subscription","summary":"Comps a subscription without a store purchase; omit durationDays for permanent, pass days for a timed grant.","category":"reports","restricted":"Platform Admins only — the tool refuses for anyone else"},{"name":"get_app_report_queue","summary":"App Report triage queue across every user: feature requests and problem reports.","category":"reports","restricted":"Platform Admins only — the tool refuses for anyone else"},{"name":"update_app_report_status","summary":"Updates an App Report's triage status (open/triaged/planned/done/wontfix) by clientId.","category":"reports","restricted":"Platform Admins only — the tool refuses for anyone else"}]}