MCP App Store
by KeenEthics

Overview

Track and analyze your life: food, fitness, places and more. What is Gyroscope? Gyroscope is an app that helps you track everything about your life in one place. You can see it in our iPhone app, web dashboards, and now access it via MCP to review your life directly in ChatGPT. It keeps your meals, workouts, sleep, steps, weight, heart rate, computer time and the places you go in one account. This plugin is the bridge from that account to ChatGPT, so you can share your Gyroscope data with ChatGPT and do more data analysis on your history. What devices do I need? Gyroscope is compatible with hundreds of apps and trackers, such as Apple Health, Oura, Garmin, Whoop, Withings, Strava, RescueTime, Dexcom, Stelo, Eight Sleep and your iPhone and Apple Watch. But even without any devices or special accessories, you can track a lot of important information directly in the iPhone app. Now you can also log meals and other data directly via MCP. Food XRAY With years of testing and optimization, Gyroscope Food XRAY is a food camera built for accuracy. Log meals with photos in the app, or enter them directly here and let ChatGPT log them. Then pull up your detailed nutrition archives to do analysis, correlations, or anything else you desire. How does it work? 1. Add Gyroscope in ChatGPT and sign in on gyrosco.pe. ChatGPT never sees your password. 2. Choose what ChatGPT may read. Places, your mood, your journal and your glucose stay off unless you turn them on. 3. Ask ChatGPT a question about your history. The plugin loads only the data that question needs, and ChatGPT answers from your real numbers. 4. Tell ChatGPT what you ate or what you did, and it logs that into your Gyroscope account. What can you ask? Log a chicken burrito bowl and an iced tea for lunch. ChatGPT estimates the calories, protein, carbs and fat and logs it for you. Pull up your latest sleep from your wearables and compare it to what you have been eating. See how your glucose from your Stelo monitor compares to the meals you are eating. Line up your workouts and steps against your sleep score to see which weeks you recover best. Put your weight next to your weekly calories and protein over the last three months. See which cities, restaurants and cafes you visit most, and how your sleep changed on each trip. Compare your computer time with your sleep and steps to find your most productive weeks. Load your last month of history, then ask ChatGPT to turn it into a chart, a spreadsheet, a report or an infographic. The plugin provides the data, and ChatGPT makes the chart. What does it collect? Only what you ask it to log, in your own words. Everything else it shows you is already in your Gyroscope account and is read only when you ask. Nothing can be edited or deleted through the plugin. Disconnect any time from your Gyroscope account. What ChatGPT can access depends on your Gyroscope account and the categories you allow when you connect.

Tools

add_strength_training_details

ChatGPT
Gyroscope lift details for this member's Gyroscope account: attach the exercises, sets, reps and weights to an existing workout, so lift history and strength coaching work (most tracked workouts are bare time blocks). Need before calling: the workout_id from load_workouts for that day (a time block that is not tracked yet gets its id from save_workout), and the sets as the member described them. Do not guess weights, reps or sets; ask first, and show the member what you are about to log before calling. Weights in kg (convert lb yourself, 1 lb = 0.4536 kg); every set needs reps or seconds. Up to 40 exercises and 120 sets per call. Writes one dated details record; never edits an existing one. Confirmed in one line. Deleting or editing is done in the app; this connection cannot delete.

gyroscope_guide

ChatGPT
Gyroscope connection guide for the assistant: what Gyroscope is, what this connection can do for the member, the tool families and the rules for dates, permissions and logging. No account data; call it to orient yourself.

gyroscope_status

ChatGPT
Gyroscope account status for this member's Gyroscope connection: linked account, permitted data categories, timezone, and the public membership name where the assistant may show it. The result contains account status only.

load_computer

ChatGPT
Gyroscope computer time for this member's Gyroscope account on one or more explicit dates: the day's total tracked seconds (and the same as a duration), split into productive and unproductive seconds. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 31 days per call. Totals only, never the apps or sites.

load_day

ChatGPT
Gyroscope daily summaries (food totals, sleep, steps, workouts, and places) for this member's Gyroscope account on the requested dates. Use ISO YYYY-MM-DD dates, up to 7 days per call, with no future dates. The result includes only categories permitted by the connection and lists categories excluded because permission is missing.

load_food

ChatGPT
Gyroscope food log for this member's Gyroscope account: every food item for one or more explicit dates, with what Gyroscope's analysis made of it (the full label with estimated grams per food, the short name, what the photo showed, the portion, a packaged item's ingredients), the member's own caption, nutrition per item, a photo link, and per-meal and per-day totals. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 14 days per call; for a longer span or a dense log, ask a week at a time.

load_history

ChatGPT
Gyroscope raw history for this member's Gyroscope account: the rows of one kind (or one bundle of kinds) for one month, or a bounded start/end span, as string rows under a columns header, oldest first: the month is the unit; a bundle (fitness, nutrition, sleep_all, places) is one merged timeline oldest-first with a kind column; rows are raw; walk a longer span by month. Give exactly one of month or start_date+end_date (sparse kinds up to 366 days, dense kinds up to 31; a bundle takes its strictest member). A page is at most 2,000 rows or about 200 KB; when has_more is true, repeat the same call with page = next_page (or pass the cursor instead: the window and kind come from it). The first column is the local time YYYY-MM-DD HH:MM (the local date for steps and sleep_scores); a bundle's columns are [time, kind] and kind_columns lists the rest per member kind. Scope is per kind, checked by Gyroscope (a bundle drops the members this connection may not read and lists them in unauthorized_kinds; a single kind without its scope answers insufficient_scope with the grant link): activity.read: workouts running cycling steps steps_hourly; nutrition.read: food; health.summary.read: sleep sleep_scores sleep_stages weight bodyfat hrv rhr heartrate meditation music computer; mood.read: mood; journal.read: journal; location.read: gvisits travels (mood.read, journal.read and location.read are opt-in permissions). Kinds and their columns: workouts = workouts (runs and rides excluded) [end_time activity duration_min calories distance_km service]; running = runs [end_time duration_min distance_km calories climb_m service]; cycling = bike rides [end_time duration_min distance_km calories climb_m service]; steps = daily step totals (date rows) [steps service]; steps_hourly = raw step chunks as the phone posts them, usually hourly (dense) [end_time steps service]; food = food items [label caption meal calories protein_g carbs_g fat_g fiber_g sugar_g has_photo]; sleep = sleep sessions as Gyroscope builds nights (the night then naps; confirmed is true for a night the member saved as their sleep score, false for an estimate from raw data) [end_time asleep_min confirmed]; sleep_scores = nightly sleep scores (date rows) [score bedtime wake_time duration_hours debt_percent source]; sleep_stages = raw sleep stage segments (dense) [end_time stage service source]; weight = weigh-ins [kg pounds service]; bodyfat = bodyfat measurements [percent service]; hrv = heart rate variability (dense) [hrv_ms method service]; rhr = resting heart rate [resting_bpm service]; heartrate = heart rate samples (dense) [bpm service]; mood = mood swipes, one row per answer [trait answer velocity]; meditation = meditation sessions [end_time duration_min service]; journal = journal entries (never the photo) [text prompt has_photo]; gvisits = place visits (lat/lng to 3 decimals) [departure name category city lat lng]; travels = trips between places, distance and mode only [end_time mode distance_km]; music = songs played (dense) [title artist album duration_sec service]; computer = computer activity rows (dense) [end_time activity category seconds productivity]. Bundles: fitness = workouts + running + cycling + steps; nutrition = food; sleep_all = sleep + sleep_scores; places = gvisits + travels.

load_places

ChatGPT
Gyroscope places (place names, categories, cities, and visit intervals) for this member's Gyroscope account on the requested dates. Use ISO YYYY-MM-DD dates, up to 7 days per call, with no future dates. Results are limited to those place and visit fields.

load_sleep

ChatGPT
Gyroscope sleep sessions and sleep scores for this member's Gyroscope account on one or more explicit dates, one night per date the way Gyroscope builds it (the night that ended that morning first, then naps). confirmed is true when the night is the sleep score the member saved in Gyroscope; when false the night is a rough estimate from raw sleep data and carries a note, so say it is an estimate. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 31 days per call. Does not include unnecessary device metadata.

load_steps

ChatGPT
Gyroscope daily step totals for this member's Gyroscope account on one or more explicit dates. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 31 days per call. Returns one grouped total per day, never raw high-frequency sensor streams.

load_strength_history

ChatGPT
Gyroscope lift history for this member's Gyroscope account: the strength-training details logged in the app or through this connection (exercises, sets, weights, reps, time, notes and per-exercise e1RM benchmarks) between explicit start and end dates (YYYY-MM-DD), spanning up to 366 days, newest first. Optional exercise filters the sets to one exercise name or slug (substring match). Use it for "is my bench going up" questions and before suggesting loads.

load_trend

ChatGPT
Gyroscope trend for this member's Gyroscope account: weekly or monthly aggregates of one metric (steps, sleep, calories, protein, weight, workouts, rhr, hrv) between explicit start and end dates (YYYY-MM-DD), spanning up to 366 days. Periods are ISO weeks (Monday start) or calendar months in the member's timezone, clipped to the range; a period with no samples is left out. Per period: sample count, average, min, max and total in the stated unit; weight adds first/last weigh-in, sleep adds the average sleep score, workouts add total calories (total = minutes, average = minutes per session). Use it for "how has my X changed" questions instead of many day reads.

load_weather

ChatGPT
Gyroscope weather for this member's Gyroscope account on one or more explicit dates: the readings recorded where the member was (local time, temperature in C and F, summary, humidity, wind speed, UV index) and the day's high, low and most frequent summary. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 31 days per call. No coordinates or place names.

load_workout_state

ChatGPT
Gyroscope workout program state for this member's Gyroscope account, read-only: the current program state the app keeps, the quick-workout state and the saved setup answers (days per week, equipment, experience, goals, restrictions, session minutes and the like), as stored. The program library and the routing rules live in the app; the program is changed in the app, never through this connection. Parts are null (setup empty) when nothing is saved.

load_workouts

ChatGPT
Gyroscope workout, run, and bike summaries for this member's Gyroscope account on one or more explicit dates. Dates must be ISO YYYY-MM-DD strings, no future dates. Maximum 31 days per call. Returns named sessions and totals only, never raw high-frequency sensor streams.

log_again

ChatGPT
Gyroscope food log for this member's Gyroscope account: log a prior food item again ("same as yesterday's breakfast"), copying its caption, nutrition and photo reference, as a new item at the given time. Need before calling: the item id from load_food for the day it was first logged (items with has_photo keep their photo). meal is only a morning/day/evening bucket, inferred from the time when omitted. Counted in the day's totals at once. Confirmed in one line. Deleting or editing is done in the app; this connection cannot delete.

save_bike

ChatGPT
Gyroscope bike ride for this member's Gyroscope account: log a manual ride (distance, start and end or duration) that no device tracked. Rides synced from a device or HealthKit appear in load_workouts, so a ride overlapping one there is already tracked. Need before calling: the start time and either the end time or the duration in minutes, from the member; do not guess missing times, ask for the one missing thing. Minimum before saving: start, duration or end, and distance; convert miles to km yourself. If anything is missing, ask short questions before calling. distance_km 0.01 to 1000; 1 minute to 10 hours. Additive, confirmed in one line. Deleting or editing is done in the app; this connection cannot delete.

save_food

ChatGPT
Gyroscope food log for this member's Gyroscope account: log a text-only consumed item from a direct member request. Use this for normal food items and meals, but also for anything the member consumed: water and other drinks; supplements, vitamins, powders, electrolytes, creatine, etc.; snacks, bites, desserts, sauces, alcohol/caffeine, or any other edible/drinkable item. "meal" is only a loose database bucket for morning/day/evening placement. It does NOT mean the item must be a literal meal: a glass of water, coffee, vitamin, protein powder, snack, or late-night bite still uses this tool. Exact time/structure is not critical. If the member does not name a bucket, leave meal out: Gyroscope files the item by the member's meal schedule (by default a late dinner until 1am counts for the day before, 1am to 4am is its own late-night bucket, breakfast from 4am, lunch from 11am, dinner from 5pm). Never pass latenight; Gyroscope assigns it. Do not tell the member water/drinks/supplements cannot be logged. They can be logged here as consumed items. Need before calling: the caption (what they consumed, including amount if given); if it is missing, ask "What should I write as the caption?". Preferred: estimate calories, protein_g, carbs_g and fat_g yourself from the caption and amount, pass all four with the call, and state the estimate to the member; the member does not have to supply them. Gyroscope keeps those macros, counts them in the day totals at once, and its own food analysis fills in the rest (fiber, sugar, micronutrients) later. If you cannot estimate, send the caption alone: Gyroscope analyzes it from the caption, as if the member typed it in the app. Keep the caption to what they consumed; the numbers go in their own fields, never in the caption. Deleting or editing logged items is done in the app; this connection cannot delete.

save_run

ChatGPT
Gyroscope run for this member's Gyroscope account: log a manual run (distance, start and end or duration) that no device tracked. Runs synced from a watch or HealthKit appear in load_workouts, so a run overlapping one there is already tracked. Need before calling: the start time and either the end time or the duration in minutes, from the member; do not guess missing times, ask for the one missing thing. Minimum before saving: start, duration or end, and distance; convert miles to km yourself (1 mi = 1.609 km). If they say "half marathon" without a time you may set distance_km=21.0975 but MUST ask for the start and duration before saving. distance_km 0.01 to 1000; 1 minute to 10 hours. Additive, confirmed in one line. Deleting or editing is done in the app; this connection cannot delete.

save_workout

ChatGPT
Gyroscope workout for this member's Gyroscope account: create a NEW manual workout time block for a session no device tracked. Watch and HealthKit workouts sync on their own and appear in load_workouts, so a session overlapping one there is already tracked, and lifts for it go on with add_strength_training_details. Need before calling: the start time and either the end time or the duration in minutes, from the member; do not guess missing times, ask for the one missing thing. activity is the closest real type, e.g. "Traditional Strength Training", "Functional Strength Training", "HIIT", "Yoga", "Pilates", "Core Training", "Walking", "Hiking", "Swimming", "Tennis", "Other"; for runs use save_run and for rides save_bike. 1 minute to 10 hours; calories default to Gyroscope's estimate when omitted. Additive, confirmed in one line. Deleting or editing is done in the app; this connection cannot delete.

add_experiment_note

Claude

add_strength_training_details

Claude

experiment_check_in

Claude

gyroscope_guide

Claude

gyroscope_status

Claude

load_blood_labs

Claude

load_bloodsugar

Claude

load_body

Claude

load_computer

Claude

load_context

Claude

load_day

Claude

load_dna

Claude

load_experiment

Claude

load_food

Claude

load_health_score

Claude

load_history

Claude

load_indexes

Claude

load_ketones

Claude

load_places

Claude

load_sleep

Claude

load_steps

Claude

load_strength_history

Claude

load_trend

Claude

load_weather

Claude

load_workout_state

Claude

load_workouts

Claude

log_again

Claude

save_bike

Claude

save_bloodlevels

Claude

save_bloodpressure

Claude

save_bodyfat_percent

Claude

save_food

Claude

save_run

Claude

save_sleep

Claude

save_temp

Claude

save_weight

Claude

save_workout

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps