Reference · 36 tools across 7 areas

Everything your AI can do

You never call these directly — you just talk to Claude, ChatGPT or another MCP client, and it picks the right tool. Here's every tool the Nutrition MCP server exposes for meals, calories and macros, water and weight, with what each one does and a phrase that triggers it.

Logging food & meals

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

LogInteractive UI

log_meal

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
  • descriptionrequiredWhat was eaten
  • meal_typerequiredbreakfast, lunch, dinner or snack
  • caloriesoptionalTotal calories
  • protein_goptionalProtein in grams
  • carbs_goptionalCarbohydrates in grams
  • fat_goptionalFat in grams
  • fiber_goptionalDietary 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_goptionalTotal 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_goptionalGrams 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_mgoptionalCaffeine 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_atoptionalWhen you ate it, if not now — lets you log something after the fact
  • notesoptionalAdditional 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.

Look up

lookup_barcode

Fetch a packaged product's label nutrition from Open Food Facts by its barcode (8–14 digit EAN/UPC), plus its Nutri-Score and NOVA processing group when Open Food Facts has them. 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.

ImportInteractive UI

start_meal_import

Open an importer in the chat to bring your history over from another app — pick the CSV you exported from MyFitnessPal, Cronometer, Lose It!, MacroFactor or another tracker, 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”

Import

bulk_import_meals

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, as long as your timezone hasn't changed in between.

Parameters
  • mealsrequiredThe 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_countrequiredHow many rows this call carries, counted from the source file, so a dropped row gets caught
  • expected_total_kcaloptionalCalorie total from the source file, reconciled against what arrives
  • dry_runoptionalReport what would happen without writing anything
  • on_erroroptionalImport the valid rows and report the rest, or write nothing if any row fails
  • source_appoptionalWhich app the file came from

Try saying “Here's last week's meals pasted from my old app — add them all”

EditInteractive UI

update_meal

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 once you agree.

Parameters
  • idrequiredUUID of the meal to update
  • descriptionoptional
  • caloriesoptional
  • protein_goptional
  • carbs_goptional
  • fat_goptional
  • fiber_goptional
  • sugar_goptionalTotal sugars, not added sugar
  • alcohol_goptionalGrams of pure ethanol, not the volume of the drink
  • caffeine_mgoptionalMilligrams, not grams
  • logged_atoptional
  • notesoptional

Try saying “Actually that lunch was 600 calories, not 500 — fix it”

Remove

delete_meal

Remove a meal entry you logged by mistake.

Parameters
  • idrequiredUUID 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.

View

search_meals

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
  • queriesrequiredFood keyword alternatives, in any language you've logged in
  • daysoptionalHow far back to look (default a year)
  • limitoptionalMax entries to analyze

Try saying “Log my usual breakfast”

View

get_meals_today

See every meal you've logged today.

Parameters
  • detailoptionalcompact (default) for one line per meal with its id, or full to include notes and exact times

Try saying “What have I eaten today?”

View

get_meals_by_date

See all the meals you logged on a specific day.

Parameters
  • daterequiredDate in YYYY-MM-DD format
  • detailoptionalcompact (default) for one line per meal with its id, or full to include notes and exact times

Try saying “Show me everything I ate on July 4th”

View

get_meals_by_date_range

Pull all meals between two dates in one go — handy for reviewing a week or a month. One call covers up to 31 days; for longer stretches, trends and summaries give you daily totals.

Parameters
  • start_daterequiredStart date (YYYY-MM-DD)
  • end_daterequiredEnd date (YYYY-MM-DD), up to 31 days including the start
  • detailoptionalcompact (default) for one line per meal with its id, or full to include notes and exact times

Try saying “List my meals from Monday to Friday”

Export

export_all_data

Export everything the service stores about you as a single ZIP — meals.csv, water.csv, weight.csv, goals.csv, profile.csv, account.csv (your sign-in account), telemetry.csv (tool-usage records), connections.csv (your connected AI apps, without any tokens), and a README.txt explaining the columns, the units and what is not included — and hands back a private download link, valid for 60 minutes. Meals are the only part that can be imported back in for now.

Try saying “Export all of my data — meals, water, weight, and goals”

Water tracking

Track hydration alongside your food.

Log

log_water

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

Parameters
  • amount_mlrequiredAmount in milliliters (integer, > 0).

Try saying “I just drank a 500 ml bottle of water”

View

get_water_today

See today's total water intake and each entry.

Try saying “How much water have I had today?”

View

get_water_by_date

See your water total and entries for a specific day.

Parameters
  • daterequiredDate in YYYY-MM-DD format

Try saying “How much did I drink yesterday?”

Remove

delete_water

Remove a water entry you added by mistake.

Parameters
  • idrequiredUUID of the water entry to delete

Try saying “Remove that last water entry”

Weight tracking

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

Log

log_weight

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
  • weightrequiredBody weight value, in unit (> 0).

Try saying “Log my weight — 74.2 kg this morning”

Edit

update_weight

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

Parameters
  • idrequiredUUID of the weight entry to update
  • weightoptionalNew weight value, in unit.
  • logged_atoptionalISO 8601 timestamp
  • notesoptional

Try saying “Fix this morning's weigh-in to 73.8 kg”

Remove

delete_weight

Remove a weight entry.

Parameters
  • idrequiredUUID of the weight entry to delete

Try saying “Delete today's weight entry”

View

get_weight_today

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

Try saying “What did I weigh today?”

View

get_weight_by_date

See your weigh-ins for a specific day.

Parameters
  • daterequiredDate in YYYY-MM-DD format

Try saying “What was my weight on the 1st?”

View

get_weight_by_date_range

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

Parameters
  • start_daterequiredStart date (YYYY-MM-DD)
  • end_daterequiredEnd date (YYYY-MM-DD)

Try saying “Show my weigh-ins for the last two weeks”

Setting

set_weight_unit

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”

Goals & progress

Set targets and see how each day measures up.

Setting

set_nutrition_goals

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_caloriesoptionalDaily calorie target (kcal). Null to clear.
  • daily_protein_goptionalDaily protein target (grams). Null to clear.
  • daily_carbs_goptionalDaily carbs target (grams). Null to clear.
  • daily_fat_goptionalDaily fat target (grams). Null to clear.
  • daily_fiber_goptionalDaily fiber target (grams), a minimum to reach. Null to clear.
  • daily_sugar_goptionalDaily 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_goptionalDaily 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_mgoptionalDaily caffeine limit in milligrams, a maximum to stay under. EFSA and the FDA put the ceiling for healthy adults at 400 mg a day (roughly four brewed coffees); EFSA's figure for pregnancy is 200 mg. 0 is a real limit meaning none at all. Null to clear.
  • daily_water_mloptional
  • target_weightoptional

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

View

get_nutrition_goals

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?”

ViewInteractive UI

get_goal_progress

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?”

ViewInteractive UI

get_nutrition_summary

Get daily nutrition totals across a date range as an interactive dashboard: macro tiles vs. goals and a per-day breakdown. One call covers up to 92 days; for longer stretches, trends give you rolling averages.

Parameters
  • start_daterequiredStart date (YYYY-MM-DD)
  • end_daterequiredEnd date (YYYY-MM-DD), up to 92 days including the start

Try saying “Give me a summary of this past week”

Settings & account

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

View

get_profile

See your current settings in one go: timezone (plus local date and time), widget language, preferred weight unit, whether in-chat widgets are shown, and whether alcohol tracking is on.

Try saying “What are my current settings?”

Setting

set_timezone

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”

Setting

set_language

Set the UI language for in-chat widgets — the dashboards and charts, not what the AI writes back to you.

Parameters
  • localerequiredISO 639-1 code, e.g. de, ja. Supported: English, German, Spanish, French, Dutch, Polish, Italian, Ukrainian, Japanese.

Try saying “Show my widgets in German”

View

get_current_time

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?”

Setting

set_widget_display

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
  • enabledrequiredtrue to show widgets, false for text-only responses

Try saying “Turn off the widgets”

Setting

set_alcohol_tracking

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
  • enabledrequiredtrue to show alcohol in meals, goals and progress, false to hide it
  • drink_unitoptionalWhich 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”

Remove

delete_account

Permanently delete your Nutrition MCP account and all the data it stores about you. This is irreversible, so the tool does nothing without an explicit confirmation, and the AI is asked to check with you before sending it.

Try saying “Delete my account and all my data”

Troubleshooting

Something not working? Most problems have a quick fix.

Still stuck? your@email.com

01The connector won't connect, or keeps asking me to sign in

Remove the connector and add it again with exactly https://your-domain.com/mcp — the /mcp part is required. In Claude, open Customize → Connectors, disconnect Nutrition and connect it again; in ChatGPT, use Settings → Apps. Sign in with the same email and password, or the same Google account, you used before: your data belongs to your account, not to the connection, so reconnecting loses nothing. Once connected, it stays connected as long as you use it at least every 90 days; if it stops working, reconnecting the same way fixes it.

02The sign-in page shows {"error":"session_expired"}

The sign-in page is only valid for 10 minutes, and it also resets whenever the server restarts for an update. Go back to the sign-in page and reload it, or start connecting again from your AI app, then sign in without a long pause. If it shows session_mismatch instead, the sign-in was finished in a different browser from the one that opened it: start again from your AI app and finish in that same browser.

03I can't sign in, or I forgot my password

Use Sign in for an account you already have: a wrong email or password there shows "Wrong email or password" and never creates a new account. Create account is only for your first visit. Check the email for typos. If you created your account with Continue with Google, use that button again. There is no self-service password reset yet: email your@email.com from the address on your account and I will reset it.

04I reconnected and my history is gone

Each email address is a separate account, so signing in with a different email starts an empty one — nothing was deleted. Disconnect and sign in again with the address you used originally. If you are not sure which one that was, email your@email.com.

05The AI answers but doesn't log anything

Make sure the connector is switched on for this conversation — in Claude, check the tools menu in the message box — and ask directly, for example "log my breakfast in Nutrition". If your app asks for permission to use a tool, approve it.

06My meals show up on the wrong day

Days are counted in your timezone, and if you have never set one, UTC is used. Ask "what timezone do I have set?" (get_profile) and, if it is wrong, "set my timezone to Europe/Berlin" (set_timezone). Everything you have logged is then grouped by your local day, past entries included. The one exception is an entry you gave a specific time of day while the timezone was wrong: it keeps the moment it was saved as, so it can still sit an hour or a day off — ask the AI to move it to the right date and time (update_meal). Set your timezone before importing history, too: imported meals keep the moment they were placed at, and importing another app's file again after changing the timezone adds them a second time. A Nutrition MCP export is recognized and not duplicated.

07I only see text, no charts or cards

The visual cards need an app that supports interactive MCP Apps panels, such as Claude or ChatGPT; other clients get the same information as text. If you turned widgets off, ask to turn them back on (set_widget_display) and start a new conversation — an open chat keeps its old setting until it reconnects. The small card after logging a meal only appears once you have set daily goals (set_nutrition_goals).

08The importer won't open, or says it can't save

The importer panel needs an app that shows interactive panels and has widgets turned on. If it says This host does not let this view write to your log, or it does not appear at all, ask the AI to import the file itself: attach or paste the CSV and it will use bulk_import_meals, which checks every row and skips duplicates, so re-sending is safe as long as your timezone has not changed in between. Set your timezone before the first import: re-importing another app's file after a change adds the rows again. If you use the importer panel and want an alcohol column kept, turn alcohol tracking on first — the panel skips that column while tracking is off, and re-importing later will not fill it in.

09I see "Rate limit exceeded" or "Too many failed authentication attempts"

Each account can make 60 requests a minute, and each tool call counts as at least one. Wait for the number of seconds the message gives, then carry on. For backfilling many meals, use the importer rather than logging them one by one. Sign-in pages allow 30 requests a minute per network. After 20 rejected connection attempts in a row from one network — usually an old, disconnected connector still retrying — connections from that network are paused for 5 minutes, and repeat pauses grow to at most an hour. Removing the old connector and adding it again stops the retries.

10A barcode isn't found, or its numbers look wrong

Barcode data comes from Open Food Facts, a community database, so some products are missing and some entries are out of date. Make sure all 8–14 digits under the barcode were read correctly. If the product is not there, the AI can estimate from the name or from a photo of the nutrition label, and you can correct any figure afterwards. Adding the product on openfoodfacts.org helps everyone. Open Food Facts has no caffeine data, so caffeine comes from the label or typical amounts.

12How do I delete my account?

Ask the AI to delete your Nutrition MCP account (delete_account). It will ask you to confirm, then permanently delete your meals, water, weight, goals, settings, the record of which tools your AI app used, any export file, your sign-in and the account itself. This cannot be undone, so export your data first if you want a copy. Then remove the connector from your app. Signing in again with the same email later creates a new, empty account.

13How do I report a bug or a security issue?

Report bugs on GitHub Issues: say which app you use (Claude, ChatGPT, …), what you asked, what happened and roughly when. Never include your password. Please do not report security problems publicly: report them privately through GitHub private vulnerability reporting or by email, as the security policy describes. For anything else, email your@email.com.