Skip to content
All Skills

Weekly Meal Planner & Grocery List

Generates a personalized weekly meal plan based on dietary preferences and calorie targets via Brave Search, then produces a consolidated grocery list with estimated costs. Prerequisites: brave-search MCP, python3.

Health & Wellness|v1|Updated 5/18/2026
MCP get_skill({ skillId: "weekly-meal-planner-grocery-list-0dc18130" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# Weekly Meal Planner & Grocery List

Create a full weekly meal plan personalized to your diet, then generate a consolidated grocery list with estimated costs.

## When to Use

- "Plan my meals for next week"
- "Create a grocery list for 5 days of healthy eating"
- "I need a 2000 calorie/day meal plan — high protein, no gluten"

## Requirements

- **Brave Search MCP** for recipes and nutrition data
- **python3** for calorie/macro calculations

## Workflow

### Step 1 — Collect Dietary Profile

- **Calorie target** (or let me calculate based on age/weight/activity)
- **Dietary restrictions** (vegetarian, vegan, keto, gluten-free, dairy-free, halal, kosher)
- **Allergies** (nuts, shellfish, soy, etc.)
- **Cooking skill** (beginner, intermediate, advanced)
- **Time budget** (15-min meals, meal prep OK, slow cooker, etc.)
- **Household size** (servings per meal)
- **Budget** (per week)

### Step 2 — Calculate Macro Targets

```bash
python3 << 'PYEOF'
calories = {DAILY_CALORIES}

# Standard macro split (adjustable)
protein_pct = 0.30  # 30%
carb_pct = 0.40     # 40%
fat_pct = 0.30      # 30%

protein_g = (calories * protein_pct) / 4  # 4 cal/g
carb_g = (calories * carb_pct) / 4
fat_g = (calories * fat_pct) / 9  # 9 cal/g

print(f"Daily targets: {calories} cal")
print(f"  Protein: {protein_g:.0f}g ({protein_pct*100:.0f}%)")
print(f"  Carbs:   {carb_g:.0f}g ({carb_pct*100:.0f}%)")
print(f"  Fat:     {fat_g:.0f}g ({fat_pct*100:.0f}%)")
PYEOF
```

### Step 3 — Search for Recipes

```
brave_web_search: "easy {DIET} {MEAL_TYPE} recipes under {CALORIES} calories {YEAR}"
brave_web_search: "{DIET} meal prep recipes 30 minutes high protein"
brave_web_search: "budget {DIET} dinner recipes family"
```

For each recipe, extract: name, calories, prep time, ingredients, servings.

### Step 4 — Build Weekly Plan

```markdown
# Weekly Meal Plan — Week of {DATE}
🎯 Target: {CALORIES} cal/day | {DIET} | {HOUSEHOLD_SIZE} servings

## Monday
| Meal | Recipe | Calories | Protein | Prep |
|------|--------|----------|---------|------|
| Breakfast | Greek yogurt parfait | 350 | 25g | 5 min |
| Lunch | Chicken quinoa bowl | 550 | 40g | 20 min |
| Dinner | Salmon with roasted vegetables | 600 | 35g | 30 min |
| Snack | Apple + almond butter | 250 | 7g | 2 min |
| **Total** | | **1750** | **107g** | |

## Tuesday
...

## Meal Prep Sunday
Pre-cook these to save time:
1. Cook 2 cups quinoa (use Mon, Wed)
2. Roast sheet pan of vegetables (use Mon, Thu)
3. Grill 4 chicken breasts (use Tue, Wed, Fri)
```

### Step 5 — Generate Grocery List

```bash
python3 << 'PYEOF'
from collections import defaultdict

# Consolidate ingredients across all meals
ingredients = defaultdict(lambda: {"amount": 0, "unit": "", "est_cost": 0})

# Example (populated from meal plan)
ingredients["chicken breast"] = {"amount": 2, "unit": "lbs", "est_cost": 8.00}
ingredients["quinoa"] = {"amount": 1, "unit": "lb", "est_cost": 5.00}
# ... all ingredients

total = sum(i["est_cost"] for i in ingredients.values())
print(f"Estimated grocery cost: ${total:.2f}")
PYEOF
```

Output:
```markdown
## 🛒 Grocery List

### Produce
- [ ] Spinach (2 bags) — ~$5
- [ ] Bell peppers (4) — ~$4
- [ ] Sweet potatoes (3) — ~$3

### Protein
- [ ] Chicken breast (2 lbs) — ~$8
- [ ] Salmon fillets (4) — ~$14
- [ ] Greek yogurt (32 oz) — ~$6

### Grains & Pantry
- [ ] Quinoa (1 lb) — ~$5
- [ ] Brown rice (2 lbs) — ~$3

### 💰 Estimated Total: ~${TOTAL}
```

### Step 6 — Save Files

```bash
mkdir -p outputs/health
cat > "outputs/health/meal-plan-{DATE}.md" << 'EOF'
{MEAL_PLAN}
EOF
cat > "outputs/health/grocery-list-{DATE}.md" << 'EOF'
{GROCERY_LIST}
EOF
```

## Important Rules

- Use Brave Search for real recipes with verified nutrition info
- Never provide medical dietary advice — suggest consulting a dietitian for medical conditions
- Account for leftovers and reuse ingredients across meals to reduce waste
- Flag common allergens in each recipe

## Example Prompts

- "Plan 5 days of high-protein meals, 2000 cal/day, gluten-free"
- "Create a budget grocery list for a week of vegetarian meals for 2 people"
- "Meal prep plan for the week — I have 2 hours on Sunday"
#health#meal-planning#grocery#brave-searchbrave-searchpython3