Skip to main content
Glama

Plate Pal

Calories and macros for a food, dish or product, for the amount the user says

get_food_nutrition
Read-onlyIdempotent

Calories and macros for a food, dish or product, for the amount the user says. Use for "how many calories in a Big Mac?", "protein in 200g chicken breast", "calories in chicken biryani", "a slice of pepperoni pizza", "a large latte" or a whole meal like "2 eggs, 2 slices of toast and a coffee". Put the whole amount and food in q, or pass grams or servings separately. Generic foods and dishes (thousands, including fast food and restaurant dishes) use USDA values with real portion weights (slice, cup, small, medium, large, one item); brands come from Open Food Facts. Chain items ("McDonald's large fries", "a Greggs sausage roll", "KFC Zinger burger", "grande latte from Starbucks", "6 inch Italian BMT from Subway", "20 piece McNuggets") use the chain's own published figures for that size, UK or US by country, and return a chain object (name, region, item, size, weight_published); when the chain doesn't publish a weight, amount.grams is null and per_100 values are null. For a chain item not in the table, a typical USDA version is used and the say line says so. A whole meal returns items (each food with its amount and nutrition) and total. Returns nutrition for the amount, per_100 values, portions, UK traffic lights (per 100 g, or per 100 ml for drinks) and caffeine_mg for drinks that have it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesThe food or meal, optionally with amounts, for example 200g chicken breast, a large banana, or 2 eggs and a slice of toast.
gramsNoAmount in grams (1 to 5000). Overrides any amount in q.
countryNoTwo-letter country code. Picks UK or US chain figures (GB and IE get UK ones) and prefers local versions of branded products. Default from the request.
servingsNoNumber of servings or items (0.25 to 20).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover safety (readOnly, idempotent, non-destructive, closed-world); the description adds substantial behavior beyond them: chain items resolve to published chain figures by country, unmatched chain items silently fall back to USDA with the 'say' line disclosing it, unpublished chain weights yield amount.grams=null and null per_100 values, and meals return items plus total. This is exactly the kind of edge-case disclosure that prevents wrong expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and routing guidance are front-loaded in the first two sentences, and nearly every clause carries distinct information (data sources, chain behavior, fallback, return shape). The example enumerations are dense and slightly overstuffed, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and does: it enumerates the returned fields (nutrition for the amount, per_100 values, portions, UK traffic lights per 100 g or 100 ml for drinks, caffeine_mg), the chain object shape, and the meal items/total structure. An agent can set expectations completely without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the interplay of q, grams and servings ('put the whole amount and food in q, or pass grams or servings separately') and how country selects UK vs US chain figures (GB and IE get UK). That is real disambiguation beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource ('calories and macros for a food, dish or product') scoped to the amount the user says, and the examples make the domain unmistakable. It never names the siblings get_barcode_nutrition or get_meal_ideas to draw the boundary explicitly, so an agent must infer that barcode lookups and meal planning live elsewhere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Rich usage context: it shows the phrasing patterns the tool expects ('how many calories in a Big Mac?', 'protein in 200g chicken breast', meals like '2 eggs, 2 slices of toast and a coffee') and tells the agent to either put everything in q or split grams/servings. There is no explicit when-not-to-use or named alternative, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.