SAVORDISH
What this MCP does
Supports recipe discovery, meal planning, nutrition analysis, cooking guidance, recipe scaling, and grocery-list generation with Instacart links.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['amount', 'fromUnit', 'toUnit'], 'properties': {'amount': {'type': 'number', 'minimum': 0, 'description': 'Amount to convert (e.g. 2.5)'}, 'toUnit': {'type': 'string', 'maxLength': 30, 'description': 'Unit to convert to'}, 'fromUnit': {'type': 'string', 'maxLength': 30, 'description': "Unit to convert from (e.g. 'cups', 'tbsp', 'oz', 'g', 'ml', 'tsp', 'lb', 'kg')"}, 'ingredient': {'type': 'string', 'maxLength': 100, 'description': "Optional ingredient for weight/volume conversions (e.g. 'flour', 'sugar', 'butter') â\x80\x94 different ingredients have different densities"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ingredient'], 'properties': {'ingredient': {'type': 'string', 'maxLength': 100, 'description': "The ingredient you need a substitute for (e.g. 'fish sauce', 'butter', 'eggs', 'soy sauce')"}, 'dietaryNeed': {'type': 'string', 'maxLength': 100, 'description': "Specific dietary need for the substitution (e.g. 'vegan', 'dairy-free', 'gluten-free', 'nut-free', 'low-sodium')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic'], 'properties': {'topic': {'type': 'string', 'maxLength': 100, 'description': "Cooking topic â\x80\x94 ingredient, technique, dish, or equipment (e.g. 'knife skills', 'making pho broth', 'fermentation', 'grilling', 'wok cooking', 'baking bread')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to get meal prep tips for (e.g. 'chicken-pho')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dish'], 'properties': {'dish': {'type': 'string', 'maxLength': 200, 'description': "Dish or cuisine to pair beverages with (e.g. 'grilled steak', 'Thai curry', 'seafood pasta')"}, 'beverageType': {'enum': ['wine', 'beer', 'cocktail', 'non-alcoholic', 'all'], 'type': 'string', 'default': 'all', 'description': 'Type of beverage pairing'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'minRecipes': {'type': 'number', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'Only show cuisines with at least this many recipes (default 1)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'number', 'default': 7, 'maximum': 14, 'minimum': 1, 'description': 'Number of days to plan meals for (1-14, default 7)'}, 'mealsPerDay': {'type': 'number', 'default': 3, 'maximum': 5, 'minimum': 1, 'description': 'Number of meals per day to plan (1-5, default 3 for breakfast/lunch/dinner)'}, 'preferences': {'type': 'string', 'maxLength': 200, 'description': "Dietary preferences, cuisine focus, or constraints (e.g. 'Mediterranean', 'low-carb', 'family-friendly', 'under 30 minutes', 'vegetarian')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to analyze (e.g. 'chicken-pho', 'caesar-salad')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlugs'], 'properties': {'recipeSlugs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 5, 'minItems': 2, 'description': "Array of 2-5 recipe slugs to compare nutritionally (e.g. ['chicken-pho', 'beef-pho', 'veggie-pho'])"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cuisine': {'type': 'string', 'maxLength': 100, 'description': "Preferred cuisine style (e.g. 'mediterranean', 'asian')"}, 'maxCarbs': {'type': 'number', 'maximum': 600, 'minimum': 0, 'description': 'Maximum daily carbs in grams (e.g. 50 for keto, 150 for low-carb)'}, 'minProtein': {'type': 'number', 'maximum': 300, 'minimum': 0, 'description': 'Minimum daily protein target in grams (e.g. 120 for athletic, 150 for bodybuilding)'}, 'targetCalories': {'type': 'number', 'default': 2000, 'maximum': 5000, 'minimum': 800, 'description': 'Target total daily calories (800-5000, default 2000)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum results to return (1-20, default 10)'}, 'maxFat': {'type': 'number', 'maximum': 200, 'minimum': 0, 'description': 'Maximum grams of fat per serving (e.g. 15 for low-fat)'}, 'cuisine': {'type': 'string', 'maxLength': 100, 'description': "Optional cuisine filter (e.g. 'italian', 'asian')"}, 'maxCarbs': {'type': 'number', 'maximum': 500, 'minimum': 0, 'description': 'Maximum grams of carbs per serving (e.g. 20 for low-carb/keto)'}, 'minFiber': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum grams of fiber per serving (e.g. 5 for high-fiber)'}, 'minProtein': {'type': 'number', 'maximum': 200, 'minimum': 0, 'description': 'Minimum grams of protein per serving (e.g. 25 for high-protein)'}, 'maxCaloriesPerServing': {'type': 'number', 'maximum': 2000, 'minimum': 50, 'description': 'Maximum calories per serving (e.g. 400 for a light meal, 600 for a moderate meal)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'goal': {'enum': ['lower-calorie', 'higher-protein', 'lower-carb', 'lower-fat', 'higher-fiber', 'general'], 'type': 'string', 'default': 'general', 'description': 'Health optimization goal: lower-calorie, higher-protein, lower-carb, lower-fat, higher-fiber, or general'}, 'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to get healthier suggestions for (e.g. 'mac-and-cheese', 'fried-chicken')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ingredient'], 'properties': {'ingredient': {'type': 'string', 'maxLength': 100, 'description': "Ingredient name to look up (e.g. 'chicken breast', 'avocado', 'quinoa', 'salmon', 'olive oil')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlugs'], 'properties': {'recipeSlugs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 10, 'minItems': 1, 'description': "Array of recipe slugs to score as a meal or plan (e.g. ['oatmeal-bowl', 'chicken-salad', 'salmon-dinner'])"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'section': {'enum': ['all', 'features', 'pricing', 'platforms', 'integrations'], 'type': 'string', 'default': 'all', 'description': "Which section to return: 'all', 'features', 'pricing', 'platforms', or 'integrations'"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['theme'], 'properties': {'limit': {'type': 'number', 'default': 8, 'maximum': 20, 'minimum': 1, 'description': 'Number of recipes to return'}, 'theme': {'enum': ['date-night', 'comfort-food', 'quick-weeknight', 'party-appetizers', 'one-pot', 'kid-friendly', 'meal-prep', 'brunch', 'game-day', 'healthy-lunch'], 'type': 'string', 'description': 'Collection theme to browse'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlugs'], 'properties': {'recipeSlugs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 5, 'minItems': 2, 'description': "Array of 2-5 recipe slugs to compare (e.g. ['chicken-pho', 'beef-pho'])"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ingredients'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results (1-50, default 10)'}, 'matchAll': {'type': 'boolean', 'default': False, 'description': 'If true, only return recipes containing ALL listed ingredients. If false (default), return recipes matching ANY ingredient.'}, 'ingredients': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 10, 'minItems': 1, 'description': "Array of ingredients to search for (e.g. ['chicken', 'rice', 'garlic'])"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slugOrId'], 'properties': {'slugOrId': {'type': 'string', 'maxLength': 200, 'description': "Recipe URL slug (e.g. 'easy-mediterranean-chickpea-salad') or UUID identifier"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['diet'], 'properties': {'diet': {'type': 'string', 'maxLength': 100, 'description': "Dietary requirement to filter by (e.g. 'vegan', 'gluten-free', 'keto', 'dairy-free', 'paleo', 'low-carb', 'vegetarian')"}, 'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results (1-50, default 10)'}, 'cuisine': {'type': 'string', 'maxLength': 100, 'description': "Optional cuisine filter to combine with dietary requirement (e.g. 'italian', 'thai')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to get nutrition info for (e.g. 'chicken-pho', 'caesar-salad')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of results (1-20, default 10)'}, 'mealType': {'type': 'string', 'maxLength': 50, 'description': 'Optional meal type filter: breakfast, lunch, dinner, snack, dessert'}, 'maxMinutes': {'type': 'number', 'default': 30, 'maximum': 120, 'minimum': 5, 'description': 'Maximum total cooking time in minutes (5-120, default 30)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cuisine': {'type': 'string', 'maxLength': 100, 'description': "Optional cuisine filter (e.g. 'italian', 'vietnamese')"}, 'mealType': {'type': 'string', 'maxLength': 50, 'description': 'Optional meal type filter: breakfast, lunch, dinner, snack, dessert'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of trending recipes to return (1-20, default 10)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cuisine'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results to return (1-50, default 10)'}, 'cuisine': {'type': 'string', 'maxLength': 100, 'description': "Cuisine type to filter by (e.g. 'vietnamese', 'italian', 'mexican', 'thai', 'indian', 'japanese', 'korean', 'french', 'chinese', 'mediterranean')"}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug', 'targetServings'], 'properties': {'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to scale (e.g. 'chicken-pho')"}, 'targetServings': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Desired number of servings (1-100)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results to return (1-50, default 10)'}, 'query': {'type': 'string', 'maxLength': 200, 'description': "Search query â\x80\x94 keyword, ingredient, dish name, cuisine, or dietary preference (e.g. 'chicken pho', 'vegan tacos', 'gluten-free dessert', '30 minute dinner')"}, 'mealType': {'type': 'string', 'maxLength': 50, 'description': 'Filter by meal type: breakfast, lunch, dinner, snack, dessert, appetizer, side, or drink'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['season'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Number of recipes to return'}, 'season': {'enum': ['spring', 'summer', 'fall', 'winter'], 'type': 'string', 'description': 'Season to find recipes for'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlugs'], 'properties': {'recipeSlugs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 20, 'minItems': 1, 'description': "Array of recipe slugs to generate the grocery list from (e.g. ['chicken-pho', 'banh-mi-sandwich'])"}, 'servingsMultiplier': {'type': 'number', 'default': 1, 'maximum': 10, 'minimum': 0.5, 'description': 'Multiply all ingredient quantities by this factor (e.g. 2 for double portions, 0.5 for half)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recipeSlug'], 'properties': {'postalCode': {'type': 'string', 'maxLength': 10, 'description': "Postal/ZIP code for delivery area and store availability (e.g. '98101', '10001')"}, 'recipeSlug': {'type': 'string', 'maxLength': 200, 'description': "Recipe slug to shop ingredients for (e.g. 'chicken-pho', 'pad-thai')"}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
Grabblist
Saves, organizes, searches, compares, and shares static snapshots of web products and other finds in collections and wishlists.
Wedyesday — wedding planning
Supports wedding planning through checklists, budgets, regional cost guides, vendor searches, guest summaries, and workspace link…
price-tracker-drop-alert-watch
Checks product prices, tracks price histories, refreshes monitored items, and reports target-price or percentage-drop alerts.
Latido — wedding vendors & planning (Hungary)
Searches Hungarian wedding vendors and venues, checks published availability, estimates wedding budgets, and generates planning c…
Cancel My Sub
Provides cancellation instructions and reminders for covered subscriptions and identifies likely subscription charges.
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Calcgrid
Runs general-purpose calculators for loans, dates, lunar and solar terms, time zones, units, and a larger catalog of specialized …
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…