Generate grocery list from recipes
generate_grocery_listUse this when the user wants one combined grocery list or shopping list from several recipes or a pasted list of ingredients, without a weekly grid. First turn what the user pasted (a list, recipe, store order, receipt or e-mail) into items with name, quantity and unit, plus meal and servings for recipe lines; leave out prices, totals, headers and e-mail text. Put the original text in recipes only when you cannot do that. Merges the same ingredient with unit conversion inside one dimension, scales servings, groups by store section, leaves off items the user already has, and keeps unreadable lines as written. Returns a printable checklist PDF, CSV and text. Does not give nutrition or diet advice.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "generate_grocery_list"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | Preferred for a pasted list, order, receipt or e-mail: one entry per ingredient with the amount you read, e.g. [{"name":"eggs","quantity":24},{"name":"whole milk","quantity":1,"unit":"gallon"},{"name":"ground beef","quantity":1,"unit":"lb","meal":"Tacos","servings":4}]. Leave out prices, totals, store names, headers and e-mail text. | |
| title | No | Title printed on the PDF, e.g. "Family dinners". Default "Weekly meal plan" or "Grocery list". Longer than 80 characters is shortened. | |
| units | No | How to show merged amounts: "us" (cups, tbsp, oz, lb), "metric" (ml, l, g, kg) or "auto" (default: the system most lines use). Volume is never converted to weight. | |
| people | No | Servings to cook for each meal, e.g. 4 or "4 people". Each meal with a recipe yield (servings) is scaled to this number; meals without a yield are used as written. Default: no scaling. | |
| recipes | No | Fallback, or recipes with their servings. Recipes or ingredient lines, e.g. [{"name":"Tacos","servings":4,"ingredients":["1 lb ground beef","8 corn tortillas","1 cup shredded cheddar"]},{"name":"Guacamole","ingredients":"3 avocados; 1 lime; 1/4 cup cilantro"}], or plain text: one ingredient per line, a comma list ("milk, eggs, 2 lb ground turkey"), a checklist, a table with Item and Qty columns, or a whole recipe page (title, Serves line, Ingredients; directions are skipped). | |
| week_of | No | Optional label for the week, e.g. "Nov 2, 2026". Printed as given; longer than 40 characters is shortened. | |
| page_size | No | PDF paper: "letter" (default) or "a4". | |
| already_have | No | Items already in the kitchen to leave off the list, as a list or comma-separated text, e.g. ["salt", "olive oil", "rice"]. A section name such as "spices" removes that whole section. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| meals | Yes | ||
| notes | Yes | ||
| title | Yes | ||
| units | Yes | ||
| people | Yes | ||
| sections | Yes | ||
| downloads | Yes | ||
| items_count | Yes | ||
| meals_count | Yes | ||
| unparsed_lines | Yes | ||
| already_have_removed | Yes |