{"service":"Recipe Manager","protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":true}},"tools":[{"name":"get_user_profile","description":"Get comprehensive user profile including preferences, household size, dietary goals/notes, and constraints for personalized meal planning. Returns household characteristics (adults, children, goals/preferences), dietary preferences (allergies, likes, dislikes, restrictions), and preference summaries.","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"add_preference","description":"Add a new food preference to the database","inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["like","dislike","allergy","dietary"],"description":"Category of preference"},"item":{"type":"string","description":"Food item or dietary restriction"},"level":{"type":"string","enum":["required","preferred","avoid"],"description":"Preference level"},"notes":{"type":"string","description":"Optional notes"}},"required":["category","item","level"]}},{"name":"add_recipe","description":"Add a new recipe to the database","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Recipe name"},"instructions":{"type":"string","description":"Cooking instructions"},"time_minutes":{"type":"integer","description":"Preparation time in minutes"},"servings":{"type":"integer","description":"Number of servings (default: 4)"},"ingredients":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"}},"required":["name","quantity","unit"]}}},"required":["name","instructions","time_minutes","ingredients"]}},{"name":"get_recipe","description":"Get detailed information about a specific recipe","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Name of the recipe"}},"required":["recipe_name"]}},{"name":"get_all_recipes","description":"Get lightweight list of all recipes (name, short_id, rating only). Use get_recipe for full details.","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"edit_recipe","description":"Edit an existing recipe. Can update instructions, time, servings, ingredients, and optionally rename the recipe.","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Current name of recipe to edit"},"instructions":{"type":"string","description":"Updated cooking instructions"},"time_minutes":{"type":"integer","description":"Updated preparation time"},"servings":{"type":"integer","description":"Updated number of servings"},"ingredients":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"}},"required":["name","quantity","unit"]}},"new_name":{"type":"string","description":"Optional new name for the recipe (if renaming)"}},"required":["recipe_name","instructions","time_minutes","ingredients"]}},{"name":"edit_recipe_by_id","description":"Edit an existing recipe by short ID with improved error messages. Allows partial updates and recipe renaming. Short IDs are human-friendly (e.g., R123A).","inputSchema":{"type":"object","properties":{"recipe_id":{"type":"string","description":"Short ID of the recipe to edit (e.g., R123A)"},"name":{"type":"string","description":"New name for the recipe (optional)"},"instructions":{"type":"string","description":"Updated cooking instructions (optional)"},"time_minutes":{"type":"integer","description":"Updated preparation time (optional)"},"servings":{"type":"integer","description":"Updated number of servings (optional)"},"ingredients":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"}},"required":["name","quantity","unit"]},"description":"Updated list of ingredients (optional)"}},"required":["recipe_id"]}},{"name":"get_recipe_id","description":"Get the short ID of a recipe by name for precise editing","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Name of the recipe"}},"required":["recipe_name"]}},{"name":"execute_recipe","description":"Execute a recipe by removing required ingredients from pantry","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Name of recipe to execute"}},"required":["recipe_name"]}},{"name":"get_pantry_contents","description":"Get current pantry inventory","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"manage_pantry_item","description":"Add or remove an item from the pantry","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["add","remove"],"description":"Action to perform"},"item_name":{"type":"string","description":"Name of the item"},"quantity":{"type":"number","description":"Amount to add or remove"},"unit":{"type":"string","description":"Unit of measurement"},"notes":{"type":"string","description":"Optional notes"}},"required":["action","item_name","quantity","unit"]}},{"name":"get_week_plan","description":"Get the meal plan for the next 7 days","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"get_grocery_list","description":"Get grocery items needed for the coming week's meal plan","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"set_recipe_for_date","description":"Set a recipe for a specific date in the meal plan","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Name of the recipe"},"meal_date":{"type":"string","format":"date","description":"Date for the meal (YYYY-MM-DD)"}},"required":["recipe_name","meal_date"]}},{"name":"list_units","description":"List all available units of measurement with their conversion factors and base units","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"add_custom_unit","description":"Add or update a custom measurement unit with conversion to base units","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the unit (e.g., 'cup', 'tablespoon', 'can')"},"base_unit":{"type":"string","enum":["ml","g","count"],"description":"Base unit type: ml (volume), g (weight), count (discrete items)"},"size":{"type":"number","description":"Size of this unit in base units (e.g., 250 for '1 cup = 250ml')"}},"required":["name","base_unit","size"]}},{"name":"delete_custom_unit","description":"Delete a custom measurement unit (cannot delete if unit is currently in use)","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the unit to delete"}},"required":["name"]}},{"name":"get_preferred_units","description":"Get the household's preferred default units for volume, weight, and count measurements","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"add_pantry_item","description":"Add an item to the pantry","inputSchema":{"type":"object","properties":{"item_name":{"type":"string","description":"Name of the item"},"quantity":{"type":"number","description":"Quantity to add"},"unit":{"type":"string","description":"Unit of measurement"},"notes":{"type":"string","description":"Optional notes"}},"required":["item_name","quantity","unit"]}},{"name":"remove_pantry_item","description":"Remove an item from the pantry","inputSchema":{"type":"object","properties":{"item_name":{"type":"string","description":"Name of the item"},"quantity":{"type":"number","description":"Quantity to remove"},"unit":{"type":"string","description":"Unit of measurement"}},"required":["item_name","quantity","unit"]}},{"name":"get_food_preferences","description":"Get all food preferences","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"plan_meals","description":"Plan meals for specified dates","inputSchema":{"type":"object","properties":{"meal_assignments":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Date in YYYY-MM-DD format"},"recipe_name":{"type":"string","description":"Recipe name"}},"required":["date","recipe_name"]},"description":"Array of meal assignments"}},"required":["meal_assignments"]}},{"name":"get_meal_plan","description":"Get meal plan for specified period","inputSchema":{"type":"object","properties":{"start_date":{"type":"string","description":"Start date in YYYY-MM-DD format"},"days":{"type":"integer","description":"Number of days (default: 7)"}},"required":["start_date"]}},{"name":"clear_meal_plan","description":"Clear meal plan for specified date range","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"]}},{"name":"generate_grocery_list","description":"Generate grocery list for upcoming meal plan","inputSchema":{"type":"object","properties":{"start_date":{"type":"string","description":"Start date in YYYY-MM-DD format"},"days":{"type":"integer","description":"Number of days (default: 7)"}},"required":[]}},{"name":"search_recipes","description":"Search recipes with filters","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"},"max_prep_time":{"type":"integer","description":"Maximum preparation time in minutes"},"min_rating":{"type":"integer","description":"Minimum rating (1-5)"}},"required":[]}},{"name":"suggest_recipes_from_pantry","description":"Suggest recipes based on available pantry items","inputSchema":{"type":"object","properties":{},"required":[]}},{"name":"check_recipe_feasibility","description":"Check if a recipe can be made with current pantry items","inputSchema":{"type":"object","properties":{"recipe_name":{"type":"string","description":"Recipe name to check"}},"required":["recipe_name"]}}]}