Skip to main content
Glama
markswendsen-code

mcp-blueapron

README.md
# @striderlabs/mcp-blueapron

Model Context Protocol (MCP) connector for [Blue Apron](https://www.blueapron.com) meal kit delivery. Manage your subscription, browse weekly menus, select recipes, skip deliveries, and update preferences — all through Claude or any MCP-compatible AI assistant.

## Features

- **Browse menus** — see upcoming recipe options with cook times, difficulty, and dietary info
- **Select recipes** — choose which meals to receive for a delivery
- **Skip weeks** — pause a delivery without cancelling your subscription
- **View account** — subscription plan, servings, and next delivery details
- **Delivery schedule** — all upcoming deliveries with status and modify/skip availability
- **Update preferences** — dietary restrictions, allergens, cuisines, and spice level

## Prerequisites

- Node.js 18+
- A Blue Apron account with an active subscription
- Playwright Chromium (installed automatically)

## Installation

```bash
npx playwright install chromium
```

## Configuration

Set your Blue Apron credentials as environment variables:

```bash
export BLUEAPRON_EMAIL="your@email.com"
export BLUEAPRON_PASSWORD="yourpassword"
```

Session cookies are persisted to `~/.config/mcp-blueapron/session.json` so you only need to log in once per session.

## Usage with Claude Desktop

Add to your Claude Desktop MCP config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "blueapron": {
      "command": "npx",
      "args": ["@striderlabs/mcp-blueapron"],
      "env": {
        "BLUEAPRON_EMAIL": "your@email.com",
        "BLUEAPRON_PASSWORD": "yourpassword"
      }
    }
  }
}
```

## Tools

### `get_upcoming_menus`

Browse available recipes for upcoming delivery weeks.

```
What meals are available this week on Blue Apron?
```

```
Show me next week's Blue Apron menu options.
```

**Parameters:**
- `week_offset` (optional, 0-4): Week offset from current. `0` = this week, `1` = next week, etc.

---

### `select_recipes`

Choose specific recipes for a delivery.

```
Select the Spicy Chicken Tacos and the Mushroom Risotto for my delivery on 2024-03-15.
```

**Parameters:**
- `delivery_id` (required): Delivery identifier or date (YYYY-MM-DD)
- `recipes` (required): Array of `{ recipe_id, servings? }` objects

---

### `skip_week`

Skip an upcoming delivery week.

```
Skip my Blue Apron delivery for March 22nd.
```

**Parameters:**
- `delivery_id` (required): Delivery ID or date (YYYY-MM-DD) to skip

---

### `get_account`

View your account and subscription details.

```
What is my current Blue Apron subscription plan?
```

**Parameters:** None

---

### `get_delivery_schedule`

See all upcoming deliveries.

```
Show me my upcoming Blue Apron delivery schedule.
```

**Parameters:** None

---

### `update_preferences`

Update recipe preferences and dietary settings.

```
Set my Blue Apron preferences to vegetarian with no nuts, mild spice level, and prefer Italian and Mediterranean cuisines.
```

**Parameters:**
- `dietary_restrictions` (optional): e.g. `["vegetarian", "pescatarian"]`
- `allergens` (optional): e.g. `["nuts", "shellfish", "wheat"]`
- `disliked_ingredients` (optional): Ingredients to avoid
- `preferred_cuisines` (optional): e.g. `["Italian", "Asian", "Mediterranean"]`
- `spice_level` (optional): `"mild"` | `"medium"` | `"spicy"` | `"extra-spicy"`
- `recipe_types` (optional): e.g. `["quick", "family-friendly", "wellness"]`

---

## Example Conversation

```
User: What's on the Blue Apron menu this week?

Claude: [calls get_upcoming_menus]
Here are this week's Blue Apron options:

1. **Seared Salmon with Lemon-Caper Sauce** — 35 min, Easy, 520 cal
2. **Spicy Korean Beef Bibimbap** — 45 min, Medium, 680 cal
3. **Mushroom & Spinach Flatbread** — 30 min, Easy, 490 cal (Vegetarian)
...

User: Skip my delivery next week, I'll be traveling.

Claude: [calls skip_week with next week's date]
Done! Your Blue Apron delivery for March 22nd has been skipped.
```

## Security Notes

- Credentials are passed via environment variables only — never stored in config files
- Session cookies are saved locally at `~/.config/mcp-blueapron/session.json`
- The connector uses a realistic browser profile to avoid detection
- All browser interactions are read-only except when explicitly invoking write operations (select, skip, update)

## Development

```bash
git clone <repo>
cd mcp-blueapron
npm install
npm run build
node dist/index.js
```

## License

MIT — Strider Labs

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action: browsing menus, selecting recipes, skipping weeks, viewing account, checking delivery schedule, updating preferences. No overlap in purpose.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., get_upcoming_menus, select_recipes, skip_week). No mixing of conventions.

Tool Count5/5

With 6 tools, the server is well-scoped for a recipe delivery service. Each tool serves a distinct and necessary function without being overly granular or missing core actions.

Completeness4/5

Covers core user workflows: browsing menus, selecting recipes, skipping weeks, account details, schedule, and preferences. Minor gaps like modifying selections or pausing subscription, but overall sufficient for primary tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues