← WebMCP Directory

Tool tree

zingy-hamster-1df2ed.netlify.app

Health & EducationTools verified
Website
A meal-planning and shopping-list app that humans and AI agents can drive together, live, via WebMCP.
Explore capabilities
    search-recipesAnswer

    Search the recipe catalog by free-text query, required tags, and/or a max prep time. By default, results are filtered to only recipes that match the household's currently active dietary preferences.

    View tool JSON
    {
      "name": "search-recipes",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the recipe catalog by free-text query, required tags, and/or a max prep time. By default, results are filtered to only recipes that match the household's currently active dietary preferences.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free text to match against recipe name or ingredients."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "vegetarian",
                "vegan",
                "glutenFree",
                "dairyFree",
                "nutFree",
                "quick",
                "budget"
              ]
            },
            "description": "Require all of these tags."
          },
          "maxPrepMinutes": {
            "type": "number",
            "description": "Only include recipes that take this many minutes or less."
          },
          "respectDietary": {
            "type": "boolean",
            "description": "Filter out recipes that conflict with active dietary preferences. Defaults to true."
          },
          "maxCaloriesPerServing": {
            "type": "number",
            "description": "Only include recipes at or under this many calories per serving."
          },
          "minProteinPerServing": {
            "type": "number",
            "description": "Only include recipes with at least this many grams of protein per serving."
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "relevance",
              "pantryMatch",
              "cost",
              "prepTime",
              "calories",
              "expiringSoon"
            ],
            "description": "How to order results. 'pantryMatch' ranks recipes needing the fewest additional ingredients first -- use this to answer \"what can I make with what I already have\". 'expiringSoon' ranks recipes that use the most soon-to-expire pantry items first -- use this to reduce food waste. Defaults to 'relevance'."
          }
        }
      },
      "page": "/"
    }
    get-recipeAnswer

    Get full details for one recipe, including ingredients and instructions, by its recipe id.

    View tool JSON
    {
      "name": "get-recipe",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get full details for one recipe, including ingredients and instructions, by its recipe id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "recipeId": {
            "type": "string",
            "description": "The recipe id, e.g. from search-recipes results."
          }
        },
        "required": [
          "recipeId"
        ]
      },
      "page": "/"
    }
    get-dietary-preferencesAnswer

    Get the household's currently active dietary preferences and avoided ingredients.

    View tool JSON
    {
      "name": "get-dietary-preferences",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the household's currently active dietary preferences and avoided ingredients.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    set-dietary-preferencesAction

    Update the household's dietary preferences (vegetarian, vegan, glutenFree, dairyFree, nutFree) and/or the list of ingredients to avoid. Only the fields provided are changed. Affects future recipe searches and blocks conflicting meal-plan additions unless overridden.

    View tool JSON
    {
      "name": "set-dietary-preferences",
      "kind": "act",
      "impl": "imperative",
      "description": "Update the household's dietary preferences (vegetarian, vegan, glutenFree, dairyFree, nutFree) and/or the list of ingredients to avoid. Only the fields provided are changed. Affects future recipe searches and blocks conflicting meal-plan additions unless overridden.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "vegetarian": {
            "type": "boolean"
          },
          "vegan": {
            "type": "boolean"
          },
          "glutenFree": {
            "type": "boolean"
          },
          "dairyFree": {
            "type": "boolean"
          },
          "nutFree": {
            "type": "boolean"
          },
          "avoidIngredients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Ingredient names to avoid entirely, e.g. [\"shellfish\"]."
          }
        }
      },
      "page": "/"
    }
    get-meal-planAnswer

    Get the full Mon-Sun meal plan with recipe names, servings, and an estimated total cost for the week.

    View tool JSON
    {
      "name": "get-meal-plan",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the full Mon-Sun meal plan with recipe names, servings, and an estimated total cost for the week.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    get-week-nutrition-summaryAnswer

    Get per-serving nutrition (calories, protein, carbs, fat) for each planned day plus the weekly total and the average per planned day -- use this to answer "how many calories a day is this plan averaging" or check it hits a protein target.

    View tool JSON
    {
      "name": "get-week-nutrition-summary",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get per-serving nutrition (calories, protein, carbs, fat) for each planned day plus the weekly total and the average per planned day -- use this to answer \"how many calories a day is this plan averaging\" or check it hits a protein target.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    add-recipe-to-planAction

    Assign a recipe to a day of the week. Fails with an explanation if the recipe conflicts with active dietary preferences unless force is true. Automatically refreshes the shopping list.

    View tool JSON
    {
      "name": "add-recipe-to-plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Assign a recipe to a day of the week. Fails with an explanation if the recipe conflicts with active dietary preferences unless force is true. Automatically refreshes the shopping list.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "day": {
            "type": "string",
            "enum": [
              "Mon",
              "Tue",
              "Wed",
              "Thu",
              "Fri",
              "Sat",
              "Sun"
            ],
            "description": "Day of the week to plan."
          },
          "recipeId": {
            "type": "string",
            "description": "Recipe id to assign, from search-recipes or get-recipe."
          },
          "servings": {
            "type": "number",
            "description": "Servings to cook; defaults to the recipe's normal serving size."
          },
          "force": {
            "type": "boolean",
            "description": "Set true to add the recipe even if it conflicts with dietary preferences."
          }
        },
        "required": [
          "day",
          "recipeId"
        ]
      },
      "page": "/"
    }
    remove-recipe-from-planAction

    Clear whatever recipe is assigned to a given day of the week. Automatically refreshes the shopping list.

    View tool JSON
    {
      "name": "remove-recipe-from-plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Clear whatever recipe is assigned to a given day of the week. Automatically refreshes the shopping list.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "day": {
            "type": "string",
            "enum": [
              "Mon",
              "Tue",
              "Wed",
              "Thu",
              "Fri",
              "Sat",
              "Sun"
            ]
          }
        },
        "required": [
          "day"
        ]
      },
      "page": "/"
    }
    plan-weekAction

    Automatically fill in the meal plan for multiple days at once under a set of constraints, instead of calling add-recipe-to-plan repeatedly. Always respects active dietary preferences (never overrides them). By default only fills empty days, avoids repeating a recipe already used that week, and -- if a weekly budget is set -- skips a day rather than exceed it. Returns which days were planned and, for any day that couldn't be filled, why.

    View tool JSON
    {
      "name": "plan-week",
      "kind": "act",
      "impl": "imperative",
      "description": "Automatically fill in the meal plan for multiple days at once under a set of constraints, instead of calling add-recipe-to-plan repeatedly. Always respects active dietary preferences (never overrides them). By default only fills empty days, avoids repeating a recipe already used that week, and -- if a weekly budget is set -- skips a day rather than exceed it. Returns which days were planned and, for any day that couldn't be filled, why.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "days": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Mon",
                "Tue",
                "Wed",
                "Thu",
                "Fri",
                "Sat",
                "Sun"
              ]
            },
            "description": "Days to plan; defaults to all 7."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "vegetarian",
                "vegan",
                "glutenFree",
                "dairyFree",
                "nutFree",
                "quick",
                "budget"
              ]
            },
            "description": "Require all of these tags on every recipe chosen."
          },
          "maxPrepMinutes": {
            "type": "number",
            "description": "Only consider recipes that take this many minutes or less."
          },
          "avoidRepeats": {
            "type": "boolean",
            "description": "Don't reuse a recipe already planned elsewhere this week. Defaults to true."
          },
          "onlyEmptyDays": {
            "type": "boolean",
            "description": "Only fill days with no recipe assigned yet. Defaults to true."
          },
          "respectBudget": {
            "type": "boolean",
            "description": "Skip a day rather than exceed the weekly budget, if one is set. Defaults to true."
          },
          "maxCaloriesPerServing": {
            "type": "number",
            "description": "Only consider recipes at or under this many calories per serving."
          },
          "minProteinPerServing": {
            "type": "number",
            "description": "Only consider recipes with at least this many grams of protein per serving."
          },
          "prioritizeExpiring": {
            "type": "boolean",
            "description": "Prefer recipes that use pantry items expiring soon, to reduce food waste. Defaults to false (prefers pantry match generally)."
          }
        }
      },
      "page": "/"
    }
    get-budget-statusAnswer

    Get the weekly grocery budget (if set), the meal plan's current estimated cost, and how much room is left.

    View tool JSON
    {
      "name": "get-budget-status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the weekly grocery budget (if set), the meal plan's current estimated cost, and how much room is left.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    set-weekly-budgetAction

    Set (or clear, with amount: null) the household's target weekly grocery budget in dollars.

    View tool JSON
    {
      "name": "set-weekly-budget",
      "kind": "act",
      "impl": "imperative",
      "description": "Set (or clear, with amount: null) the household's target weekly grocery budget in dollars.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": [
              "number",
              "null"
            ],
            "description": "Non-negative dollar amount, or null to clear the budget."
          }
        },
        "required": [
          "amount"
        ]
      },
      "page": "/"
    }
    get-pantryAnswer

    List pantry staples the household is tracking and whether each is currently in stock.

    View tool JSON
    {
      "name": "get-pantry",
      "kind": "answer",
      "impl": "imperative",
      "description": "List pantry staples the household is tracking and whether each is currently in stock.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    update-pantry-itemAction

    Mark a pantry item as in stock or needed, and/or set when it expires. Items marked 'have' are excluded from the generated shopping list even if a planned recipe calls for them. Fields omitted are left unchanged.

    View tool JSON
    {
      "name": "update-pantry-item",
      "kind": "act",
      "impl": "imperative",
      "description": "Mark a pantry item as in stock or needed, and/or set when it expires. Items marked 'have' are excluded from the generated shopping list even if a planned recipe calls for them. Fields omitted are left unchanged.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Ingredient name, e.g. \"olive oil\"."
          },
          "have": {
            "type": "boolean",
            "description": "true if currently stocked at home. Omit to leave unchanged."
          },
          "expiresOn": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO date string (e.g. \"2026-09-05\") this item expires on, or null to clear it. Omit to leave unchanged."
          }
        },
        "required": [
          "name"
        ]
      },
      "page": "/"
    }
    get-expiring-soonAnswer

    List pantry items that are on hand and expire within the given number of days (default 3), soonest first -- use this to plan meals that use them up and reduce food waste. A negative daysUntilExpiry means already expired.

    View tool JSON
    {
      "name": "get-expiring-soon",
      "kind": "answer",
      "impl": "imperative",
      "description": "List pantry items that are on hand and expire within the given number of days (default 3), soonest first -- use this to plan meals that use them up and reduce food waste. A negative daysUntilExpiry means already expired.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "withinDays": {
            "type": "number",
            "description": "Expiry window in days. Defaults to 3."
          }
        }
      },
      "page": "/"
    }
    get-shopping-listAnswer

    Get the current shopping list: ingredients needed for the week's planned recipes, minus what's already in the pantry.

    View tool JSON
    {
      "name": "get-shopping-list",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get the current shopping list: ingredients needed for the week's planned recipes, minus what's already in the pantry.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    regenerate-shopping-listAction

    Recompute the shopping list from the current meal plan and pantry state. Usually unnecessary since other tools auto-refresh it, but useful to force a recheck.

    View tool JSON
    {
      "name": "regenerate-shopping-list",
      "kind": "act",
      "impl": "imperative",
      "description": "Recompute the shopping list from the current meal plan and pantry state. Usually unnecessary since other tools auto-refresh it, but useful to force a recheck.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    toggle-shopping-itemAction

    Check or uncheck an item on the shopping list, e.g. after it's been bought.

    View tool JSON
    {
      "name": "toggle-shopping-item",
      "kind": "act",
      "impl": "imperative",
      "description": "Check or uncheck an item on the shopping list, e.g. after it's been bought.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "unit": {
            "type": "string",
            "description": "Optional unit to disambiguate items with the same name."
          },
          "checked": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "checked"
        ]
      },
      "page": "/"
    }
    get-recent-activityAnswer

    Get a log of recent actions taken on this plan by either the human or an agent, most recent first.

    View tool JSON
    {
      "name": "get-recent-activity",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a log of recent actions taken on this plan by either the human or an agent, most recent first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "description": "Max entries to return, defaults to 10."
          }
        }
      },
      "page": "/"
    }
    undo-last-actionAction

    Revert the single most recent state-changing action (by either the human or an agent) -- plan changes, pantry edits, dietary/budget changes, or shopping-list edits. Only one level deep and there is no redo, so check get-recent-activity first if you're unsure what it would undo. Fails if there's nothing to undo.

    View tool JSON
    {
      "name": "undo-last-action",
      "kind": "act",
      "impl": "imperative",
      "description": "Revert the single most recent state-changing action (by either the human or an agent) -- plan changes, pantry edits, dietary/budget changes, or shopping-list edits. Only one level deep and there is no redo, so check get-recent-activity first if you're unsure what it would undo. Fails if there's nothing to undo.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }