attach_instruction_image
ChatGPTUse after a structured recipe is saved and the user asks to attach its photos. Use the returned canonical stage/action ID and latest content revision. Supply a transferable host file descriptor or accessible HTTPS image URL, only with established reuse permission. Do not scrape private chats or claim access to search thumbnails. This saves no new recipe and uses no image-generation credits. Poll get_instruction_image for completion. If transfer is unavailable, offer RecipeBee upload. A failed photo never requires resaving the recipe.
attach_recipe_image
ChatGPTUse when the user wants to attach an image generated or uploaded in the current MCP client conversation to an existing private RecipeBee recipe. Prefer the Apps SDK file input when MCP client supplies file with download_url and file_id. Use image_url only for a URL selected or uploaded in the RecipeBee widget. If neither file nor image_url is available, return a pending selection and do not claim attachment. The widget picker is a fallback because native generated images may not be available in MCP client Files. Report attachment only after persisted=true and needs_image_selection=false. mode=replace changes which retained image is primary but does not delete the previous image; use it only after the user explicitly requests replacement. Do not use for a new RecipeBee-generated image.
commit_meal_plan_import
ChatGPTUse after prepare_meal_plan_import. Submit exactly one decision for every recipe. Use use_existing only with a recipe ID returned by preparation and only after the user chooses it; otherwise use create_new. This creates one private meal plan and its entries atomically, then renders the final RecipeBee card. Claim success only when persisted=true. The response may include an optional image batch link; never start image generation from MCP client.
generate_recipe_image
ChatGPTRequest RecipeBee image generation for an existing private recipe. Generation may reserve existing RecipeBee image credits or consume a free-tier image allowance. On protocol 2026-07-28, the server requires an accepted confirmation form bound to this recipe and these image options; image_generation_confirmed is ignored. On older MCP clients, omit image_generation_confirmed until the user explicitly accepts, then set it to true on one retry. This tool never purchases credits or starts checkout; if the existing entitlement is unavailable, report the failure without directing the user to a purchase flow. Do not use for an image already generated or uploaded in this conversation. mode=add retains the current primary image. mode=replace changes which retained image is primary but does not delete the previous image; use it only after the user explicitly requests replacement.
get_image_generation_batch
ChatGPTRead the progress of an optional RecipeBee image-generation batch returned by a meal-plan import. This tool never starts, charges, or cancels image generation; the user must confirm the batch in RecipeBee.
get_instruction_image
ChatGPTRead one attachment operation returned by attach_instruction_image. Never resave the recipe to retry a photo. Use show_recipe after completion to refresh the full recipe view.
get_recipe_image
ChatGPTCheck the private AI image status for an existing RecipeBee recipe after image generation was requested.
list_saved_meal_plans
ChatGPTBrowse or search the connected user's private RecipeBee meal plans. Use only when the user asks to browse or search meal plans. Returns paginated summaries; use show_meal_plan only for a plan the user selects.
list_saved_recipes
ChatGPTBrowse or search the connected user's private RecipeBee recipe library. Use only when the user asks to browse or search saved recipes. Returns a small paginated summary; use show_recipe only for a recipe the user selects.
open_recipebee_kitchen
ChatGPTOpen the connected user's private recipe and meal-plan library in the ChatGPT sidebar. The app reads only the library section the user opens.
prepare_meal_plan_import
ChatGPTUse only after the user explicitly asks to add a completed meal plan to RecipeBee. This stateful, data-only step checks private recipes for exact or possible matches and creates a short-lived import draft without creating recipes or a meal plan or rendering a RecipeBee card. Do not use for chat-only meal planning. Wait for explicit recipe choices when matches are returned.
preview_meal_plan
ChatGPTUse when the user asks to review a meal plan without adding it to RecipeBee. This chat-only, data-only tool never writes recipes or meal plans and does not render a RecipeBee card.
preview_recipe
ChatGPTUse when the user asks to preview or review a complete recipe without saving it. Include realistic integer prep_time_minutes, cook_time_minutes, and total_time_minutes values in every complete recipe. Estimate them when the user does not specify times; use 0 only when that part genuinely takes no time. Validate and render the recipe without persistence. Do not call as an intermediate step when the user has already explicitly asked to save.
remove_instruction_image
ChatGPTUse only after the user asks to remove a specific stage or action photo. Read the latest recipe first and supply its content revision plus the photo operation ID. Removal is permanent for this photo; it does not change recipe text or require another photo.
save_recipe
ChatGPTUse when the user explicitly asks to save a complete recipe privately. Include realistic integer prep_time_minutes, cook_time_minutes, and total_time_minutes values in every complete recipe. Estimate them when the user does not specify times; use 0 only when that part genuinely takes no time. Save exactly once. If the user asks for RecipeBee image generation, disclose that it may reserve existing image credits or consume a free-tier image allowance and wait for explicit acceptance before using save_recipe_with_image. If the user wants to attach an MCP client-generated or uploaded image, save the recipe with this tool and then use attach_recipe_image. Do not publish or use browser control.
save_recipe_with_image
ChatGPTSave a complete recipe privately and request RecipeBee image generation. Image generation may reserve existing RecipeBee image credits or consume a free-tier image allowance. On protocol 2026-07-28, the server requires an accepted confirmation form bound to these exact recipe and image options; image_generation_confirmed is ignored. On older MCP clients, omit image_generation_confirmed until the user explicitly accepts, then set it to true on one retry. No recipe is saved before confirmation. Once confirmed, save privately and queue the moderated image pipeline once; the recipe remains saved if image generation fails or is unavailable. This tool never purchases credits or starts checkout. For an MCP client-generated or uploaded image, use save_recipe followed by attach_recipe_image instead. Do not call preview_recipe or save_recipe first. Include realistic integer prep_time_minutes, cook_time_minutes, and total_time_minutes values in every complete recipe. Estimate them when the user does not specify times; use 0 only when that part genuinely takes no time.
show_meal_plan
ChatGPTRead the selected private meal plan and its scheduled recipes. Use only after the user selects or names a plan. This tool is read-only and does not edit the plan.
show_recipe
ChatGPTUse after attach_recipe_image or generate_recipe_image to render the current authoritative private recipe and image status, or when the user explicitly asks to view an existing recipe. Do not call immediately after save_recipe or save_recipe_with_image because those tools already return the authoritative saved recipe. Call it once after a later image mutation; do not use it repeatedly or as a substitute for saving.
update_recipe_content
ChatGPTUse only after reading the saved recipe with show_recipe and receiving a direct request to change its ingredients or instructions. Send the full content document and its current revision. Preserve existing section and item IDs for unchanged content; omitted sections or actions are deleted. New sections and actions can omit IDs. This replaces grouped text atomically and advances the revision. Photos remain optional and are not changed by this tool. On a revision conflict, read the recipe again and reconcile the requested edit before retrying.