Reference

Everything your AI can do

You never call these directly — you just talk, and the assistant picks the right tool. Here's the full set the Nutrition MCP server exposes, with what each one does and a phrase that triggers it.

38 tools across 7 areas

Logging food & meals

The core loop — capture what you ate, however you describe it.

log_meal Log Interactive UI

Log what you ate with calories and macros — plus fiber, total sugar, alcohol and caffeine when the numbers are there. Describe it in plain language — the AI estimates the numbers, asks about portion size when it's unclear, and can pull label data from a barcode or the web first.

Parameters
  • description required — What was eaten
  • meal_type required — breakfast, lunch, dinner or snack
  • calories optional — Total calories
  • protein_g optional — Protein in grams
  • carbs_g optional — Carbohydrates in grams
  • fat_g optional — Fat in grams
  • fiber_g optional — Dietary fiber in grams. The AI is told to fill this in on every meal, estimating from the ingredients when no label figure exists, because a blank is not a zero — it leaves the whole day out of your fiber average
  • sugar_g optionalTotal sugars in grams — the figure a label prints under "Sugars", including the sugar naturally in fruit and milk, not just added sugar. Filled in on every meal on the same terms as fiber
  • alcohol_g optional — Grams of pure ethanol, not the volume of the drink and not its ABV — the AI works it out from the pour size and strength (a 330 ml 5% beer is 13 g)
  • caffeine_mg optional — Caffeine in milligrams, not grams — the one field here that isn't in grams, because that is how every label and guideline states it (a brewed coffee is about 95 mg, an espresso 63 mg, a can of cola 34 mg). Caffeine adds no calories. Unlike fiber and sugar it is only sent for things that actually contain caffeine — a recorded 0 would put a caffeine row on your dashboard for a nutrient you never consume
  • logged_at optional — When you ate it, if not now — lets you log something after the fact
  • notes optional — Additional notes
Try saying

Log a chicken burrito bowl with extra guac for lunch

…or just snap a photo of your plate — the AI names each dish, sizes portions in everyday measures (a glass, a handful), checks how you've logged it before, and confirms with you before logging.

lookup_barcode Look up

Fetch a packaged product's label nutrition from Open Food Facts by its barcode (8–14 digit EAN/UPC). You can type the digits or read them off a photo of the package; the result can then be logged, scaled to how much you ate.

Try saying

Scan this barcode: 3017620422003

…or send a photo of the package — the AI reads the barcode digits off it.

start_meal_import Import Interactive UI

Open an importer in the chat to bring your history over from another app — pick the file you exported from MyFitnessPal, Cronometer, Lose It! or MacroFactor, match its columns to calories, macros, fiber, sugar and caffeine — plus alcohol if you've turned alcohol tracking on — and review what will be added before you confirm. The file is read in your browser, nothing is saved until you approve the preview, and importing the same file again won't create duplicates.

Try saying

Import my meal history from MyFitnessPal

bulk_import_meals Import

Add a batch of past meals in one go — up to 50 at a time — instead of logging them one by one. The importer above writes through this, and the AI can use it directly for meal data you've pasted into the chat. Every row is checked first and anything that doesn't fit is reported row by row, so re-sending the same rows is safe and won't duplicate what's already logged.

Parameters
  • meals required — The rows to import, in source-file order (1–50 per call). Each row can carry a time, meal type, description, notes and the same numbers as a logged meal: calories, protein_g, carbs_g, fat_g, fiber_g, sugar_g (total sugars), alcohol_g (grams of pure ethanol) and caffeine_mg (milligrams, not grams)
  • expected_row_count required — How many rows this call carries, counted from the source file, so a dropped row gets caught
  • expected_total_kcal optional — Calorie total from the source file, reconciled against what arrives
  • dry_run optional — Report what would happen without writing anything
  • on_error optional — Import the valid rows and report the rest, or write nothing if any row fails
  • source_app optional — Which app the file came from
Try saying

Here's last week's meals pasted from my old app — add them all

update_meal Edit Interactive UI

Change the details of a meal you already logged — its description, any macro, fiber, sugar, alcohol or caffeine, the time, or notes. Also how a gap gets backfilled: if a meal went in without its fiber or sugar, the server says so and the AI fills it in here.

Parameters
  • id required — UUID of the meal to update
  • description optional
  • calories optional
  • protein_g optional
  • carbs_g optional
  • fat_g optional
  • fiber_g optional
  • sugar_g optional — Total sugars, not added sugar
  • alcohol_g optional — Grams of pure ethanol, not the volume of the drink
  • caffeine_mg optional — Milligrams, not grams
  • logged_at optional
  • notes optional
Try saying

Actually that lunch was 600 calories, not 500 — fix it

delete_meal Remove

Remove a meal entry you logged by mistake.

Parameters
  • id required — UUID of the meal to delete
Try saying

Delete the snack I logged this afternoon

Reviewing your meals

Look back over what you've logged, one day or a whole range at a time.

search_meals View

Search your past meals by keyword and see them grouped into your recurring variations — how often each was logged, when last, and its typical calories. This is how the AI checks a photo of your plate against how you've actually logged that meal before, and how "log my usual breakfast" works.

Parameters
  • queries required — Food keyword alternatives, in any language you've logged in
  • days optional — How far back to look (default a year)
  • limit optional — Max entries to analyze
Try saying

Log my usual breakfast

get_meals_today View

See every meal you've logged today.

Try saying

What have I eaten today?

get_meals_by_date View

See all the meals you logged on a specific day.

Parameters
  • date required — Date in YYYY-MM-DD format
Try saying

Show me everything I ate on July 4th

get_meals_by_date_range View

Pull all meals between two dates in one go — handy for reviewing a week or a month.

Parameters
  • start_date required — Start date (YYYY-MM-DD)
  • end_date required — End date (YYYY-MM-DD)
Try saying

List my meals from Monday to Friday

export_meals Export

Export your full meal history as a CSV and get a private download link that stays valid for 60 minutes.

Try saying

Export all my meals to a CSV I can download

Water

Track hydration alongside your food.

log_water Log

Log a hydration entry. Give it in any unit — cups, ounces, liters — and it's converted to millilitres for you.

Parameters
  • amount_ml required — Amount in milliliters (integer, > 0).
Try saying

I just drank a 500 ml bottle of water

get_water_today View

See today's total water intake and each entry.

Try saying

How much water have I had today?

get_water_by_date View

See your water total and entries for a specific day.

Parameters
  • date required — Date in YYYY-MM-DD format
Try saying

How much did I drink yesterday?

delete_water Remove

Remove a water entry you added by mistake.

Parameters
  • id required — UUID of the water entry to delete
Try saying

Remove that last water entry

Weight

Log weigh-ins, review them, and watch the trend toward your target.

log_weight Log

Record a body-weight measurement in kg or lb. Multiple weigh-ins per day are fine, and the server stores it canonically so your unit preference never distorts the number.

Parameters
  • weight required — Body weight value, in `unit` (> 0).
Try saying

Log my weight — 74.2 kg this morning

update_weight Edit

Correct an existing weigh-in — the value, the timestamp, or its notes.

Parameters
  • id required — UUID of the weight entry to update
  • weight optional — New weight value, in `unit`.
  • logged_at optional — ISO 8601 timestamp
  • notes optional
Try saying

Fix this morning's weigh-in to 73.8 kg

delete_weight Remove

Remove a weight entry.

Parameters
  • id required — UUID of the weight entry to delete
Try saying

Delete today's weight entry

get_weight_today View

See today's weigh-ins, shown in your preferred unit.

Try saying

What did I weigh today?

get_weight_by_date View

See your weigh-ins for a specific day.

Parameters
  • date required — Date in YYYY-MM-DD format
Try saying

What was my weight on the 1st?

get_weight_by_date_range View

Get every weigh-in between two dates, grouped by day with each day's average.

Parameters
  • start_date required — Start date (YYYY-MM-DD)
  • end_date required — End date (YYYY-MM-DD)
Try saying

Show my weigh-ins for the last two weeks

set_weight_unit Setting

Choose whether weights show and are entered in kg or lb. Stored values are unaffected — only display and default parsing change.

Try saying

Use pounds for my weight from now on

get_weight_unit View

Check which weight unit you're currently using.

Try saying

What weight unit am I using?

Goals & progress

Set targets and see how each day measures up.

set_nutrition_goals Setting

Set your daily calorie, macro, fiber, sugar, alcohol, caffeine and water goals, plus an optional target body weight. Calories, protein, carbs, fat, fiber and water are targets to reach; sugar, alcohol and caffeine are limits to stay under, and progress is worded accordingly. Update only the fields you name; the rest stay put.

Parameters
  • daily_calories optional — Daily calorie target (kcal). Null to clear.
  • daily_protein_g optional — Daily protein target (grams). Null to clear.
  • daily_carbs_g optional — Daily carbs target (grams). Null to clear.
  • daily_fat_g optional — Daily fat target (grams). Null to clear.
  • daily_fiber_g optional — Daily fiber target (grams), a minimum to reach. Null to clear.
  • daily_sugar_g optional — Daily limit for total sugars (grams), a maximum to stay under. Total sugars include the sugar naturally in fruit and milk, so public added-sugar guidance is a much lower number. Null to clear.
  • daily_alcohol_g optional — Daily alcohol limit in grams of pure ethanol, a maximum to stay under. One US standard drink is 14 g, one UK unit 7.9 g. Null to clear.
  • daily_caffeine_mg optional — Daily caffeine limit in milligrams, a maximum to stay under. The EFSA and FDA ceiling for healthy adults is 400 mg a day (roughly four brewed coffees), and 200 mg in pregnancy. 0 is a real limit meaning none at all. Null to clear.
  • daily_water_ml optional
  • target_weight optional
Try saying

Set my goals to 2,200 calories, 160 g protein, and a 75 kg target weight

get_nutrition_goals View

See your current daily calorie and macro targets, any fiber target and sugar or caffeine limit, and — if you track alcohol — your alcohol limit.

Try saying

What are my daily targets?

get_goal_progress View Interactive UI

See how today's intake stacks up against your goals — intake-vs-goal rings plus body-weight progress. Tap a macro ring to see which meals contributed.

Try saying

How am I doing against my goals today?

get_nutrition_summary View Interactive UI

Get daily nutrition totals across a date range as an interactive dashboard: macro tiles vs. goals and a per-day breakdown.

Parameters
  • start_date required — Start date (YYYY-MM-DD)
  • end_date required — End date (YYYY-MM-DD)
Try saying

Give me a summary of this past week

Settings & account

Preferences that keep everything accurate, plus full control of your data.

set_timezone Setting

Set your IANA timezone so days roll over at your local midnight — a meal logged at 11pm counts on that day, not the next UTC one.

Try saying

I'm in Berlin — set my timezone

get_timezone View

Check the timezone you're configured for, along with your current local date and time (defaults to UTC if unset).

Try saying

What timezone am I set to?

get_current_time View

Check the date and time right now in your timezone, plus the UTC instant. Some apps don't tell the assistant what time it is, so this is how it works out what "this morning" or "today" means without asking you (defaults to UTC if no timezone is set).

Try saying

What time is it for me right now?

set_widget_display Setting

Turn the in-chat visual widgets on or off — the dashboards, goal rings, and trend charts. When off, the same tools reply with text and data only. Enabled by default; the change applies to new conversations.

Parameters
  • enabled required — true to show widgets, false for text-only responses
Try saying

Turn off the widgets

get_widget_display View

Check whether the in-chat visual widgets are currently enabled.

Try saying

Are the widgets turned on?

set_alcohol_tracking Setting

Turn alcohol tracking on or off, and choose whether drinks are counted in US standard drinks or UK units. It's off by default, so you have to ask for it. Turning it off again hides alcohol from meals, goals and progress and stops the file importer reading a file's alcohol column — nothing already logged is deleted, your CSV export still includes it, and it reappears if you switch it back on. The change applies from your next message, with nothing to restart.

Parameters
  • enabled required — true to show alcohol in meals, goals and progress, false to hide it
  • drink_unit optional — Which standard drink to show alongside the grams: us (14 g per drink) or uk (7.9 g per unit). Defaults to us; grams of pure ethanol are what's actually stored.
Try saying

Start tracking my drinking, in UK units

get_alcohol_tracking View

Check whether alcohol tracking is on, and which standard drink your grams are shown alongside.

Try saying

Am I tracking alcohol?

delete_account Remove

Permanently delete your account and all associated data. This is irreversible — the AI always confirms with you first.

Try saying

Delete my account and all my data