← WebMCP Directory

Tool tree

windowai.danduh.me

Developer ToolsTools verified
Website
Documentation for the WebMCP Recipe Workbench demo. Walks through document.modelContext, registerTool, and the page-side tool descriptor.
Explore capabilities
    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"
    }