RecipeScale
Scale recipes, convert kitchen units and merge shopping lists. Free.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"recipe-scale": {
"url": "https://recipe-scale.magicteams.ai/mcp"
}
}
}Remote endpoints
https://recipe-scale.magicteams.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢scale_recipe(ingredients, from_servings, to_servings)
Scale every ingredient in a recipe from one serving count to another (0.1x to 20x), with kitchen-friendly fraction hints; items without a quantity pass through unchanged. Use when cooking for more or fewer people. Do NOT use to change units (use convert_units) or to combine several recipes' ingredients (use merge_shopping_list).
Input Schema
{
"type": "object",
"properties": {
"ingredients": {
"type": "array",
"minItems": 1,
"description": "Recipe ingredients, e.g. [{\"item\":\"flour\",\"quantity\":2,\"unit\":\"cup\"},{\"item\":\"salt\",\"note\":\"to taste\"}]",
"items": {
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Ingredient name, e.g. 'flour'"
},
"quantity": {
"type": "number",
"minimum": 0,
"description": "Amount, non-negative; omit for items like 'salt to taste'"
},
"unit": {
"type": "string",
"description": "Unit such as cup, tbsp, g, or a free count label like 'clove' or 'egg'"
},
"note": {
"type": "string",
"description": "Text shown instead of an amount when quantity is omitted, e.g. 'to taste' (default 'as needed')"
}
},
"required": [
"item"
]
}
},
"from_servings": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Servings the recipe is written for, positive, e.g. 4"
},
"to_servings": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Servings wanted, positive; to_servings / from_servings must be 0.1-20, e.g. 10"
}
},
"required": [
"ingredients",
"from_servings",
"to_servings"
]
}Output Schema
{
"type": "object",
"properties": {
"from_servings": {
"type": "number",
"description": "Servings the recipe was written for"
},
"to_servings": {
"type": "number",
"description": "Servings scaled to"
},
"factor": {
"type": "number",
"description": "Scaling factor to_servings / from_servings (4 significant digits)"
},
"ingredients": {
"type": "array",
"description": "Scaled ingredients, in input order",
"items": {
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Ingredient name"
},
"original": {
"type": "string",
"description": "Original amount as text, or the pass-through note"
},
"scaled": {
"type": [
"number",
"null"
],
"description": "Scaled quantity (2 decimals); null when no quantity was given"
},
"scaled_display": {
"type": "string",
"description": "Scaled amount with unit and fraction hint, e.g. '2 1/2 cups (2.5)'"
},
"scaled_flag": {
"type": "boolean",
"description": "true when the ingredient was scaled, false when passed through"
}
},
"required": [
"item",
"original",
"scaled",
"scaled_display",
"scaled_flag"
]
}
},
"note": {
"type": "string",
"description": "Explanation of the scaling applied"
}
},
"required": [
"from_servings",
"to_servings",
"factor",
"ingredients",
"note"
]
}🟢convert_units(value, from, to, ingredient)
Convert one cooking amount between units: within volume or weight exactly, or between volume and weight using a built-in density for flour, sugar, brown sugar, butter, water, milk, rice, oats, cocoa or honey. Use for questions like 'how many grams is 2 cups of flour'. Do NOT use to change serving counts (use scale_recipe).
Input Schema
{
"type": "object",
"properties": {
"value": {
"type": "number",
"minimum": 0,
"description": "Amount to convert, zero or positive, e.g. 2"
},
"from": {
"type": "string",
"description": "Unit to convert from, e.g. 'cup'. Supported: tsp, tbsp, cup, fl_oz, ml, l, pint, quart, gallon (volume); g, kg, oz, lb (weight); each (count). Common spellings like 'cups', 'grams', 'tablespoon' also work"
},
"to": {
"type": "string",
"description": "Unit to convert to, e.g. 'g'; same supported units as from"
},
"ingredient": {
"type": "string",
"description": "Ingredient name, required only for volume <-> weight; must contain one of flour, sugar, brown sugar, butter, water, milk, rice, oats, cocoa, honey (e.g. 'all-purpose flour')"
}
},
"required": [
"value",
"from",
"to"
]
}Output Schema
{
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Amount that was converted"
},
"from": {
"type": "string",
"description": "Canonical source unit, e.g. 'cup'"
},
"to": {
"type": "string",
"description": "Canonical target unit, e.g. 'g'"
},
"result": {
"type": "number",
"description": "Converted amount (4 significant digits)"
},
"display": {
"type": "string",
"description": "Readable conversion, e.g. '2 cups flour = 250 g (approx.)'"
},
"method": {
"type": "string",
"enum": [
"linear",
"density"
],
"description": "'linear' for same-dimension, 'density' for volume <-> weight"
},
"density_note": {
"type": "string",
"description": "Density used (density method only)"
}
},
"required": [
"value",
"from",
"to",
"result",
"display",
"method"
]
}🟢merge_shopping_list(lists)
Combine several shopping or ingredient lists into one, summing the same item across lists (volumes and weights converted to a friendly unit) and noting which list each came from. Use when shopping for several recipes or meals at once. Do NOT use to resize one recipe (use scale_recipe) or price it (use cost_per_serving).
Input Schema
{
"type": "object",
"properties": {
"lists": {
"type": "array",
"minItems": 1,
"description": "Shopping lists to merge (at least one item overall), e.g. [{\"name\":\"Pancakes\",\"items\":[{\"item\":\"milk\",\"quantity\":1,\"unit\":\"cup\"}]}]",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "List label shown in from_lists, e.g. 'Saturday dinner'; default 'list N'"
},
"items": {
"type": "array",
"description": "Items on this list",
"items": {
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Item to buy, e.g. 'eggs'"
},
"quantity": {
"type": "number",
"minimum": 0,
"description": "Amount, non-negative; omit for non-numeric items (listed in skipped_no_quantity)"
},
"unit": {
"type": "string",
"description": "Unit such as cup, tbsp, g, kg, or a free label like 'can'; omit for plain counts"
}
},
"required": [
"item"
]
}
}
},
"required": [
"items"
]
}
}
},
"required": [
"lists"
]
}Output Schema
{
"type": "object",
"properties": {
"merged": {
"type": "array",
"description": "One line per item and unit kind, with summed quantities",
"items": {
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Item name (first spelling seen)"
},
"quantity": {
"type": "number",
"description": "Summed quantity (2 decimals)"
},
"unit": {
"type": "string",
"description": "Display unit, e.g. 'cup', 'g', 'each' or a free label"
},
"display": {
"type": "string",
"description": "Readable amount with unit"
},
"from_lists": {
"type": "array",
"items": {
"type": "string"
},
"description": "Names of the lists this item came from"
}
},
"required": [
"item",
"quantity",
"unit",
"display",
"from_lists"
]
}
},
"skipped_no_quantity": {
"type": "array",
"items": {
"type": "string"
},
"description": "Items given without a quantity, kept as notes"
},
"note": {
"type": "string",
"description": "Summary of the merge and its limits"
}
},
"required": [
"merged",
"skipped_no_quantity",
"note"
]
}🟢cost_per_serving(ingredients, servings, currency)
Total the cost of a recipe's ingredients and work out the cost per serving and per 10 servings. Use when budgeting a dish, pricing meal prep or comparing recipes on cost. Do NOT use to resize the recipe (use scale_recipe first, then price the scaled amounts here).
Input Schema
{
"type": "object",
"properties": {
"ingredients": {
"type": "array",
"minItems": 1,
"description": "Priced ingredients, e.g. [{\"item\":\"chicken\",\"cost\":8.5},{\"item\":\"rice\",\"cost\":1.2}]",
"items": {
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Ingredient name"
},
"cost": {
"type": "number",
"minimum": 0,
"description": "Cost of the amount used in the recipe, 0 or more, in the given currency"
}
},
"required": [
"item",
"cost"
]
}
},
"servings": {
"type": "number",
"exclusiveMinimum": 0,
"description": "How many servings the recipe makes, positive, e.g. 4"
},
"currency": {
"type": "string",
"description": "Currency code for display only, e.g. 'EUR'; default USD"
}
},
"required": [
"ingredients",
"servings"
]
}Output Schema
{
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "Currency code used in the results (upper case)"
},
"total_cost": {
"type": "number",
"description": "Sum of all ingredient costs"
},
"servings": {
"type": "number",
"description": "Servings the recipe makes"
},
"per_serving": {
"type": "number",
"description": "Cost per serving, rounded to cents"
},
"per_ten_servings": {
"type": "number",
"description": "Cost for 10 servings, rounded to cents"
},
"note": {
"type": "string",
"description": "Plain-language cost summary"
}
},
"required": [
"currency",
"total_cost",
"servings",
"per_serving",
"per_ten_servings",
"note"
]
}Community
Evidence