{"id":3453331,"recorded_at":"2026-11-05T20:27:58.589572Z","observed_at":"2026-11-05T20:27:58.589412Z","subject_kind":"endpoint","subject":"bb65ca39-6ade-4d3d-b717-720a619e23ed","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":11,"tools":[{"description":"Creates a NEW recipe in your library only when the user explicitly asks to save/add it or taps Save in the recipe card. For a newly generated recipe the user has not chosen to keep, use display_recipe instead. Does not update existing recipes — to change a saved recipe use update_recipe. To make cooking-time tweaks use apply_recipe_patches. The server mints the stored import-* or ai-* recipe id; any caller-supplied recipe.id is treated only as source payload and is not used for upsert.","inputSchema":{"additionalProperties":false,"properties":{"idempotencyKey":{"description":"Opaque client retry token. Reuse it only for retries of the same create request; otherwise omit it.","maxLength":128,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},"recipe":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"ingredients":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","meta","ingredients","steps","notes"],"type":"object"},"sourceKind":{"enum":["manual","url","text"],"type":"string"},"sourceUrl":{"type":"string"}},"required":["recipe"],"type":"object"},"name":"add_recipe"},{"description":"Validate and apply explicit edits. Pass recipeId for a persisted cooking session, or pass the full recipe payload from display_recipe to edit an unsaved card without persistence. Does NOT modify the saved recipe in your library.","inputSchema":{"additionalProperties":false,"anyOf":[{"required":["recipeId"]},{"required":["recipe"]}],"properties":{"editLabel":{"minLength":1,"type":"string"},"measurementSystem":{"enum":["source","metric","imperial"],"type":"string"},"patches":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"ingredientId":{"type":"string"},"newValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"oldValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"replace-ingredient"}},"required":["type","requestId","editId","reason","ingredientId","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"afterIngredientId":{"type":"string"},"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"insert-ingredient"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"ingredientId":{"type":"string"},"oldValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"remove-ingredient"}},"required":["type","requestId","editId","reason","ingredientId"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"oldValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"stepId":{"type":"string"},"type":{"const":"replace-step"}},"required":["type","requestId","editId","reason","stepId","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"afterStepId":{"type":"string"},"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"insert-step"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"oldValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"stepId":{"type":"string"},"type":{"const":"remove-step"}},"required":["type","requestId","editId","reason","stepId"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"field":{"enum":["title","subtitle","description","summary","cuisine","course","meal","yieldText","prepTimeMin","cookTimeMin","totalTimeMin"],"type":"string"},"newValue":{},"oldValue":{},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"update-meta"}},"required":["type","requestId","editId","reason","field","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"newValue":{"items":{"type":"string"},"type":"array"},"oldValue":{"items":{"type":"string"},"type":"array"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"replace-images"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"note":{"type":"string"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"add-note"}},"required":["type","requestId","editId","reason","note"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"noteIndex":{"minimum":0,"type":"integer"},"oldValue":{"type":"string"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"remove-note"}},"required":["type","requestId","editId","reason","noteIndex"],"type":"object"}]},"minItems":1,"type":"array"},"recipe":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"ingredients":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","meta","ingredients","steps","notes"],"type":"object"},"recipeId":{"minLength":1,"type":"string"},"reply":{"minLength":1,"type":"string"},"sessionId":{"type":"string"}},"required":["patches"],"type":"object"},"name":"apply_recipe_patches"},{"description":"Permanently delete a recipe owned by the authenticated user from their Sous Chef library. This cannot delete public catalog recipes.","inputSchema":{"additionalProperties":false,"properties":{"id":{"minLength":1,"type":"string"}},"required":["id"],"type":"object"},"name":"delete_recipe"},{"description":"Presents a complete recipe in Sous Chef's interactive recipe card (servings, ingredients, steps, cooking mode, validated edits, Undo). Prefer this over plain chat formatting whenever you generate, retrieve, or substantially revise a full recipe — including ordinary requests like 'give me a vegan mushroom carbonara' or 'make a quick dinner for two'. Displaying is temporary: it renders the card without saving it or creating a cooking session; saving only happens through add_recipe when the user asks.","inputSchema":{"additionalProperties":false,"properties":{"recipe":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"ingredients":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","meta","ingredients","steps","notes"],"type":"object"}},"required":["recipe"],"type":"object"},"name":"display_recipe"},{"description":"Returns the saved canonical recipe from your library or the public catalog. In-progress cooking edits live in sessions and are not returned here.","inputSchema":{"additionalProperties":false,"properties":{"id":{"minLength":1,"type":"string"}},"required":["id"],"type":"object"},"name":"get_recipe"},{"description":"Confirm the Sous Chef MCP server is reachable.","inputSchema":{"properties":{},"type":"object"},"name":"health_check"},{"description":"List the authenticated user's saved Sous Chef recipes. Use this before editing when the user refers to a recipe by name instead of id.","inputSchema":{"additionalProperties":false,"properties":{"limit":{"maximum":100,"minimum":1,"type":"integer"}},"type":"object"},"name":"list_my_recipes"},{"description":"Drop a patch group by requestId. Pass recipeId/sessionId for persisted edits, or pass the displayed card's baseRecipe and remaining patch history for a pure unsaved-card Undo. Unknown requestIds are idempotent no-ops.","inputSchema":{"additionalProperties":false,"anyOf":[{"required":["recipeId"]},{"required":["baseRecipe","patches"]}],"properties":{"baseRecipe":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"ingredients":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","meta","ingredients","steps","notes"],"type":"object"},"measurementSystem":{"enum":["source","metric","imperial"],"type":"string"},"patches":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"ingredientId":{"type":"string"},"newValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"oldValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"replace-ingredient"}},"required":["type","requestId","editId","reason","ingredientId","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"afterIngredientId":{"type":"string"},"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"insert-ingredient"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"ingredientId":{"type":"string"},"oldValue":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"remove-ingredient"}},"required":["type","requestId","editId","reason","ingredientId"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"oldValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"stepId":{"type":"string"},"type":{"const":"replace-step"}},"required":["type","requestId","editId","reason","stepId","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"afterStepId":{"type":"string"},"editId":{"minLength":1,"type":"string"},"newValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"insert-step"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"oldValue":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"stepId":{"type":"string"},"type":{"const":"remove-step"}},"required":["type","requestId","editId","reason","stepId"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"field":{"enum":["title","subtitle","description","summary","cuisine","course","meal","yieldText","prepTimeMin","cookTimeMin","totalTimeMin"],"type":"string"},"newValue":{},"oldValue":{},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"update-meta"}},"required":["type","requestId","editId","reason","field","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"newValue":{"items":{"type":"string"},"type":"array"},"oldValue":{"items":{"type":"string"},"type":"array"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"replace-images"}},"required":["type","requestId","editId","reason","newValue"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"note":{"type":"string"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"add-note"}},"required":["type","requestId","editId","reason","note"],"type":"object"},{"additionalProperties":false,"properties":{"editId":{"minLength":1,"type":"string"},"noteIndex":{"minimum":0,"type":"integer"},"oldValue":{"type":"string"},"reason":{"minLength":1,"type":"string"},"requestId":{"minLength":1,"type":"string"},"type":{"const":"remove-note"}},"required":["type","requestId","editId","reason","noteIndex"],"type":"object"}]},"minItems":1,"type":"array"},"recipeId":{"minLength":1,"type":"string"},"sessionId":{"type":"string"},"targetRequestId":{"minLength":1,"type":"string"}},"required":["targetRequestId"],"type":"object"},"name":"revert_recipe_edit"},{"description":"Set measurements without ingredient patches. Pass recipeId for saved session state, or pass the full recipe payload from display_recipe to update an unsaved card without persistence.","inputSchema":{"additionalProperties":false,"anyOf":[{"required":["recipeId"]},{"required":["recipe"]}],"properties":{"measurementSystem":{"enum":["source","metric","imperial"],"type":"string"},"recipe":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"ingredients":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"preparation":{"type":"string"},"quantity":{"type":"number"},"quantityText":{"type":"string"},"section":{"type":"string"},"unit":{"type":"string"},"unitSystem":{"enum":["metric","imperial","count","other"],"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"type":"string"},"ingredientIds":{"items":{"type":"string"},"type":"array"},"section":{"type":"string"},"substeps":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"text":{"type":"string"},"timerLabel":{"type":"string"},"timerMin":{"type":"number"}},"required":["id","text"],"type":"object"},"type":"array"},"timerMin":{"type":"number"},"title":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","meta","ingredients","steps","notes"],"type":"object"},"recipeId":{"minLength":1,"type":"string"},"sessionId":{"type":"string"}},"required":["measurementSystem"],"type":"object"},"name":"set_measurement_system"},{"description":"Creates (or refreshes) a public Sous Chef link for a recipe and returns the URL. Only call when the user explicitly asks to share a recipe. The page is public, anyone with the link can view it, and it is indexed by search engines; the link shows the recipe as it currently looks, including Sous Chef edits, and sharing again updates the same link. Requires a signed-in Sous Chef account.","inputSchema":{"additionalProperties":false,"properties":{"recipeId":{"minLength":1,"type":"string"}},"required":["recipeId"],"type":"object"},"name":"share_recipe"},{"description":"Deliberately updates allowed fields on a saved recipe in your library. Supports title, subtitle, summary, description, images, meta, and notes only; images and notes replace the whole array. Does not change ingredients or steps — use apply_recipe_patches for cooking-time edits in a session snapshot.","inputSchema":{"additionalProperties":false,"properties":{"patch":{"additionalProperties":false,"minProperties":1,"properties":{"description":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"meta":{"additionalProperties":false,"properties":{"cookTimeMin":{"type":"number"},"course":{"type":"string"},"cuisine":{"type":"string"},"meal":{"type":"string"},"prepTimeMin":{"type":"number"},"totalTimeMin":{"type":"number"},"yieldText":{"type":"string"}},"type":"object"},"notes":{"items":{"type":"string"},"type":"array"},"subtitle":{"type":"string"},"summary":{"type":"string"},"title":{"minLength":1,"type":"string"}},"type":"object"},"recipeId":{"minLength":1,"type":"string"}},"required":["recipeId","patch"],"type":"object"},"name":"update_recipe"}]},"body_sha256":"726c2e1d96746123369bbbf75a4df6dd7d5c1f8b09ab01e02b8a5ee74accc351","prev_id":null,"leaf":"0xa6394dfa29963e5941eb3011df064545224af14c550a849eb2f6a63f84dcc946","leaf_text":"{\"body\":\"726c2e1d96746123369bbbf75a4df6dd7d5c1f8b09ab01e02b8a5ee74accc351\",\"id\":3453331,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793910478589412,\"prev\":null,\"subject\":\"bb65ca39-6ade-4d3d-b717-720a619e23ed\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-11-05","leaves":322504,"root":"0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128","chained":"0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2","anchor_chain":"eip155:5042002","anchor_tx":"0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94","anchor_block":70942081},"proof":["0xa63a4c82997781bd34482ec286f296ccde2dc5a4b99fcc49e0fd91d37989ebe8","0x4c895a491a177a23ecd45eece6c381addd5069bd5dee950a52310bc11a57633b","0x869a97d60b15d03c790ba312b17322b4875ba902cdc495f895d898e84b2fc8a1","0xd1dc13b449c04ba20eb3fcfbab2b396dbbb62641c4468d33e5332ba731e8ce7a","0xb4887976207453b1c8627c719348eaeba8bc9d9a1fb0afd55301b79141a46426","0x860a6a714562c33df3994c08b93e781a9bd681ce9217a07bd74d984faf3d1cbe","0x4ae8b2ef06228166d581485752a57f69db37ab99838eab4d4b295408cc0d8ddb","0xca8f8f49d814bb13b6e51fdd9d0532e8f298346a937d99d8af19db80e0ec769b","0x0608c9b4632d6ad0971cea384207c1b576be74f61bed631209afa7a3cbc00ee2","0xa0e2325bb906ecf7cc99208e20fbca7acbb577aa9fb8a93c685ff2fff8b26c0d","0x81a491e12a30c52810a6fc59bfa59431aeed925cad68293dcdcd331e6d194f3f","0x39dffa2dfe5eff287629750e25f8660b3206fca0fdeda719be73ff213af84cfd","0x57cf19d44d9e81bc14fc4685e033394f8b05fbd0eb27f3965637ef52d2d4b40b","0x9b9fcbddc5e61cd56d284bbf85f74d7b6024baa4338a1e4f6406e8c01db66d25","0x1c65721edf79939e1513441d5a9e3be301d6801a492ba436ec3148b4e982f044","0x94ca8b6a95491be1f3ac6de55d756552e3d7dcdd3a530f60ac239342f2227667","0x25f3843b1f8d3ded906cf440101c0137d8f897b0b72f946f0d5bc12c3da6b136","0xfb4e1f4d701ae273fb0cd57757f659e327608e5561a752b2099b436618493c84","0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b"]}