Plate Pal
by GoodTurnStudio · remote · no sign-in to list tools · v1.3.0 · published by GitHub user GoodTurnStudio
Calories and nutrition for any food, chain meal or barcode, and meal ideas for a goal and diet.
3 tools: 1 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http platepal https://goodturn-mcp.pages.dev/platepal/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_barcode_nutrition" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_barcode_nutrition" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
3 tools
Changes things 1Claude Code: ask
get_barcode_nutritionNutrition for a packaged product by barcode, with UK traffic lights.1 finding
Why it is in this group
- The name "get_barcode_nutrition" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_barcode_nutrition" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_barcode_nutrition" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Nutrition for a packaged product by barcode, with UK traffic lights
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 2Claude Code: allow
get_food_nutritionCalories and macros for a food, dish or product, for the amount the user says.No findings
Why it is in this group
- The name "get_food_nutrition" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Calories and macros for a food, dish or product, for the amount the user says
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_meal_ideasSimple meal ideas by goal, diet and meal, with rough macros.No findings
Why it is in this group
- The name "get_meal_ideas" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Simple meal ideas by goal, diet and meal, with rough macros
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
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.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http platepal https://goodturn-mcp.pages.dev/platepal/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__platepal__get_food_nutrition",
"mcp__platepal__get_meal_ideas"
],
"ask": [
"mcp__platepal__get_barcode_nutrition"
],
"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 platepal. Review it before you use it.
