Meals In ChatGPT And MCP Apps
This page explains the Meals workflow for ChatGPT and other hosts that can show rich MCP app views.
If you only want to use Fluent, start with Connecting to ChatGPT. This page is for understanding how the Meals flow behaves when a host can show recipe cards or grocery-list views.
The User Flow
The useful Meals loop is simple:
- plan the week
- review and adjust it
- accept the plan
- generate the grocery list
- shop from the list
- write back pantry, purchase, or inventory changes when you approve them
The assistant can present that loop in chat, in a rich app view, or in a mix of both.
What Fluent Saves
Fluent saves the durable Meals record:
- household preferences
- accepted meal plans
- recipes
- grocery plans
- inventory
- pantry confirmations
- purchase records
- meal feedback
The visual surface is not a second database. It is a better way to review or act on Fluent data.
Rich Views
Meals currently has two public rich views worth calling out:
- recipe cards for reading a saved recipe, backed by
meals_render_recipe_card - grocery lists for shopping from a generated plan, backed by
meals_render_grocery_list_v2
Week planning still starts from the saved plan data. A host may choose to present the week visually, but the accepted plan remains the Fluent record.
Text Fallbacks
Every rich view needs a complete text fallback.
If a host cannot render a recipe card, you should still get a clear recipe summary. If it cannot render a grocery-list view, you should still get a usable grocery list in chat.
That is expected behavior, not a broken setup.
End-To-End Demo
Use this prompt:
"Plan dinners for next week, lock the plan once it looks good, and show me the grocery list."
Expected result:
- Fluent checks that Meals is ready.
- Fluent generates a candidate plan.
- You review the plan and ask for changes if needed.
- Once you approve the week, Fluent saves it.
- Fluent generates the grocery plan.
- The host shows the grocery list visually when it can.
- If visual rendering is unavailable, the assistant gives the grocery list in text.
- If you confirm pantry coverage, purchases, or substitutions, Fluent writes those changes back to Meals.
This shows the practical loop: saved memory, plan generation, approval, grocery generation, and durable follow-up.
What Fluent Does Not Do Here
Fluent can prepare an order-ready list, but it does not complete retailer checkout, payment, or order submission inside ChatGPT.
Fluent also does not treat temporary widget state as saved data. A checked box or selected filter becomes durable only when the assistant writes the approved change back through Fluent.
For Implementers
The portable pattern is:
- use canonical Meals tools for reads and writes
- add render tools only when a host supports MCP app views
- keep assistant text complete even when a visual surface appears
- use the Tools Reference for exact tool names and the current contract
Developer reference also tracks other current Meals surfaces, including the pantry dashboard (meals_render_pantry_dashboard). That surface is not part of the first public ChatGPT Meals path described above.
For exact app metadata fields, follow the host platform's current MCP Apps documentation.