MCP App Store
by KeenEthics

Overview

Stop pasting screenshots of your runs into ChatGPT. Vertical syncs directly with Garmin, COROS, Polar, Suunto, WHOOP, and Oura, so ChatGPT already knows your training load, thresholds, and recovery before you ask. Ground ChatGPT by giving it access to 500+ peer-reviewed sports-science papers and the same physiological models — critical-power zones, thresholds, fitness/fatigue tracking and more — coaches use. Build or adjust your training plan in chat, and sync the workouts straight to your watch.

Tools

getActivities

ChatGPT
Retrieve the athlete's actual logged activities with their REAL distance, duration, average pace, and average/max heart rate for each. Use for any question about a specific past activity or training history (e.g. "what was my pace on Saturday's race", "how far was my long run", "have I ever run 30k"). Filter by date range and/or sport. Returns grounded figures — quote them via their [fact:ID] tokens.

getActivitySplits

ChatGPT
Retrieve the per-lap / per-interval splits (pace, average HR, max HR, distance for EACH lap) of the activity on a given date, returned as grounded [fact:ID] tokens. Laps are numbered in order — early warm-up laps are slower/easier than work intervals, so read the per-lap pace before calling a lap a "rep". If the athlete identifies the active/work laps, pass those 1-indexed lap numbers in activeLapNumbers; that selection is authoritative for the active-rep analysis even when it differs from the planned workout.

getAthleteOverview

ChatGPT
The athlete's current coaching snapshot: profile, active plan (goal races, current phase/week), training load (CTL fitness / ATL fatigue / TSB form), physiological thresholds, recovery readiness, plan health, and active injuries. Call this first to ground advice in the athlete's current state.

getSeasonDetail

ChatGPT
Retrieve the full season arc: goals, phases, timeline events, week-by-week budgets, and logged workouts. Use for any season question beyond the always-on summary.

getTrainingLoad

ChatGPT
Retrieve the athlete's training load and weekly volume: current fitness (CTL), fatigue (ATL), form (TSB), weekly CTL ramp, and week-by-week distance + hours DONE vs PLANNED, filterable by date range and/or sport. Each figure is a [fact:ID] token — quote it verbatim. Weeks flagged "(in progress)" are not yet complete.

getWorkoutPushSetting

ChatGPT
Read whether Vertical is currently pushing scheduled workouts to the athlete's connected device (Garmin/COROS). Returns the current on/off state.

getWorkoutSyncStatus

ChatGPT
Report whether the athlete's upcoming planned workouts have actually synced to their connected device (Garmin/COROS). Returns per-device counts of synced/pending/failed workouts plus details of any failures. Use this to answer "did my workouts reach my watch?".

getZones

ChatGPT
Retrieve the athlete's training zones as Easy/Moderate/Hard boundaries (heart-rate by default; pass metric:"pace" or "power" for those). Pass a startDate to ALSO get how much time was spent in each HR zone over that window (e.g. "was last week mostly easy?"). Use for "what are my HR zones", "what pace is zone 2", "how much easy vs hard did I do". Each figure is a [fact:ID] token — quote it verbatim.

projectWeekShift

ChatGPT
READ-ONLY what-if projection of a proposed schedule rearrangement (day shift, day move, or swap). Returns the projected day→session mapping with weekday names, every session move (from day X to day Y), and deterministic implications (rest days lost, stacked days, hard-session spacing, sessions landing in the past). Nothing is modified — use it to discuss a hypothetical layout accurately before the athlete decides.

queryAnalytics

ChatGPT
Answer natural language questions about training data using SQL analytics. Covers: activities, heart rate, sleep, HRV, stress, training zones, scheduled workouts, feedback ratings/RPE, training load, fitness metrics, menstrual cycle data, and all quantitative training data. Returns structured data that you should interpret in context of the conversation.

scheduleWorkouts

ChatGPT
Schedule, move, swap, shorten/lengthen, change the content of, or delete a SPECIFIC DATED workout on the athlete's calendar for their current plan/week (e.g. "move Sunday's run to Saturday", "add a 45min easy run Thursday", "plan my week — 1h Tue, 1h20 Sun"). Do NOT use it for multi-week plan STRUCTURE (use proposePlan, then acceptLatestPlanProposal once the athlete confirms), permanent/recurring changes to which/how many days the athlete trains or their standing weekly availability (use proposeScheduleChange), or merely recalling what is already scheduled (use saved-calendar evidence). If the athlete corrects an add request by saying the workout already exists and should simply remain the only one, check the saved calendar and confirm it without a write. After calling this tool, do not make more calendar edits this turn; read-only lookups may follow. A completed tool call is NOT proof of a calendar edit: say a workout was added or changed only when result.state is applied. If it is unchanged, existing workouts remain unchanged by this attempt; zero changes does not mean an empty calendar. A timeout or failure without an explicit write result leaves the outcome unconfirmed. Supports open-ended (lap-button) warmup or cooldown segments that end when the athlete presses lap instead of at a fixed time or distance — never claim this is unsupported; state it in plain language, e.g. "make the cooldown open-ended, ending when I press lap." When an open step has no planned total, the fixed timed steps are only a subtotal; do not call that subtotal the total workout duration.

searchKnowledgeBase

ChatGPT
Search the Vertical knowledge base for product-level explanations: how scheduling works, why plans adapt, onboarding behavior, and other Vertical-specific guidance. Returns ranked excerpts from admin-authored articles.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps