Meal Planning
Tool Mapping
| Task |
Tool |
Notes |
| Search recipes |
get_recipes |
By name, tag, category |
| Get recipe details |
get_recipe_detailed |
Full ingredients, instructions, nutrition, prep/cook time |
| Create meal plan |
create_mealplan |
Assign recipes to dates and meal slots |
| View meal plan |
get_all_mealplans, get_todays_mealplan |
Retrieve plan for a date range or today |
| Shopping list |
get_shopping_lists, add_to_shopping_list, add_recipe_to_shopping_list |
Generate from meal plan |
| Manage tags/categories |
list_tags, list_categories |
For filtering and organization |
| Random meal suggestion |
get_random_meal |
Requires date and entry_type |
Weekly Meal Plan Creation Workflow
Step 1: Gather Constraints
Before building a plan, determine:
- Number of people eating (portion scaling)
- Days to plan (typically 5-7 dinners, optionally lunches)
- Time constraints per day (weeknight max prep time vs weekend cooking)
- Dietary restrictions or preferences active this week
- Ingredients already on hand (to use up)
- Budget target for the week (if applicable)
Step 2: Select Recipes
Apply these balancing rules when choosing recipes for the week:
Protein rotation — Do not repeat the same primary protein on consecutive days:
- Cycle through: chicken, fish/seafood, legumes/lentils, eggs, paneer/tofu, lamb/mutton, pork
- Aim for at least 2 vegetarian dinners per week
Cuisine variety — Spread across at least 3 cuisine types per week:
- Indian (North/South), East Asian, Mediterranean, Mexican, Continental, etc.
Effort distribution — Match recipe complexity to day-of-week energy:
- Monday-Thursday: 30 min or less active prep
- Friday: Flexible (takeout night or simple)
- Saturday-Sunday: Can handle 45-60 min recipes, batch cooking
Freshness sequencing — Schedule ingredients by perishability:
- Days 1-3: Fresh fish, leafy greens, herbs
- Days 4-5: Root vegetables, frozen proteins, pantry meals
- Days 6-7: Batch-cooked leftovers, pantry/freezer meals
Step 3: Build the Plan
- Search Mealie for candidate recipes matching the constraints
- Assign each recipe to a date and meal type (breakfast/lunch/dinner)
- Use
create_mealplan for each slot
- Review the assembled plan for balance before presenting
Step 4: Present for Approval
Format the plan as a table:
| Day |
Dinner |
Prep Time |
Protein |
Cuisine |
| Mon |
Dal Tadka + Rice |
25 min |
Lentils |
Indian |
| Tue |
Salmon Teriyaki + Stir-fry Veg |
30 min |
Fish |
Japanese |
| ... |
... |
... |
... |
... |
Include a notes row for any prep-ahead tasks (e.g., "Marinate chicken Tuesday night for Wednesday").
Recipe Search and Selection
Search Strategies
| Goal |
Approach |
| Use up specific ingredients |
Search by ingredient name, then filter by what else is needed |
| Quick weeknight meal |
Filter by tag "quick" or prep_time <= 30 min |
| Specific cuisine |
Search by category or tag (e.g., "Indian", "Thai") |
| New recipe discovery |
Browse categories not used in last 2 weeks |
| Kid-friendly |
Filter by "kid-friendly" tag |
When a Recipe Is Not in Mealie
- Ask the user for the recipe source (URL, book, verbal)
- If URL: use
create_recipe_from_url to import
- If manual: use
create_recipe with full ingredients and instructions
- Always tag and categorize the new recipe immediately after creation
Shopping List Generation
From Meal Plan
- Retrieve the week's meal plan via
get_all_mealplans
- For each recipe, pull the full ingredient list via
get_recipe_detailed
- Aggregate ingredients across all recipes:
- Combine same ingredients (e.g., "2 onions" + "1 onion" = "3 onions")
- Convert units where possible (e.g., 500ml + 250ml = 750ml)
- Subtract pantry staples the user confirms they have
- Get a target list UUID via
get_shopping_lists and add items via add_to_shopping_list
Shopping List ID Constraint
add_to_shopping_list requires a UUID list_id.
- Do not pass numeric IDs like
1; this returns a 422 uuid_parsing error.
- Always fetch valid list IDs from
get_shopping_lists first.
Shopping List Organization
Group items by store section for efficient shopping:
- Produce (fruits, vegetables, herbs)
- Dairy and eggs
- Meat and seafood
- Pantry (grains, canned goods, spices, oils)
- Frozen
- Bakery
- Other
Cost Estimation
When budget context is relevant:
- Estimate per-recipe cost based on ingredient quantities and approximate local prices
- Sum for weekly total
- Flag if weekly total exceeds budget target
- Suggest substitutions to reduce cost (e.g., chicken thighs vs breast, seasonal produce)
Dietary Considerations
Tracking Preferences
Maintain awareness of:
- Allergies (absolute restrictions — never suggest recipes containing these)
- Dietary style (vegetarian days, low-carb, etc.)
- Nutritional goals (high protein, fiber targets, etc.)
- Dislikes (strong preferences to avoid)
Nutritional Balance Checks
For each weekly plan, verify:
- Protein source variety (not the same protein > 2x per week)
- Vegetable servings (aim for 2+ different vegetables per dinner)
- Whole grain inclusion (at least 3-4 times per week)
- Not excessive in any single category (e.g., not pasta 4 nights)
Batch Cooking and Meal Prep
Weekend Prep Strategy
Identify components that can be prepped ahead on Saturday/Sunday:
- Grains: Cook rice, quinoa, or pasta in bulk (stores 4-5 days)
- Proteins: Marinate or pre-cook proteins for Monday-Wednesday
- Sauces/dressings: Make dressings, curry bases, or marinades
- Vegetables: Wash, chop, and store vegetables for quick weeknight assembly
- Legumes: Soak and cook dried beans/lentils in bulk
Leftover Integration
- Plan recipes that share a base component (e.g., roasted chicken Sunday -> chicken salad Monday -> chicken soup Tuesday)
- Identify recipes where doubling produces good freezer meals
- Tag recipes in Mealie as "freezer-friendly" or "meal-prep" for future reference
Batch Cooking Presentation
When suggesting prep tasks, format as:
| Prep Task |
Time |
Serves Meals |
| Cook 3 cups rice |
20 min |
Mon dinner, Tue lunch, Wed dinner |
| Marinate chicken thighs |
10 min |
Tue dinner |
| Make tomato-onion base |
25 min |
Wed dinner, Thu dinner |
Integration with Budget Skill
When the budgeting skill is also active:
- Pull grocery budget from Actual via actual-mcp
- Compare estimated weekly meal cost against grocery budget allocation
- Track actual grocery spend vs meal plan estimate over time
- Suggest cost-saving swaps when over budget (seasonal produce, cheaper cuts, more legume meals)
Grocy Integration (Pantry Inventory)
Source-of-truth split: Mealie owns recipes and meal plans. Grocy owns pantry inventory and stock-aware shopping lists.
Pantry-Aware Shopping Lists
- After building a meal plan, get the full ingredient list from Mealie recipes
- Use
get_stock_overview (grocy-mcp) to check current pantry stock
- Subtract items already in stock from the shopping list
- Use
get_missing_products to add items that are below minimum stock regardless of meal plan
- The combined list = (meal plan ingredients - pantry stock) + (low-stock items)
Inventory Updates After Shopping
After groceries are purchased:
- Use
add_product_to_stock to log new items with quantities and best-before dates
- Use
consume_product as items are used during cooking
Chore Integration
Use get_chores and complete_chore to track kitchen-related chores alongside meal planning:
- Fridge clean-out (weekly)
- Pantry inventory audit (monthly)
- Deep clean kitchen (bi-weekly)
Common Pitfalls
- Over-ambitious weeknight recipes — Keep Monday-Thursday to 30 min active prep max
- Ignoring leftovers — Always account for planned leftovers; do not plan 7 full fresh meals if 2-3 will yield leftovers
- Shopping list duplicates — Aggregate ingredients across recipes before generating the list
- Forgetting pantry staples — Do not add salt, oil, and common spices to every shopping list unless the user is restocking
- Rigid plans — Present the plan as a recommendation; note which days can be swapped without affecting freshness sequencing
1---2name: meal-planning3description: Meal planning and recipe management skill using Mealie. Use when: (1) Creating weekly meal plans, (2) Searching and selecting recipes, (3) Generating shopping lists, (4) Optimizing for nutrition and variety, (5) Planning batch cooking and meal prep, (6) Estimating meal costs for budget integration. Tools: mealie-mcp for all recipe and meal plan operations.4---56# Meal Planning78## Tool Mapping910| Task | Tool | Notes |11|------|------|-------|12| Search recipes | `get_recipes` | By name, tag, category |13| Get recipe details | `get_recipe_detailed` | Full ingredients, instructions, nutrition, prep/cook time |14| Create meal plan | `create_mealplan` | Assign recipes to dates and meal slots |15| View meal plan | `get_all_mealplans`, `get_todays_mealplan` | Retrieve plan for a date range or today |16| Shopping list | `get_shopping_lists`, `add_to_shopping_list`, `add_recipe_to_shopping_list` | Generate from meal plan |17| Manage tags/categories | `list_tags`, `list_categories` | For filtering and organization |18| Random meal suggestion | `get_random_meal` | Requires `date` and `entry_type` |1920## Weekly Meal Plan Creation Workflow2122### Step 1: Gather Constraints2324Before building a plan, determine:25- Number of people eating (portion scaling)26- Days to plan (typically 5-7 dinners, optionally lunches)27- Time constraints per day (weeknight max prep time vs weekend cooking)28- Dietary restrictions or preferences active this week29- Ingredients already on hand (to use up)30- Budget target for the week (if applicable)3132### Step 2: Select Recipes3334Apply these balancing rules when choosing recipes for the week:3536**Protein rotation** — Do not repeat the same primary protein on consecutive days:37- Cycle through: chicken, fish/seafood, legumes/lentils, eggs, paneer/tofu, lamb/mutton, pork38- Aim for at least 2 vegetarian dinners per week3940**Cuisine variety** — Spread across at least 3 cuisine types per week:41- Indian (North/South), East Asian, Mediterranean, Mexican, Continental, etc.4243**Effort distribution** — Match recipe complexity to day-of-week energy:44- Monday-Thursday: 30 min or less active prep45- Friday: Flexible (takeout night or simple)46- Saturday-Sunday: Can handle 45-60 min recipes, batch cooking4748**Freshness sequencing** — Schedule ingredients by perishability:49- Days 1-3: Fresh fish, leafy greens, herbs50- Days 4-5: Root vegetables, frozen proteins, pantry meals51- Days 6-7: Batch-cooked leftovers, pantry/freezer meals5253### Step 3: Build the Plan54551. Search Mealie for candidate recipes matching the constraints562. Assign each recipe to a date and meal type (breakfast/lunch/dinner)573. Use `create_mealplan` for each slot584. Review the assembled plan for balance before presenting5960### Step 4: Present for Approval6162Format the plan as a table:6364| Day | Dinner | Prep Time | Protein | Cuisine |65|-----|--------|-----------|---------|---------|66| Mon | Dal Tadka + Rice | 25 min | Lentils | Indian |67| Tue | Salmon Teriyaki + Stir-fry Veg | 30 min | Fish | Japanese |68| ... | ... | ... | ... | ... |6970Include a notes row for any prep-ahead tasks (e.g., "Marinate chicken Tuesday night for Wednesday").7172## Recipe Search and Selection7374### Search Strategies7576| Goal | Approach |77|------|----------|78| Use up specific ingredients | Search by ingredient name, then filter by what else is needed |79| Quick weeknight meal | Filter by tag "quick" or prep_time <= 30 min |80| Specific cuisine | Search by category or tag (e.g., "Indian", "Thai") |81| New recipe discovery | Browse categories not used in last 2 weeks |82| Kid-friendly | Filter by "kid-friendly" tag |8384### When a Recipe Is Not in Mealie85861. Ask the user for the recipe source (URL, book, verbal)872. If URL: use `create_recipe_from_url` to import883. If manual: use `create_recipe` with full ingredients and instructions894. Always tag and categorize the new recipe immediately after creation9091## Shopping List Generation9293### From Meal Plan94951. Retrieve the week's meal plan via `get_all_mealplans`962. For each recipe, pull the full ingredient list via `get_recipe_detailed`973. Aggregate ingredients across all recipes:98 - Combine same ingredients (e.g., "2 onions" + "1 onion" = "3 onions")99 - Convert units where possible (e.g., 500ml + 250ml = 750ml)1004. Subtract pantry staples the user confirms they have1015. Get a target list UUID via `get_shopping_lists` and add items via `add_to_shopping_list`102103### Shopping List ID Constraint104105- `add_to_shopping_list` requires a UUID `list_id`.106- Do not pass numeric IDs like `1`; this returns a `422 uuid_parsing` error.107- Always fetch valid list IDs from `get_shopping_lists` first.108109### Shopping List Organization110111Group items by store section for efficient shopping:112- Produce (fruits, vegetables, herbs)113- Dairy and eggs114- Meat and seafood115- Pantry (grains, canned goods, spices, oils)116- Frozen117- Bakery118- Other119120### Cost Estimation121122When budget context is relevant:123- Estimate per-recipe cost based on ingredient quantities and approximate local prices124- Sum for weekly total125- Flag if weekly total exceeds budget target126- Suggest substitutions to reduce cost (e.g., chicken thighs vs breast, seasonal produce)127128## Dietary Considerations129130### Tracking Preferences131132Maintain awareness of:133- Allergies (absolute restrictions — never suggest recipes containing these)134- Dietary style (vegetarian days, low-carb, etc.)135- Nutritional goals (high protein, fiber targets, etc.)136- Dislikes (strong preferences to avoid)137138### Nutritional Balance Checks139140For each weekly plan, verify:141- Protein source variety (not the same protein > 2x per week)142- Vegetable servings (aim for 2+ different vegetables per dinner)143- Whole grain inclusion (at least 3-4 times per week)144- Not excessive in any single category (e.g., not pasta 4 nights)145146## Batch Cooking and Meal Prep147148### Weekend Prep Strategy149150Identify components that can be prepped ahead on Saturday/Sunday:151- **Grains**: Cook rice, quinoa, or pasta in bulk (stores 4-5 days)152- **Proteins**: Marinate or pre-cook proteins for Monday-Wednesday153- **Sauces/dressings**: Make dressings, curry bases, or marinades154- **Vegetables**: Wash, chop, and store vegetables for quick weeknight assembly155- **Legumes**: Soak and cook dried beans/lentils in bulk156157### Leftover Integration158159- Plan recipes that share a base component (e.g., roasted chicken Sunday -> chicken salad Monday -> chicken soup Tuesday)160- Identify recipes where doubling produces good freezer meals161- Tag recipes in Mealie as "freezer-friendly" or "meal-prep" for future reference162163### Batch Cooking Presentation164165When suggesting prep tasks, format as:166167| Prep Task | Time | Serves Meals |168|-----------|------|-------------|169| Cook 3 cups rice | 20 min | Mon dinner, Tue lunch, Wed dinner |170| Marinate chicken thighs | 10 min | Tue dinner |171| Make tomato-onion base | 25 min | Wed dinner, Thu dinner |172173## Integration with Budget Skill174175When the budgeting skill is also active:176- Pull grocery budget from Actual via actual-mcp177- Compare estimated weekly meal cost against grocery budget allocation178- Track actual grocery spend vs meal plan estimate over time179- Suggest cost-saving swaps when over budget (seasonal produce, cheaper cuts, more legume meals)180181## Grocy Integration (Pantry Inventory)182183**Source-of-truth split:** Mealie owns recipes and meal plans. Grocy owns pantry inventory and stock-aware shopping lists.184185### Pantry-Aware Shopping Lists1861871. After building a meal plan, get the full ingredient list from Mealie recipes1882. Use `get_stock_overview` (grocy-mcp) to check current pantry stock1893. Subtract items already in stock from the shopping list1904. Use `get_missing_products` to add items that are below minimum stock regardless of meal plan1915. The combined list = (meal plan ingredients - pantry stock) + (low-stock items)192193### Inventory Updates After Shopping194195After groceries are purchased:1961. Use `add_product_to_stock` to log new items with quantities and best-before dates1972. Use `consume_product` as items are used during cooking198199### Chore Integration200201Use `get_chores` and `complete_chore` to track kitchen-related chores alongside meal planning:202- Fridge clean-out (weekly)203- Pantry inventory audit (monthly)204- Deep clean kitchen (bi-weekly)205206## Common Pitfalls2072081. **Over-ambitious weeknight recipes** — Keep Monday-Thursday to 30 min active prep max2092. **Ignoring leftovers** — Always account for planned leftovers; do not plan 7 full fresh meals if 2-3 will yield leftovers2103. **Shopping list duplicates** — Aggregate ingredients across recipes before generating the list2114. **Forgetting pantry staples** — Do not add salt, oil, and common spices to every shopping list unless the user is restocking2125. **Rigid plans** — Present the plan as a recommendation; note which days can be swapped without affecting freshness sequencing