suggest_christmas_menu
Generate a complete Christmas menu with starter, main course, and dessert suggestions for holiday meal planning.
Instructions
Suggests a complete Christmas menu (starter, main course, dessert).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- main.py:177-188 (handler)The main handler function for the 'suggest_christmas_menu' tool. It filters Christmas recipes by category and randomly selects one from each (Entrée, Plat principal, Dessert) to form a menu.async def suggest_christmas_menu() -> Dict[str, Dict]: """Suggère un menu de Noël complet (entrée, plat, dessert).""" recipes = christmas_recipes() entrees = [r for r in recipes if r.category == "Entrée"] plats = [r for r in recipes if r.category == "Plat principal"] desserts = [r for r in recipes if r.category == "Dessert"] return { "entree": random.choice(entrees).model_dump() if entrees else None, "plat_principal": random.choice(plats).model_dump() if plats else None, "dessert": random.choice(desserts).model_dump() if desserts else None, }
- main.py:173-176 (registration)MCP tool registration decorator defining the name and description of the 'suggest_christmas_menu' tool.@mcp.tool( name="suggest_christmas_menu", description="Suggests a complete Christmas menu (starter, main course, dessert).", )
- main.py:50-57 (schema)Pydantic model used for defining the structure of individual recipes in the Christmas menu output.class Recipe(BaseModel): name: str category: str # "Entrée", "Plat principal", "Dessert" servings: int ingredients: Dict[str, str] # e.g., {"chocolat noir": "200g"} instructions: List[str] wine_pairing: Optional[str] = None
- main.py:99-140 (helper)Helper function providing the list of hardcoded Christmas recipes used by the tool to select menu items.def christmas_recipes() -> List[Recipe]: """Liste de recettes de Noël.""" return [ Recipe( name="Dinde de Noël", category="Plat principal", servings=8, ingredients={"dinde": "1", "marrons": "500g", "beurre": "100g", "sel": "1 pincée", "poivre": "1 pincée"}, instructions=[ "Préchauffer le four à 180°C.", "Farcir la dinde avec les marrons.", "Badigeonner de beurre, saler et poivrer.", "Enfourner pour 3 heures.", ], wine_pairing="Bourgogne rouge", ), Recipe( name="Bûche de Noël", category="Dessert", servings=6, ingredients={"chocolat noir": "200g", "beurre": "100g", "sucre": "150g", "oeufs": "4", "farine": "50g"}, instructions=[ "Faire fondre le chocolat avec le beurre.", "Ajouter le sucre, les oeufs et la farine.", "Verser sur une plaque et cuire 10 minutes.", "Rouler la bûche et la laisser refroidir.", ], wine_pairing="Champagne", ), Recipe( name="Saumon fumé sur blinis", category="Entrée", servings=4, ingredients={"saumon fumé": "4 tranches", "blinis": "8", "crème fraîche": "100g", "ciboulette": "1 botte"}, instructions=[ "Tartiner les blinis de crème fraîche.", "Ajouter une tranche de saumon fumé.", "Ciseler la ciboulette et en parsemer les blinis.", ], wine_pairing="Sancerre", ), ]