---
name: recipe-to-shopping-list
description: Scale recipes and turn the scaled ingredient quantities into a merged shopping list with Everyday MCP. Use for serving changes, pan-size adjustments, or combining exact recipe quantities for shopping.
compatibility: Requires an Everyday MCP remote connection at https://everyday.alfie.family/mcp
---

# Recipe to Shopping List

Produce a shopping list from the quantities actually returned by recipe scaling.

## Gather the recipe

Collect the original serving count, desired serving count, ingredient names, quantities, units, notes, and cooking instructions.

- Keep quantities as exact strings, including fractions such as `1/2` or `1 1/3`.
- Use explicit supported units such as `g`, `kg`, `US_cup`, `Imperial_pint`, or `count`.
- Preserve ingredient notes and the original instructions.
- Ask which unit system applies when a volume unit is ambiguous.

## Optional pan adjustment

When the target is defined by different pans rather than servings:

1. Discover and describe `cooking.pan_scale` through `everyday_calculate` if its current schema is not already known.
2. Calculate the pan-volume scale factor using the old and new shapes, dimensions, depths, and pan counts.
3. Use that factor to derive a serving target that `recipe_scale` can represent exactly.
4. Tell the user that the factor scales ingredient quantity only.

Do not multiply cooking time or temperature by the pan or serving factor. Pan material, fill level, doneness, and oven behavior remain cooking decisions.

## Scale ingredients

Call `everyday_calculate` with the direct request action `recipe_scale`.

- Use `fromServings`, `toServings`, and every ingredient from the source recipe.
- Keep the returned `instructions` verbatim.
- Treat `result.ingredients[].quantity` as the authoritative scaled quantity.
- Use `quantityMixed` only as a display form.

## Build the shopping list

Call the direct request action `shopping_merge` with ingredient objects projected from the actual scaling result:

- Copy `name`, `quantity`, `unit`, and `note` when present.
- Do not copy display-only fields that the input schema does not accept.
- Add ingredients from other scaled recipes before merging when the user is shopping for several recipes.
- Set `targetUnits` only when the user wants compatible quantities expressed in a particular unit.

The merge groups normalized names only within the same dimension. It does not infer synonyms or singular/plural matches.

Never convert mass to volume or volume to mass by guessing an ingredient density. Keep count, mass, and volume separate unless the user supplies a conversion basis.

## Present the result

Show scaled ingredients, the merged shopping quantities and units, preserved cooking instructions, and the limitations returned by the tools. Keep US and Imperial units visibly distinct.

## Examples

Read [references/examples.json](references/examples.json) when a complete pan-to-recipe-to-shopping call sequence is useful. The example uses known intermediate values so each call is directly sendable.
