Plate Pal
Server Details
Calories and nutrition for any food, chain meal or barcode, and meal ideas for a goal and diet.
- Status
- Healthy
- 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
Each tool has a clearly distinct purpose: barcode-based lookup, generic food nutrition calculation, and meal idea generation. There is no overlap in functionality, and the descriptions make the boundaries obvious.
All names use snake_case and start with 'get_', which is consistent. However, the noun parts are not parallel: 'barcode_nutrition' and 'food_nutrition' are similar but 'meal_ideas' is a different category, and the verb 'get' is vague for all. Still, the pattern is readable and predictable.
Three tools is quite thin for a nutrition assistant. While each tool is useful, the set feels under-scoped: no tools for searching foods, saving meals, tracking daily intake, or comparing items, which are common needs in this domain.
Significant gaps exist. There is no way to look up nutrition by text search (only barcode or manual amount), no meal logging or history, no daily totals, and no support for custom recipes or user preferences beyond the limited meal ideas. The surface covers only a few isolated queries.
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. Use for "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 it read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral detail: output granularity (per 100 g / 100 ml and per serving), the specific traffic-light nutrients, Nutri-Score, allergens and a Halal link. It omits failure behavior for unknown barcodes.
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?
Two front-loaded sentences: purpose first, usage examples second, with the return contents appended. Efficient, though the trailing enumeration of return fields is somewhat dense and could be trimmed.
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 correctly carries the return-value burden and enumerates the payload (per-100 g/serving values, traffic lights, Nutri-Score, allergens, Halal link). What's missing is edge-case behavior such as unknown barcodes or products without UK traffic-light data.
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% and both parameters (code, servings with its 0.25–20 range) are fully documented in the schema. The description adds no syntax or format meaning beyond that, so baseline 3 applies.
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 (nutrition lookup for a packaged product by barcode) and the scope of the lookup is unambiguous. The barcode-keyed framing implicitly distinguishes it from the sibling get_food_nutrition, so an agent can route to it without opening schemas.
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 invocation triggers ('is this barcode high in sugar?', 'how many calories in this?', 'what's the salt in 5000157024886?'), which is strong context. It stops short of naming when NOT to use it or pointing at get_food_nutrition as the alternative for non-barcode queries.
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. 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.
| 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 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.
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.
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.
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.
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.
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.
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. Use for "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. You can pass the user's words 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 | vegetarian, vegan, pescatarian or halal. | |
| goal | No | high protein, low carb, budget, quick or high fibre. | |
| meal | No | 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 already cover read-only, idempotent, non-destructive, closed-world. The description adds genuine behavioral context beyond them: results rotate daily (freshness), it refuses to set targets and redirects weight-loss users to a doctor/dietitian, and that path ships no shop links. It stops short of describing result shape or count behavior, so 4 rather than 5.
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 examples, then allowed values, then the two behavioral caveats. Nearly every sentence carries information, though the dual lists of goals/diets/meals partially duplicate the schema's own descriptions.
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?
For a 6-param, all-optional, no-output-schema tool, the description covers selection axes, free-text alternative, rotation, and the sensitive weight-loss path. Return format is only sketched ('rough macros'), but that is a minor gap given the tool's simplicity.
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 already 100%, so baseline is 3. The description still adds value: it enumerates the accepted goal/diet/meal vocabularies in prose, explains that q accepts the user's own words, and explains the country parameter's practical effect (US/GB/IE get local Amazon links).
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 resource (meal ideas) with the three axes it varies along (goal, diet, meal) and the output characteristic (rough macros). Siblings get_barcode_nutrition and get_food_nutrition are lookups of specific-item nutrition, so this generative idea tool is clearly distinguishable.
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 three concrete example requests that map directly onto parameters, and states an explicit exclusion: it does not set calorie or weight targets. It also defines the fallback for weight-loss requests (lighter/filling ideas, goal lighter, 450 cal or less, pointer to a clinician), so the agent knows the expected behavior in the edge case.
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.
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.208MIT
- 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.6 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.8 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables 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.