Tool tree
gradeNot graded
listRecipesAnswer
List all saved recipes with id, title, and serving count. Use this to see what recipes are available before scaling, swapping, or generating a shopping list.
View tool JSON
{
"name": "listRecipes",
"kind": "answer",
"impl": "imperative",
"description": "List all saved recipes with id, title, and serving count. Use this to see what recipes are available before scaling, swapping, or generating a shopping list.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}getRecipeAnswer
Get the full details of a recipe by id, including ingredients (name + quantity + unit) and ordered steps.
View tool JSON
{
"name": "getRecipe",
"kind": "answer",
"impl": "imperative",
"description": "Get the full details of a recipe by id, including ingredients (name + quantity + unit) and ordered steps.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Recipe id (e.g. \"buttermilk-pancakes\")"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}generateShoppingListAction
Generate a consolidated shopping list across all saved recipes. Ingredients with the same name+unit are summed. If a recipeId is provided, only that recipe is used.
View tool JSON
{
"name": "generateShoppingList",
"kind": "act",
"impl": "imperative",
"description": "Generate a consolidated shopping list across all saved recipes. Ingredients with the same name+unit are summed. If a recipeId is provided, only that recipe is used.",
"inputSchema": {
"type": "object",
"properties": {
"recipeId": {
"type": "string",
"description": "(optional) recipe id; defaults to all recipes"
}
},
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}selectRecipeAction
Make a recipe the currently active one in the workbench. Subsequent tools (scaleRecipe, swapIngredient, etc.) operate on the active recipe by default.
View tool JSON
{
"name": "selectRecipe",
"kind": "act",
"impl": "imperative",
"description": "Make a recipe the currently active one in the workbench. Subsequent tools (scaleRecipe, swapIngredient, etc.) operate on the active recipe by default.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Recipe id to make active"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}scaleRecipeAction
Scale a recipe to a new serving count. All ingredient quantities are scaled proportionally (newQty = oldQty * newServings / oldServings). Operates on the active recipe unless recipeId is provided.
View tool JSON
{
"name": "scaleRecipe",
"kind": "act",
"impl": "imperative",
"description": "Scale a recipe to a new serving count. All ingredient quantities are scaled proportionally (newQty = oldQty * newServings / oldServings). Operates on the active recipe unless recipeId is provided.",
"inputSchema": {
"type": "object",
"properties": {
"servings": {
"type": "integer",
"minimum": 1,
"description": "Target servings count"
},
"recipeId": {
"type": "string",
"description": "(optional) recipe id; defaults to active recipe"
}
},
"required": [
"servings"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}swapIngredientAction
Replace an ingredient name in the active recipe. Matches the first ingredient whose name contains the search term (case-insensitive substring). Quantity and unit are preserved unless overrides are passed.
View tool JSON
{
"name": "swapIngredient",
"kind": "act",
"impl": "imperative",
"description": "Replace an ingredient name in the active recipe. Matches the first ingredient whose name contains the search term (case-insensitive substring). Quantity and unit are preserved unless overrides are passed.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Ingredient name to replace (case-insensitive substring match — \"milk\" matches \"buttermilk\")"
},
"to": {
"type": "string",
"description": "New ingredient name"
},
"recipeId": {
"type": "string",
"description": "(optional) recipe id; defaults to active recipe"
},
"newQuantity": {
"type": "number",
"minimum": 0,
"description": "(optional) override quantity"
},
"newUnit": {
"type": "string",
"description": "(optional) override unit"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}addIngredientAction
Add a new ingredient to the active recipe. quantity is a positive number; unit is a free-form string like "g", "ml", "cup", "tbsp", "tsp", "piece".
View tool JSON
{
"name": "addIngredient",
"kind": "act",
"impl": "imperative",
"description": "Add a new ingredient to the active recipe. quantity is a positive number; unit is a free-form string like \"g\", \"ml\", \"cup\", \"tbsp\", \"tsp\", \"piece\".",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Ingredient name"
},
"quantity": {
"type": "number",
"minimum": 0,
"description": "Numeric quantity"
},
"unit": {
"type": "string",
"description": "Unit (g, ml, cup, tbsp, tsp, piece, …)"
},
"recipeId": {
"type": "string",
"description": "(optional) recipe id; defaults to active recipe"
}
},
"required": [
"name",
"quantity",
"unit"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}removeIngredientAction
Remove an ingredient from the active recipe by name (case-insensitive substring match, same matcher as swapIngredient).
View tool JSON
{
"name": "removeIngredient",
"kind": "act",
"impl": "imperative",
"description": "Remove an ingredient from the active recipe by name (case-insensitive substring match, same matcher as swapIngredient).",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Ingredient name to remove (case-insensitive substring match)"
},
"recipeId": {
"type": "string",
"description": "(optional) recipe id; defaults to active recipe"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"page": "/webmcp/webmcp-api-documentation"
}