update_recipe
Update an existing recipe by slug, changing only the fields you provide—name, description, servings, times, ingredients, instructions, categories, tags, notes, or custom metadata.
Instructions
Update fields on an existing recipe. Only provided fields are changed.
Args: slug: Recipe slug to update name: New recipe name description: New description recipe_yield: Yield description (e.g. "15–18 rolls", "1 loaf") servings: Numeric serving count that enables scaling (e.g. 6, 8, 15) total_time: New total time prep_time: New prep time perform_time: New cook time ingredients: Replace ingredient list. Each dict has optional keys: - section (str): creates a visual section header (no other fields used) - quantity (float): numeric amount (e.g. 300, 2.5) - unit (str): unit name or abbreviation (e.g. "g", "cup", "tbsp") - food (str): ingredient name (e.g. "bread flour", "butter") - comment (str): extra info shown alongside (e.g. "softened", "about 1¾ tsp") instructions: Replace instruction steps — each may be a plain string or a dict with: - text (str): step body - title (str, optional): step heading shown in UI - summary (str, optional): one-line takeaway for cook mode - ingredient_refs (list[str], optional): UUIDs of linked ingredients categories: Replace categories tags: Replace tags notes: Replace note blocks. Each dict has: - title (str): section label (e.g. "Non-Negotiables") - text (str): note body extras: Replace arbitrary JSON metadata (e.g. {"isFoundation": true})
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| slug | Yes | ||
| tags | No | ||
| notes | No | ||
| extras | No | ||
| servings | No | ||
| prep_time | No | ||
| categories | No | ||
| total_time | No | ||
| description | No | ||
| ingredients | No | ||
| instructions | No | ||
| perform_time | No | ||
| recipe_yield | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |