MCP App Store
by KeenEthics
Other
UltraFit360 icon

UltraFit360

by Rahul Singh Samant

Overview

UltraFit360 connects ChatGPT to your personal fitness and nutrition data. Ask what you ate this week, how your weight is trending, what workouts you logged, or for a full progress report — answers come straight from your UltraFit360 food diary, workout logs, body metrics, and AI coaching memory. With your confirmation, it can also log the meals you eat, adjust your daily calorie, macro, water and step targets, plan meals, swap exercises, and assign or build workout programs. Your identity comes solely from your authenticated session, so the app only ever accesses your own data. UltraFit360 is operated by Aptix Labs Private Limited; see https://ultrafit360.com/privacy-policy for how connector data is handled.

Tools

assign_program

ChatGPT
Assign an EXISTING pre-made program template from the UltraFit360 catalog. WORKFLOW: 1. Call list_programs to find the template_id 2. Call get_current_program so you can name the program being replaced 3. Show the user the new program, and state the exact impact: their current program (name it) is deactivated and unstarted sessions are removed. Logged workout history is never deleted. If they have no active program, say that instead of warning about a replacement. 4. Wait for explicit user approval ('yes', 'do it', 'save it', etc.) 5. ONLY THEN call assign_program({template_id}) IMPORTANT: Do NOT call this tool immediately after finding a template. First present the program to the user in natural language and wait for explicit approval. WHEN TO USE: Only for existing catalog templates. For custom splits or bespoke routines, use create_custom_program instead.

create_custom_program

ChatGPT
Build a custom workout program from scratch. WORKFLOW: 1. Call list_exercises({"compact": true}) to load the full exercise catalog 2. Call get_current_program to see what they train now, so you can name the program being replaced and carry over anything worth keeping 3. Design the program and show it in full — days, exercises, sets and reps 4. State the exact impact: their current program (name it) is deactivated and unstarted sessions are removed. Logged workout history is never deleted. If they have no active program, say that instead of warning about a replacement. 5. Wait for explicit user approval ('yes', 'do it', 'save it', etc.) 6. ONLY THEN call create_custom_program with the program details IMPORTANT: Never call this tool immediately after designing a program. First show the complete program to the user in natural language and wait for approval. USAGE: Build custom programs when no catalog template fits (list_programs) or for bespoke designs (5-day PPL, aesthetic V-taper, etc). The program becomes the user's active program immediately but is NOT added to shared templates — verify with get_current_program, not list_programs.

create_meal_plan

ChatGPT
Create planned meal OPTIONS in the user's UltraFit360 meal plan — applied immediately in a single call. The app shows several options per meal type, so send one entry per meal (you can include multiple breakfast options, etc.). By default, sending new options for a meal_type REPLACES that meal_type's current options (other meal types are untouched); set append=true to add options without replacing. Only the newest few options per meal_type stay active. Check get_progress_overview / coaching memory for the user's calorie & macro targets first.

get_body_metrics

ChatGPT
Get the user's logged body metrics over time — body weight, body-fat %, and other measurements — keyed by date, from UltraFit360. USE THIS for questions about weight trend, how much they weigh, whether they are gaining or losing, or any body-composition change over time. Examples: 'how has my weight changed this month?' -> {"days": 30}; 'what did I weigh on/around June 1?' -> {"start_date": "2026-06-01", "end_date": "2026-06-08"}.

get_coaching_memory

ChatGPT
Get the user's AI coaching memory — a structured summary of their profile (age, height, current weight, activity level), active goal (e.g. weight gain/loss + target), current program, training/nutrition context, lifestyle notes, and coach notes. USE THIS to learn who the user is and what they are working toward before giving advice, or when they ask about their goal, target weight, or current plan. Takes no time window. Example: 'what's my current goal and program?' -> {}.

get_current_program

ChatGPT
Get the user's currently assigned workout program — its days and the exercises in each day, including each exercise's user_exercise_id (needed to replace it) and its catalog number n (reusable in create_custom_program). USE THIS before editing a workout so you know what's there. Returns empty days if no active program. The id fields (user_exercise_id, n, *_program_id) are internal — use them in tool calls but NEVER show or mention raw ids or numbers to the user; refer to exercises by name.

get_nutrition

ChatGPT
Get the user's logged meals and per-day nutrition totals (calories, protein, carbs, fat) from their UltraFit360 food diary, aggregated by date. USE THIS whenever the user asks what they ate, their food/meal history, calorie intake, macros, or how their diet looked over any period. This is the single source of truth for their nutrition — do not answer such questions from memory. Returns an empty list if nothing was logged in the window. Examples: 'what did I eat this week?' -> {"days": 7}; 'show my macros from June 1 to June 8' -> {"start_date": "2026-06-01", "end_date": "2026-06-08"}.

get_progress_overview

ChatGPT
Get a single composite snapshot combining nutrition, body metrics, workouts, AND coaching memory for the window — the most efficient call when the user wants a broad progress update. USE THIS for 'how am I doing?', 'give me a progress report/summary', or any question that spans diet + weight + training together, instead of calling the individual tools separately. Examples: 'how's my progress this week?' -> {"days": 7}; 'summarize my last month' -> {"days": 30}.

get_workouts

ChatGPT
Get the user's completed workout sessions in the window plus their all-time personal bests (max weight per exercise) from UltraFit360. USE THIS for questions about training history, what workouts they did, how often they trained, or their strength PRs. Returns session_count=0 when nothing is logged. Examples: 'what workouts did I do this week?' -> {"days": 7}; 'show my training in the first week of June' -> {"start_date": "2026-06-01", "end_date": "2026-06-08"}.

list_exercises

ChatGPT
Load exercises from the UltraFit360 catalog. WHEN BUILDING A CUSTOM PROGRAM: Call list_exercises({"compact": true}) ONCE at the start. It returns the curated catalog (~725 proven exercises covering every muscle x equipment combination), each as {n, short_name, muscle}. n is the exercise's permanent catalog number — pass it as exercise_id in create_custom_program / replace_exercise. Pick ONLY numbers from the returned list; never invent them. FOR ANYTHING NOT IN THE CURATED LIST, OR QUICK LOOKUPS: Use filters over the full ~1,500-exercise catalog: {"muscle": "chest"}, {"equipment": "barbell"}, {"name": "Bench Press"}. Filtered results also carry n. They include custom exercises from the user's coach's organisation (marked custom); those have an exercise_id instead of n: pass that as exercise_id. IMPORTANT: Use n in tool calls, but refer to exercises by name in conversation — never show raw numbers or ids to the user.

list_programs

ChatGPT
List the assignable workout program templates in the UltraFit360 catalog. USE THIS to discover valid template_ids BEFORE calling assign_program — never guess or invent a template_id. Returns each program's template_id, name, description, difficulty, duration_weeks, days_per_week and day_count. This is the SHARED template catalog only — it never contains programs built with create_custom_program (those are personal to the user; see them via get_current_program). template_id is internal: use it in assign_program but NEVER show raw UUIDs to the user; refer to programs by name. Takes no arguments.

log_meal

ChatGPT
Log a meal the user ACTUALLY ATE into their UltraFit360 nutrition log — applied immediately. This is what counts toward their daily calorie and macro totals, and it shows up in get_nutrition / get_progress_overview. DO NOT confuse this with create_meal_plan: that one stores PLANNED meal options for the future and does not affect today's totals. Use log_meal for 'I had...', 'log my lunch', 'add 2 eggs to breakfast'. WORKFLOW: 1. Break the meal into individual food items and estimate calories and macros for each, at the portion the user actually ate 2. Show the user the itemized breakdown with the totals 3. Wait for confirmation, correcting portions if they push back 4. ONLY THEN call log_meal Macros are per item AS SERVED (not per 100g). quantity/unit are descriptive labels for the portion ('200' + 'g', '1' + 'cup') — they do NOT scale the calorie figures you send. Defaults to today in the user's own timezone; pass log_date only when they mean a different day. meal_log_id in the response is internal — never show it to the user.

replace_exercise

ChatGPT
Replace one OR MANY exercises in the user's active workout program in a SINGLE call — prefer batching all swaps into one call via replacements rather than calling this repeatedly. All-or-nothing: if any item is invalid the whole batch is rejected. EFFICIENT WORKFLOW: call get_current_program once and list_exercises({compact:true}) once, then pick all new_exercise_ids from that catalog and apply every swap in ONE replace_exercise call. Once the user approved the overall plan, swap freely WITHOUT asking again; only ask when multiple valid substitutes exist AND the choice materially changes training style (free-weight vs machine, compound vs isolation). The id fields are internal — NEVER print raw UUIDs to the user; describe swaps by exercise name.

update_goals

ChatGPT
Change the user's DAILY TARGETS in UltraFit360 — calorie target, protein/carbs/fat targets, daily water target and daily step goal. Applied immediately. These are the numbers their rings and progress are measured against, so changing them changes how every future day is scored. EVERY FIELD IS OPTIONAL — send ONLY what is changing. Anything you omit keeps its current value; omitting water_target_liters or step_goal does NOT reset them. Sending just {"step_goal": 12000} changes the step goal and nothing else. IF YOU CHANGE THE CALORIE TARGET, send matching protein_g/carbs_g/fat_g in the SAME call. Macros you omit keep their old values, which would leave the app showing macro targets that don't add up to the new calorie figure. WORKFLOW: 1. Call get_coaching_memory or get_progress_overview to see their current targets and goal 2. Propose the new numbers and explain why 3. Wait for explicit user approval 4. ONLY THEN call update_goals This sets targets directly; it does NOT change their goal type (bulk/cut) or target weight — those are edited in the app. Requires an active goal; if the user has never set one up, this returns an error telling them to do it in the app.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

14

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily