Plate Pal
Server Details
Calories and nutrition for any food, chain meal or barcode, and meal ideas for a goal and diet.
- Status
- Healthy
- Uptime
- 100.0% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- GoodTurnStudio/goodturn-mcp
- GitHub Stars
- 0
- Server Listing
- goodturn-mcp
TDQS
Scored across 3 tools
get_barcode_nutrition and get_food_nutrition both return nutrition and could be confused, but the barcode-vs-name/amount input distinction is clearly documented. get_meal_ideas is cleanly separate, targeting meal suggestions rather than lookup.
All three tools follow the same get_<noun> snake_case pattern (get_barcode_nutrition, get_food_nutrition, get_meal_ideas). Fully predictable and consistent.
Three tools is lean but each covers a distinct job (barcode lookup, named-food lookup, meal ideas) for a narrow nutrition domain. Slightly thin but not a mismatch for the stated scope.
Covers the core nutrition retrieval paths—packaged products, generic/chain foods/meals, and meal suggestions—with rich output. Minor gaps like no food search or comparison, but no dead ends for typical lookups.
Available Tools
3 toolsget_barcode_nutritionNutrition for a packaged product by barcode, with UK traffic lightsARead-onlyIdempotentInspect
Nutrition for a packaged product by barcode, with UK traffic lights. For requests like "is this barcode high in sugar?", "how many calories in this?" after a scan, or "what's the salt in 5000157024886?". Returns per 100 g (or 100 ml) and per serving values, traffic lights for fat, saturates, sugars and salt, Nutri-Score, allergens and a Halal or Not? link for checking the ingredients.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Barcode digits (8 to 14). | |
| servings | No | Number of servings to total up (0.25 to 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing the return payload: per 100 g/ml and per serving values, traffic lights for fat/saturates/sugars/salt, Nutri-Score, allergens and a Halal link. It does not say what happens with an unknown barcode, but for a read-only lookup that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then usage examples, then return contents in three tight sentences with no filler. The opening sentence duplicates the title verbatim, a minor redundancy, but everything else earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden of explaining return values and does so thoroughly (units, traffic lights, Nutri-Score, allergens, Halal link). The parameter surface is small and fully covered by the schema, so the definition is nearly complete; only failure/edge-case behaviour is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both the barcode format (8-14 digits) and the servings range already documented in the schema, so the baseline is 3. The description's mention of 'per serving values' loosely ties to the servings parameter but repeats what the schema description ('number of servings to total up') already conveys, adding little new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: nutrition for a packaged product retrieved by barcode, with UK traffic lights. This scope implicitly separates it from the broader get_food_nutrition and get_meal_ideas siblings, but the description never names them, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three concrete example requests ('is this barcode high in sugar?', 'how many calories in this?' after a scan, 'what's the salt in 5000157024886?') give clear situational context for when to reach for this tool. There are no stated exclusions or explicit pointers to the sibling tools, so it stops short of a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_food_nutritionCalories and macros for a food, dish or product, for the amount the user saysARead-onlyIdempotentInspect
Calories and macros for a food, dish or product, for the amount the user says. For requests like "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". Takes the whole amount and food in q, or 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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | The food or meal, optionally with amounts, for example 200g chicken breast, a large banana, or 2 eggs and a slice of toast. | |
| grams | No | Amount in grams (1 to 5000). Overrides any amount in q. | |
| country | No | Two-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. | |
| servings | No | Number of servings or items (0.25 to 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only/idempotent/open-world profile, and the description adds substantial behavior beyond that: data provenance (USDA, Open Food Facts, chain-published figures), region selection (UK vs US by country), explicit fallback to a typical USDA version for unknown chain items, and the null-return contract when a chain publishes no weight. This is exactly the kind of context structured fields cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, which is good, but the remainder is a single dense block that enumerates many chain examples and edge cases at length. Much of the enumeration repeats the same pattern and could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return-value burden itself and does so: per-amount nutrition, per_100 values, portions, UK traffic lights, caffeine_mg for drinks, a chain object with named fields, and items+total for meals. An agent has everything needed to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds real meaning: q may hold a whole meal with quantities, grams/servings may be supplied separately, and country drives which chain figures (GB/IE -> UK) are used. It goes modestly beyond the schema text without fully restating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (calories/macros for a named food, dish or product) and scopes it to the amount the user gives, with concrete example inputs. It clearly implies a name-based lookup distinct from a barcode lookup, but it never names the siblings get_barcode_nutrition or get_meal_ideas to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Rich worked examples establish when the tool applies (single foods, sized portions, chain items, whole meals) and it describes how q vs grams vs servings are combined and overridden. It lacks explicit when-not guidance and any routing to the two sibling tools, so the alternative-selection condition is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meal_ideasSimple meal ideas by goal, diet and meal, with rough macrosARead-onlyIdempotentInspect
Simple meal ideas by goal, diet and meal, with rough macros. For requests like "give me a high protein halal dinner idea", "a quick vegan lunch", "cheap vegetarian breakfast ideas". Goals: high protein, low carb, budget, quick, high fibre. Diets: vegetarian, vegan, pescatarian, halal. Meals: breakfast, lunch, dinner, snack. The user's words can go in q instead. Ideas rotate daily. It does not set calorie or weight targets; a weight-loss request gets lighter, filling ideas (goal lighter, 450 calories or less) and a pointer to a doctor or dietitian, with no shop links.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | How many ideas, 1 to 8. Default 3. | |
| q | No | Free text, for example high protein halal dinner. | |
| diet | No | Diet: vegetarian, vegan, pescatarian or halal. | |
| goal | No | Goal: high protein, low carb, budget, quick or high fibre. | |
| meal | No | Meal: breakfast, lunch, dinner or snack. | |
| country | No | Two-letter country code for the shop links (US, GB and IE get local Amazon links). Default from the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, non-destructive, openWorld, idempotent), but the description adds real behavioral context: ideas rotate daily, weight-loss requests yield lighter filling ideas at 450 calories or less and omit shop links. It's strong disclosure, though it never describes the shape of the response beyond 'rough macros' and shop links.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then examples, then boundaries, all in a compact block. It loses a little economy by re-listing the goal/diet/meal values that the schema already enumerates, but every sentence otherwise carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explaining what comes back (rough macros, shop links) and how special cases behave (rotation, weight-loss mode, no shop links). Combined with full schema coverage and safety annotations, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented with their defaults and allowed values. The description mostly restates the goal/diet/meal enumerations the schema already contains and only lightly clarifies intended use of q and country. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (simple meal ideas) plus the axes that shape the result (goal, diet, meal, rough macros). This is clearly distinct from the sibling nutrition-lookup tools (get_food_nutrition, get_barcode_nutrition), which fetch data rather than generate suggestions. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete triggering phrasings ('high protein halal dinner idea', 'a quick vegan lunch'), enumerates the valid goal/diet/meal values, and explains the q escape hatch for free-form input. It also states the exclusion: no calorie/weight targets, plus the specific weight-loss fallback behavior and a doctor/dietitian pointer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_meal_ideas3 fields changed- changed
Input schema / properties / diet / descriptionPrevious value: -"vegetarian, vegan, pescatarian or halal."New value: +"Diet: vegetarian, vegan, pescatarian or halal." - changed
Input schema / properties / goal / descriptionPrevious value: -"high protein, low carb, budget, quick or high fibre."New value: +"Goal: high protein, low carb, budget, quick or high fibre." - changed
Input schema / properties / meal / descriptionPrevious value: -"breakfast, lunch, dinner or snack."New value: +"Meal: breakfast, lunch, dinner or snack."
3 tool updates
- First observed
get_barcode_nutrition - First observed
get_food_nutrition - First observed
get_meal_ideas
Related MCP Connectors
Food logging, nutrition summaries, and meal photo calorie and macro estimates.
Log meals, check calories and macros, set up a nutrition plan, and search foods.
Food and nutrition data: search, macros, and comparisons
AI-powered calorie tracking with photo recognition, barcode scanning, and voice logging
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides access to a comprehensive food database with 300,000+ items, enabling nutritional data lookups, food searches, and barcode scanning with all processing happening locally for privacy and speed.207MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to track daily calorie consumption by logging meals through natural language and searching a comprehensive food database. It provides daily summaries, weekly reports, and persistent SQLite storage to monitor dietary trends and goals.13 npmMIT
- AlicenseNot gradedqualityFmaintenanceEnables tracking food intake and nutrition using the USDA FoodData Central database. Supports logging meals, setting daily nutrition goals, viewing food diaries, and analyzing nutrition trends over time with local SQLite storage.11 npm1MIT
- FlicenseNot gradedqualityCmaintenanceEnables users to log meals, track daily and weekly calorie intake, and manage diet records. Supports both local and network modes for flexible meal logging across devices.-
Glama MCP Gateway
Add one secure layer between your agents and this server.