Tool tree
gradeNot graded
meal_contextAnswer
Read the user's structured meal-planning context for a date range in one call: saved recipe summaries, pantry inventory, planned meals, and the calculated shopping list. Use this before proposing or revising a meal plan so you respect what the user has already saved and planned.
View tool JSON
{
"name": "meal_context",
"kind": "answer",
"impl": "imperative",
"description": "Read the user's structured meal-planning context for a date range in one call: saved recipe summaries, pantry inventory, planned meals, and the calculated shopping list. Use this before proposing or revising a meal plan so you respect what the user has already saved and planned.",
"inputSchema": {
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start date in YYYY-MM-DD format"
},
"end_date": {
"type": "string",
"description": "End date in YYYY-MM-DD format"
}
},
"required": [
"start_date",
"end_date"
],
"additionalProperties": false
}
}list_recipesAnswer
Find recipes in the user's saved recipe memory. Search matches recipe names, tags, and ingredient names. Use returned recipe IDs for planning meals or retrieving scaled ingredient quantities.
View tool JSON
{
"name": "list_recipes",
"kind": "answer",
"impl": "imperative",
"description": "Find recipes in the user's saved recipe memory. Search matches recipe names, tags, and ingredient names. Use returned recipe IDs for planning meals or retrieving scaled ingredient quantities.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional text to match against recipe names, tags, and ingredients"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional tags that every returned recipe must have"
},
"max_total_minutes": {
"type": [
"number",
"null"
],
"minimum": 0,
"description": "Optional maximum prep plus cook time in minutes"
}
},
"required": [],
"additionalProperties": false
}
}get_recipeAnswer
Get one saved recipe with exact ingredients, quantities, units, instructions, times, tags, and timestamps. Optionally scale all numeric ingredient quantities to a different serving count.
View tool JSON
{
"name": "get_recipe",
"kind": "answer",
"impl": "imperative",
"description": "Get one saved recipe with exact ingredients, quantities, units, instructions, times, tags, and timestamps. Optionally scale all numeric ingredient quantities to a different serving count.",
"inputSchema": {
"type": "object",
"properties": {
"recipe_id": {
"type": "string",
"description": "Saved recipe ID"
},
"servings": {
"type": [
"number",
"null"
],
"exclusiveMinimum": 0,
"description": "Optional target servings; null keeps the recipe's base servings"
}
},
"required": [
"recipe_id"
],
"additionalProperties": false
}
}save_recipeAction
Create or update a recipe in durable browser storage. Store structured servings, prep/cook time, ingredient quantities and units, tags, and ordered cooking instructions. Pass id only when updating an existing recipe.
View tool JSON
{
"name": "save_recipe",
"kind": "act",
"impl": "imperative",
"description": "Create or update a recipe in durable browser storage. Store structured servings, prep/cook time, ingredient quantities and units, tags, and ordered cooking instructions. Pass id only when updating an existing recipe.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Existing recipe ID when updating; omit for a new recipe"
},
"name": {
"type": "string",
"description": "Recipe name"
},
"servings": {
"type": "number",
"description": "Base number of servings",
"minimum": 0.01
},
"prep_minutes": {
"type": "number",
"description": "Preparation time in minutes",
"minimum": 0
},
"cook_minutes": {
"type": "number",
"description": "Cooking time in minutes",
"minimum": 0
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Short descriptive tags such as quick, vegetarian, high-protein"
},
"ingredients": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Ingredient name, e.g. chickpeas"
},
"quantity": {
"type": [
"number",
"null"
],
"description": "Numeric amount. Use null when the recipe says 'to taste' or otherwise gives no number."
},
"unit": {
"type": "string",
"description": "Unit such as g, ml, tbsp, tsp, cup, item, or an empty string when unitless"
}
},
"required": [
"name",
"quantity",
"unit"
],
"additionalProperties": false
},
"description": "Structured ingredients"
},
"instructions": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Cooking steps in order"
}
},
"required": [
"name",
"servings",
"ingredients",
"instructions"
],
"additionalProperties": false
}
}delete_recipeSensitive Action
Delete a saved recipe and remove any meal-plan entries that refer to it.
View tool JSON
{
"name": "delete_recipe",
"kind": "transact",
"impl": "imperative",
"description": "Delete a saved recipe and remove any meal-plan entries that refer to it.",
"inputSchema": {
"type": "object",
"properties": {
"recipe_id": {
"type": "string",
"description": "Recipe ID to delete"
}
},
"required": [
"recipe_id"
],
"additionalProperties": false
}
}get_meal_planAnswer
Read planned breakfasts, lunches, and dinners in a date range. Results include recipe names, servings, tags, and cooking times, which makes prior weeks available as durable meal-plan history.
View tool JSON
{
"name": "get_meal_plan",
"kind": "answer",
"impl": "imperative",
"description": "Read planned breakfasts, lunches, and dinners in a date range. Results include recipe names, servings, tags, and cooking times, which makes prior weeks available as durable meal-plan history.",
"inputSchema": {
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start date in YYYY-MM-DD format"
},
"end_date": {
"type": "string",
"description": "End date in YYYY-MM-DD format"
}
},
"required": [
"start_date",
"end_date"
],
"additionalProperties": false
}
}plan_mealAction
Create or replace one meal-plan slot for a date. The website immediately updates and remembers the selection.
View tool JSON
{
"name": "plan_meal",
"kind": "act",
"impl": "imperative",
"description": "Create or replace one meal-plan slot for a date. The website immediately updates and remembers the selection.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Meal date in YYYY-MM-DD format"
},
"meal_type": {
"type": "string",
"enum": [
"breakfast",
"lunch",
"dinner"
],
"description": "Meal slot"
},
"recipe_id": {
"type": "string",
"description": "ID of a saved recipe"
},
"servings": {
"type": "number",
"description": "Servings to prepare",
"minimum": 0.01
}
},
"required": [
"date",
"meal_type",
"recipe_id",
"servings"
],
"additionalProperties": false
}
}plan_mealsAction
Plan or replace multiple meal slots atomically enough for a weekly planning workflow. Prefer this over many plan_meal calls when the user approves several meals at once.
View tool JSON
{
"name": "plan_meals",
"kind": "act",
"impl": "imperative",
"description": "Plan or replace multiple meal slots atomically enough for a weekly planning workflow. Prefer this over many plan_meal calls when the user approves several meals at once.",
"inputSchema": {
"type": "object",
"properties": {
"meals": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Meal date in YYYY-MM-DD format"
},
"meal_type": {
"type": "string",
"enum": [
"breakfast",
"lunch",
"dinner"
]
},
"recipe_id": {
"type": "string",
"description": "ID of a saved recipe"
},
"servings": {
"type": "number",
"description": "Servings to prepare",
"minimum": 0.01
}
},
"required": [
"date",
"meal_type",
"recipe_id",
"servings"
],
"additionalProperties": false
}
}
},
"required": [
"meals"
],
"additionalProperties": false
}
}remove_mealAction
Remove a breakfast, lunch, or dinner from a specific date while preserving all other meal-plan history.
View tool JSON
{
"name": "remove_meal",
"kind": "act",
"impl": "imperative",
"description": "Remove a breakfast, lunch, or dinner from a specific date while preserving all other meal-plan history.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Meal date in YYYY-MM-DD format"
},
"meal_type": {
"type": "string",
"enum": [
"breakfast",
"lunch",
"dinner"
]
}
},
"required": [
"date",
"meal_type"
],
"additionalProperties": false
}
}list_pantryAnswer
Read the user's pantry inventory with exact quantities and units. Use it before shopping-list or use-what-I-have planning tasks.
View tool JSON
{
"name": "list_pantry",
"kind": "answer",
"impl": "imperative",
"description": "Read the user's pantry inventory with exact quantities and units. Use it before shopping-list or use-what-I-have planning tasks.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}set_pantry_itemAction
Create or replace the available quantity of a pantry ingredient. Set quantity to zero to remove the matching ingredient and unit from the pantry.
View tool JSON
{
"name": "set_pantry_item",
"kind": "act",
"impl": "imperative",
"description": "Create or replace the available quantity of a pantry ingredient. Set quantity to zero to remove the matching ingredient and unit from the pantry.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Ingredient name"
},
"quantity": {
"type": "number",
"description": "Quantity currently available",
"minimum": 0
},
"unit": {
"type": "string",
"description": "Unit; use the same unit as recipes when possible"
}
},
"required": [
"name",
"quantity",
"unit"
],
"additionalProperties": false
}
}build_shopping_listAction
Calculate an exact shopping list from planned meals in a date range. Recipe quantities are scaled to planned servings, combined by normalized ingredient and unit, and can be reduced by matching pantry quantities.
View tool JSON
{
"name": "build_shopping_list",
"kind": "act",
"impl": "imperative",
"description": "Calculate an exact shopping list from planned meals in a date range. Recipe quantities are scaled to planned servings, combined by normalized ingredient and unit, and can be reduced by matching pantry quantities.",
"inputSchema": {
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start date in YYYY-MM-DD format"
},
"end_date": {
"type": "string",
"description": "End date in YYYY-MM-DD format"
},
"subtract_pantry": {
"type": "boolean",
"description": "Whether to subtract matching pantry quantities; normally true"
}
},
"required": [
"start_date",
"end_date"
],
"additionalProperties": false
}
}export_meal_dataAction
Return a complete JSON-safe snapshot of the user's locally stored recipes, meal-plan history, pantry inventory, and timestamps for backup or agent-side analysis.
View tool JSON
{
"name": "export_meal_data",
"kind": "act",
"impl": "imperative",
"description": "Return a complete JSON-safe snapshot of the user's locally stored recipes, meal-plan history, pantry inventory, and timestamps for backup or agent-side analysis.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}shopping_price_contextAnswer
Read the user's explicitly saved shopping location, preferred stores, current shopping-list quantities, existing price estimates and saved unexpired price quotes. Use this before researching grocery prices or promotions.
View tool JSON
{
"name": "shopping_price_context",
"kind": "answer",
"impl": "imperative",
"description": "Read the user's explicitly saved shopping location, preferred stores, current shopping-list quantities, existing price estimates and saved unexpired price quotes. Use this before researching grocery prices or promotions.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}set_shopping_profileAction
Save the location and preferred stores that the user explicitly wants used for grocery pricing. This is optional and stored only in this browser.
View tool JSON
{
"name": "set_shopping_profile",
"kind": "act",
"impl": "imperative",
"description": "Save the location and preferred stores that the user explicitly wants used for grocery pricing. This is optional and stored only in this browser.",
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "User-provided city, suburb, region or country; empty string clears it"
},
"preferred_stores": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional retailer names the user prefers"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code such as ZAR, USD or GBP"
}
},
"required": [
"location",
"preferred_stores",
"currency"
],
"additionalProperties": false
}
}save_price_quotesAnswer
Save current grocery price quotes or promotions for shopping-list ingredients after researching the user's chosen location. Package size is required so the page can estimate actual packages that must be purchased rather than only ingredient consumption cost.
View tool JSON
{
"name": "save_price_quotes",
"kind": "answer",
"impl": "imperative",
"description": "Save current grocery price quotes or promotions for shopping-list ingredients after researching the user's chosen location. Package size is required so the page can estimate actual packages that must be purchased rather than only ingredient consumption cost.",
"inputSchema": {
"type": "object",
"properties": {
"quotes": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"ingredient": {
"type": "string",
"description": "Ingredient name exactly as it appears in the shopping list when possible"
},
"package_quantity": {
"type": "number",
"description": "Amount contained in one purchasable package",
"minimum": 0.000001
},
"package_unit": {
"type": "string",
"description": "Package unit such as g, kg, ml, l, item, each or an empty string"
},
"price": {
"type": "number",
"description": "Current price for one package in the shopping profile currency",
"minimum": 0
},
"store": {
"type": "string",
"description": "Retailer or store name"
},
"location": {
"type": "string",
"description": "Location the quote applies to; normally the saved shopping location"
},
"promotion": {
"type": "string",
"description": "Optional promotion text; empty string when not promotional"
},
"valid_until": {
"type": "string",
"description": "Optional YYYY-MM-DD promotion/quote expiry date; empty string when unknown"
},
"source_url": {
"type": "string",
"description": "Optional source URL for traceability"
}
},
"required": [
"ingredient",
"package_quantity",
"package_unit",
"price",
"store",
"location",
"promotion",
"valid_until",
"source_url"
],
"additionalProperties": false
}
}
},
"required": [
"quotes"
],
"additionalProperties": false
}
}priced_shopping_listAnswer
Return the current shopping list with package-aware estimated purchase cost per ingredient, store/deal details, coverage and estimated basket total using saved unexpired quotes.
View tool JSON
{
"name": "priced_shopping_list",
"kind": "answer",
"impl": "imperative",
"description": "Return the current shopping list with package-aware estimated purchase cost per ingredient, store/deal details, coverage and estimated basket total using saved unexpired quotes.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}clear_price_quotesAnswer
Clear saved grocery prices and promotions without changing the user's recipes, pantry, meal plan or shopping location.
View tool JSON
{
"name": "clear_price_quotes",
"kind": "answer",
"impl": "imperative",
"description": "Clear saved grocery prices and promotions without changing the user's recipes, pantry, meal plan or shopping location.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}import_meal_dataAction
Replace the current browser-local recipes, meal-plan history and pantry with a previously exported Meal Planner version 1 snapshot. Validate all recipe references, meal slots, quantities and pantry records before replacing state. Shopping location and saved price quotes are not changed.
View tool JSON
{
"name": "import_meal_data",
"kind": "act",
"impl": "imperative",
"description": "Replace the current browser-local recipes, meal-plan history and pantry with a previously exported Meal Planner version 1 snapshot. Validate all recipe references, meal slots, quantities and pantry records before replacing state. Shopping location and saved price quotes are not changed.",
"inputSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Complete object previously returned by export_meal_data",
"properties": {
"version": {
"type": "number",
"enum": [
1
]
},
"recipes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"plans": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"pantry": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"version",
"recipes",
"plans",
"pantry"
],
"additionalProperties": true
}
},
"required": [
"data"
],
"additionalProperties": false
}
}set_shopping_currencyAction
Set the ISO 4217 currency used for grocery prices. Infer this from the user's explicitly saved shopping location before researching or saving prices. For example use USD for the United States, MGA for Madagascar, ZAR for South Africa, GBP for the United Kingdom, and JPY for Japan. Do not infer or request device geolocation; use only the location saved in shopping_price_context.
View tool JSON
{
"name": "set_shopping_currency",
"kind": "act",
"impl": "imperative",
"description": "Set the ISO 4217 currency used for grocery prices. Infer this from the user's explicitly saved shopping location before researching or saving prices. For example use USD for the United States, MGA for Madagascar, ZAR for South Africa, GBP for the United Kingdom, and JPY for Japan. Do not infer or request device geolocation; use only the location saved in shopping_price_context.",
"inputSchema": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "Three-letter ISO 4217 currency code appropriate to the saved shopping location"
}
},
"required": [
"currency"
],
"additionalProperties": false
}
}