Skip to main content
Glama

Chop it: meal planning, recipes, pantry and shopping

Build a weekly dinner menu

create_weekly_menu

Main entry point for planning dinners. Builds a draft week of dinners from Chop It's catalogue, including broad requests such as 'plan five dinners' with a balanced protein mix adapted to food rules. Each dinner slot gets up to five equal recipe choices and none is selected until the user chooses, in the widget or in chat; a draft with zero selected (status needs_selections) is the normal starting state. Returns the native recipe-selection widget and a menuDraftId that revise_weekly_menu, get_menu_draft, save_week and create_shopping_list accept. Building a draft works without an account. Parameters: brief is the user's own words; each counted protein ('2 chicken, 1 fish') or slotRequirement is one dinner slot; dietary holds whole-week food rules only (one vegetarian dinner is a slot, not dietary); maxTimeMins caps every dinner, while slotRequirements can mix quick and slower dinners; priority is balanced, quick (30-minute cap), healthy or comfort; pantryMode stays off unless the user wants to cook from their pantry (using account stock needs a linked account); includeRecipeIds are pinned as selected dinners. Dietary rules and time limits are hard constraints, and only dinner mains are offered. slotIssues lists any slot with fewer than five matches and the reason: fewer cards means fewer recipes met that slot's rules, not that the catalogue is short.

Input Schema

NameRequiredDescriptionDefault
briefYesFree-text brief, e.g. 'quick midweek family dinners, no fish'.
dietaryNo
priorityNoquick and speedy are the same criterion: every dinner within 30 minutes of credible total time. healthy uses the documented per-serving nutrition rule; comfort is the curated comfort style. balanced applies no preference.
servingsNo
mixPresetNo
pantryModeNoTask only: default ignore for fresh inspiration; use only when explicitly asked to plan from stock; focus prioritises named ingredients. Never changes the diet, foods to avoid or other lasting preferences.
maxTimeMinsNoGlobal hard cap for EVERY dinner. For quick weeknights plus a slower weekend, use slotRequirements instead.
dinnersCountNoHow many dinners to plan. If omitted, the count named in the brief wins, else 5.
recipeSourceNoSaved means the linked library. Not recently planned excludes recent MCP draft selections; it does not imply never cooked.
configurationIdNoSet by the weekly chooser widget: the chooser this week is built from, so the widget can find it again after a reload.
excludeRecipeIdsNo
focusIngredientsNoOnly ingredients explicitly named for using up; do not fill from remembered inventory.
includeRecipeIdsNoRecipe ids to pin into the week.
slotRequirementsNoOne entry per dinner, in display order. Use for mixed briefs: quick slots have maxTimeMins, a slower weekend has minTimeMins and special, and a fish slot has protein fish. Empty entries mean a varied normal dinner.

Output Schema

NameRequiredDescriptionDefault
noteNo
briefNo
debugNo
titleYes
appUrlYes
statusYes
canUndoNo
dietaryNo
dinnersYes
priorityNo
progressYes
servingsYes
diversityNo
selectionYes
navigationNo
pantryModeNo
slotIssuesNo
menuDraftIdYes
savedWeekIdNo
recipeSourceNo
savedWeekTitleNo
diversityStatusNo
savedWeekAppUrlNo
focusIngredientsNo
selectionWarningsNo
allowedNextActionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say non-read-only, non-idempotent, non-destructive; the description goes well beyond by explaining that nothing is selected until the user acts, that a zero-selection draft is the expected starting state, that building works without an account but pantry-from-stock requires a linked account, and that dietary rules and time limits are hard constraints. The slotIssues explanation ('fewer cards means fewer recipes met that slot's rules, not that the catalogue is short') heads off a very likely agent misread of the return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but load-bearing: the opening sentence states the entry-point role, the middle explains the draft/selection model and the id contract, and the tail is a scannable 'Parameters:' rundown. For a 14-parameter tool the length is justified, though it arrives as one unbroken block where sub-headings or line breaks would make the parameter section faster to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still names the two things the agent most needs back: the recipe-selection widget and the menuDraftId consumed downstream. A few parameters (servings, mixPreset, recipeSource, excludeRecipeIds) get no elaboration in the description and rely on the schema, which is acceptable at this coverage level but leaves a small gap in an otherwise thorough definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds real meaning on top of schema coverage of 71%: dietary holds whole-week rules only ('one vegetarian dinner is a slot, not dietary'), counted proteins and slotRequirements each map to one dinner slot, maxTimeMins is global while per-slot maxTimeMins/minTimeMins mix quick and slow, and includeRecipeIds pin as selected while none else is selected. It also spells out the priority options in behavioural terms, which the terse schema descriptions don't fully duplicate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Builds a draft week of dinners from Chop It's catalogue', and clarifies it produces an unselected draft plus a menuDraftId. It distinguishes itself from the tools that consume the draft (revise_weekly_menu, save_week, create_shopping_list) but never contrasts itself with the sibling prepare_weekly_menu, so the boundary with the closest alternative stays implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use routing: 'Main entry point for planning dinners', 'pantryMode stays off unless the user wants to cook from their pantry', and 'For quick weeknights plus a slower weekend, use slotRequirements instead' of maxTimeMins. It also sets the normal starting state ('status needs_selections') so the agent won't treat an empty selection as failure. No explicit exclusion against prepare_weekly_menu or revise_weekly_menu beyond naming which tools accept the id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Directories

Listed in ChatGPT · Chop it

Last observed

Resources