Skip to content

MyPlate.food nutrition tools

by myplate.food · remote · no sign-in to list tools · v1.0.0 · published by food.myplate

USDA nutrition calculators + the preserved MyPlate Kitchen recipes; source-cited, machine-verified.

Changes · 13

16 tools: 13 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http nutrition https://mcp.myplate.food/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "calculate_body_metric" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Changes things 13Claude Code: ask
  • calculate_bmiCompute Body Mass Index and its weight classification from height and weight alone.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Compute Body Mass Index and its weight classification from height and weight alone. Adults use the WHO cutoffs (underweight / normal / overweight / obese); for ages 2–19 pass age + sex and it uses the CDC BMI-for-age percentiles instead. Returns a canonical myplate.food URL and source citation.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_bmrCompute basal/resting metabolic rate — the calories your body burns at rest.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Compute basal/resting metabolic rate — the calories your body burns at rest. Returns the headline Mifflin-St Jeor (1990) value plus the revised Harris-Benedict (Roza & Shizgal 1984) estimate for comparison. Needs age, sex, height and weight. Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_body_fatEstimate body-fat % using the U.S.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate body-fat % using the U.S. Navy circumference method, with a Deurenberg BMI-based cross-check and ACE category. Needs sex, age, height, weight and tape measurements of neck and waist (plus hip for women).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_body_metricRun one of myplate.food's quick body-composition & fitness calculators and get its value plus the healthy band.1 finding

    Why it is in this group

    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "calculate_body_metric" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Run one of myplate.food's quick body-composition & fitness calculators and get its value plus the healthy band. Pick `metric` and pass that metric's fields: • waist-to-height — waist, height • waist-to-hip — waist, hip, sex • lean-body-mass — weight, height, sex • ffmi — weight, height, body_fat, sex • water-intake — weight (+ optional activity: sedentary|moderate|active) • weight-loss-percentage — start_weight, current_weight • one-rep-max — weight, reps Lengths and weights follow `unit` (metric = cm/kg, imperial = in/lb; default metric).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_calorie_deficitUse this when someone wants a weight-loss calorie target.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when someone wants a weight-loss calorie target. Returns maintenance calories (TDEE) and up to three deficit tiers — mild (−250), standard (−500) and aggressive (−750 kcal/day) — each with the realistic weekly rate it buys, and a flag when a target dips below BMR. Needs age, sex, height, weight and activity; pass pregnancy or lactation when either applies. weight_loss_targets lists only the paces myplate.food itself offers: a pace whose target is under 1,200 kcal a day for women or 1,500 for men (the low end of the calorie prescriptions in the 2013 AHA/ACC/TOS obesity guideline) is left out and named, without a figure, in weight_loss_not_offered. weight_loss_default is the pace the calculator page opens on and weight_loss_floor_kcal is the floor that was applied. In pregnancy and while breastfeeding no targets are returned, and weight_loss_withheld gives the reason (pregnancy or lactation). Do not work out a lower target yourself when one is left out or withheld. Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_calorie_needsUse this when you want the whole energy picture in one call.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when you want the whole energy picture in one call. Returns resting metabolic rate (Mifflin-St Jeor) and revised Harris-Benedict, total daily energy expenditure (TDEE) at every activity level, up to three weight-loss deficit tiers, macronutrient splits, protein targets and healthy-weight ranges. This is a superset of calculate_tdee, calculate_calorie_deficit, calculate_macros, calculate_protein_target, calculate_bmr and calculate_ideal_weight — reach for those only when you need a single number. Same profile inputs as the MyPlate plan. weight_loss_targets lists only the paces myplate.food itself offers: a pace whose target is under 1,200 kcal a day for women or 1,500 for men (the low end of the calorie prescriptions in the 2013 AHA/ACC/TOS obesity guideline) is left out and named, without a figure, in weight_loss_not_offered. weight_loss_default is the pace the calculator page opens on and weight_loss_floor_kcal is the floor that was applied. In pregnancy and while breastfeeding no targets are returned, and weight_loss_withheld gives the reason (pregnancy or lactation). Above the healthy-BMI band, ideal_weight also carries firstGoal (the weights 5 to 10% under the current weight, the first goal in the 2013 AHA/ACC/TOS obesity guideline) and adjusted (the Hamwi ideal weight plus 25% of the weight above it). Both are null at or under the band, and in pregnancy and while breastfeeding. Do not work out a lower target yourself when one is left out or withheld. Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_dach_energyDaily energy requirement for the German/Austrian/Swiss (D-A-CH) DGE framework: resting energy via the Müller et al.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Daily energy requirement for the German/Austrian/Swiss (D-A-CH) DGE framework: resting energy via the Müller et al. (2004) equation the DGE uses, scaled by a PAL activity factor. Returns resting energy, the requirement at the chosen PAL, and a table at PAL 1.4 / 1.6 / 1.8. Needs sex, age and weight. Adults only — the DGE derives this equation for adults and publishes table reference values for children and adolescents instead.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_glp1_proteinProtein target to preserve muscle during weight loss on a GLP-1 medication (Ozempic, Wegovy, Zepbound, Mounjaro): the 1.2 to 1.6 g/kg preservation range vs the IOM protein RDA for …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Protein target to preserve muscle during weight loss on a GLP-1 medication (Ozempic, Wegovy, Zepbound, Mounjaro): the 1.2 to 1.6 g/kg preservation range vs the IOM protein RDA for the age (0.8 g/kg for adults, 0.85 at 14 to 18, higher below 14), the per-meal amount over 4 meals, and the DRI fiber Adequate Intake for age and sex. When the range runs above 120 g/day it also returns the fixed 80 to 120 g/day option from the 2025 GLP-1 nutrition advisory, with its note that actual body weight can overestimate needs. Needs weight, age and sex.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_ideal_weightEstimate ideal body weight from height and sex via four classic clinical formulas (Devine 1974, Robinson 1983, Miller 1983, Hamwi 1964), plus the healthy-BMI (18.5–24.9) weight ban…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate ideal body weight from height and sex via four classic clinical formulas (Devine 1974, Robinson 1983, Miller 1983, Hamwi 1964), plus the healthy-BMI (18.5–24.9) weight band and current BMI for context. Needs age, sex, height, weight. Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms. Above the healthy-BMI band, ideal_weight also carries firstGoal (the weights 5 to 10% under the current weight, the first goal in the 2013 AHA/ACC/TOS obesity guideline) and adjusted (the Hamwi ideal weight plus 25% of the weight above it). Both are null at or under the band, and in pregnancy and while breastfeeding. weight_loss_withheld gives the reason when they are withheld.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_macrosSplit a daily calorie budget into protein, carbohydrate and fat grams across three presets.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Split a daily calorie budget into protein, carbohydrate and fat grams across three presets. Balanced (20/50/30) sits inside the IOM acceptable macronutrient distribution ranges (protein 10 to 35%, carbohydrate 45 to 65%, fat 20 to 35%); higher-protein (30/40/30) and lower-carb (30/35/35) put carbohydrate below its range. Each preset in the response carries withinAmdr. Pass `calories` directly, or a body profile (age, sex, height, weight, activity) to derive TDEE first. With a profile: Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_myplate_planEstimate daily calorie needs (IOM Estimated Energy Requirement) and return the USDA MyPlate food-group plan at that level — cups of fruit/vegetables/dairy, ounce-equivalents of gra…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Estimate daily calorie needs (IOM Estimated Energy Requirement) and return the USDA MyPlate food-group plan at that level — cups of fruit/vegetables/dairy, ounce-equivalents of grains/protein, plus weekly vegetable & protein subgroup targets and BMI. From age, sex, height, weight and activity (pregnancy/lactation optional).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_protein_targetDaily protein target in grams from body weight and activity level: the IOM RDA for the life stage (0.8 g/kg for adults; 0.85 at 14 to 18, 1.1 in the second half of pregnancy, 1.3 w…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Daily protein target in grams from body weight and activity level: the IOM RDA for the life stage (0.8 g/kg for adults; 0.85 at 14 to 18, 1.1 in the second half of pregnancy, 1.3 while breastfeeding) and an activity-scaled range up to the Academy of Nutrition and Dietetics / Dietitians of Canada / ACSM (2016) 1.2 to 2.0 g/kg athlete range. Needs age, sex, height, weight and activity; pass pregnancy or lactation when either applies. Under 18 the answer is the RDA alone: range is null, byActivity is empty and activity_range_withheld is "under_18", because the activity ranges are adult sports-nutrition guidance.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • calculate_tdeeUse this when you need maintenance calories — the total daily energy expenditure.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when you need maintenance calories — the total daily energy expenditure. Mifflin-St Jeor resting metabolic rate scaled by a physical-activity multiplier; returns the TDEE at the given activity level plus a table across all four levels (sedentary → very-active). Needs age, sex, height, weight and activity. For deficits, macros and protein alongside it, use calculate_calorie_needs instead. Adult equations: ages 18 to 120. A younger age returns 400; for a child or teenager use myplate-plan or dri, whose energy equations have child forms.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
Only reads 3Claude Code: allow
  • calculate_driReturn the full Dietary Reference Intakes table for a life stage — recommended intakes and tolerable upper limits for macronutrients, vitamins and minerals (IOM 2005/2006/2011, NAS…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Return the full Dietary Reference Intakes table for a life stage — recommended intakes and tolerable upper limits for macronutrients, vitamins and minerals (IOM 2005/2006/2011, NASEM 2019), plus the Estimated Energy Requirement and BMI. Needs age, sex, height, weight (pregnancy/lactation optional; edition iom2005 | nasem2023).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_recipeFetch one recipe by its slug: ingredients, directions, full USDA nutrition table, MyPlate food-group amounts, serving size, yield, rating, image and source attribution.No findings

    Why it is in this group

    • The name "get_recipe" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one recipe by its slug: ingredients, directions, full USDA nutrition table, MyPlate food-group amounts, serving size, yield, rating, image and source attribution. Get slugs from search_recipes.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • search_recipesSearch the ~1,072-recipe USDA MyPlate Kitchen collection (public domain).No findings

    Why it is in this group

    • The name "search_recipes" says "search": a word for reading.
    Description, as the server wrote it
    Search the ~1,072-recipe USDA MyPlate Kitchen collection (public domain). Filter by free-text query, food group, dish category, max calories and minimum rating. Returns recipe cards with slug, calories, food groups, image and links. Use get_recipe with a slug for the full recipe.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http nutrition https://mcp.myplate.food/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__nutrition__calculate_dri",
      "mcp__nutrition__search_recipes",
      "mcp__nutrition__get_recipe"
    ],
    "ask": [
      "mcp__nutrition__calculate_bmi",
      "mcp__nutrition__calculate_body_fat",
      "mcp__nutrition__calculate_body_metric",
      "mcp__nutrition__calculate_myplate_plan",
      "mcp__nutrition__calculate_calorie_needs",
      "mcp__nutrition__calculate_bmr",
      "mcp__nutrition__calculate_tdee",
      "mcp__nutrition__calculate_calorie_deficit",
      "mcp__nutrition__calculate_macros",
      "mcp__nutrition__calculate_protein_target",
      "mcp__nutrition__calculate_ideal_weight",
      "mcp__nutrition__calculate_glp1_protein",
      "mcp__nutrition__calculate_dach_energy"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nutrition. Review it before you use it.