Skip to main content
Glama
README.md
# cookunity-mcp-server

[![npm version](https://img.shields.io/npm/v/cookunity-mcp-server.svg)](https://www.npmjs.com/package/cookunity-mcp-server)
[![npm downloads](https://img.shields.io/npm/dm/cookunity-mcp-server.svg)](https://www.npmjs.com/package/cookunity-mcp-server)

<a href="https://glama.ai/mcp/servers/@ggonzalezaleman/cook-unity-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@ggonzalezaleman/cook-unity-mcp/badge" />
</a>

> ⚠️ **Unofficial.** This project is not affiliated with, endorsed by, or associated with CookUnity in any way. It was built by reverse-engineering their internal APIs for personal use.

MCP server for [CookUnity](https://www.cookunity.com) meal delivery service. Browse menus, manage carts, confirm orders, skip/unskip deliveries, and view order history.

## Installation

```bash
npm install -g cookunity-mcp-server
```

Or run directly with npx:

```bash
npx cookunity-mcp-server
```

## Tools (15)

### Menu & Discovery

| Tool | Description |
|------|-------------|
| `cookunity_get_menu` | Browse meals with filters (category, diet, price, rating) & pagination |
| `cookunity_search_meals` | Search by keyword across name, description, cuisine, chef, ingredients, diet tags |
| `cookunity_get_meal_details` | Full nutritional info, allergens, and ingredients for a specific meal |

### Cart & Orders

| Tool | Description |
|------|-------------|
| `cookunity_get_cart` | View cart contents for a specific delivery date |
| `cookunity_add_to_cart` | Add meal to cart by inventory_id and date |
| `cookunity_remove_from_cart` | Remove meal from cart by inventory_id |
| `cookunity_clear_cart` | Clear all cart items for a delivery date |
| `cookunity_confirm_order` | **Confirm/place order** — locks in cart items for delivery |

### Deliveries & Scheduling

| Tool | Description |
|------|-------------|
| `cookunity_next_delivery` | **Get nearest delivery** with meals (order, cart, or auto-picks) — use for "what's my next delivery?" |
| `cookunity_list_deliveries` | All upcoming weeks with status, meals, cutoffs, skip state |
| `cookunity_skip_delivery` | Skip a delivery week |
| `cookunity_unskip_delivery` | Unskip a previously skipped week |

### Account & Pricing

| Tool | Description |
|------|-------------|
| `cookunity_get_user_info` | User profile, plan, delivery days, addresses, credits |
| `cookunity_list_orders` | Order history with pagination |
| `cookunity_get_price_breakdown` | Price estimate with taxes, fees, credits, and promo discounts |

## Typical Workflow

```
1. cookunity_list_deliveries    → Find next editable delivery date + cutoff
2. cookunity_get_menu           → Browse available meals for that date
3. cookunity_search_meals       → Search for specific cuisines/proteins
4. cookunity_get_meal_details   → Check nutrition/allergens
5. cookunity_add_to_cart        → Add meals (repeat until plan is full)
6. cookunity_get_price_breakdown→ Verify total before confirming
7. cookunity_confirm_order      → Lock in the order ✅
```

> **Important:** Without confirming, cart items are NOT locked in. CookUnity auto-fills with its own recommendations at the cutoff deadline.

## Setup

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `COOKUNITY_EMAIL` | Yes | CookUnity account email |
| `COOKUNITY_PASSWORD` | Yes | CookUnity account password |
| `TRANSPORT` | No | `stdio` (default) or `http` |
| `PORT` | No | HTTP port when using `http` transport (default: 3000) |

## Configuration

### Claude Desktop / Cursor / OpenClaw (stdio)

```json
{
  "mcpServers": {
    "cookunity": {
      "command": "npx",
      "args": ["cookunity-mcp-server"],
      "env": {
        "COOKUNITY_EMAIL": "your@email.com",
        "COOKUNITY_PASSWORD": "your-password"
      }
    }
  }
}
```

### Streamable HTTP (remote)

```bash
COOKUNITY_EMAIL=your@email.com COOKUNITY_PASSWORD=your-password TRANSPORT=http PORT=3000 npx cookunity-mcp-server
```

### From Source (development)

```bash
git clone https://github.com/ggonzalezaleman/cookunity-mcp.git
cd cookunity-mcp
npm install
npm run build
node dist/index.js
```

## API Details

This server reverse-engineers CookUnity's internal GraphQL APIs:

- **Menu Service** (`https://menu-service.cookunity.com/graphql`) — meal browsing and search
- **Subscription Service** (`https://subscription-back.cookunity.com/graphql`) — cart, orders, deliveries, user info

Authentication uses Auth0 with the `cookunity` realm. Tokens are cached and refreshed automatically.

### Known Limitations

- GraphQL introspection is disabled — schemas were reverse-engineered from frontend JS bundles and error probing
- `createOrder` requires the exact number of meals matching the user's plan (e.g., 6 for a 6-meal plan)
- Delivery window is currently hardcoded to 11:00–20:00 (matches most US plans)

## License

MIT

TDQS

A4.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no significant overlap. For example, cookunity_add_to_cart, cookunity_remove_from_cart, and cookunity_clear_cart handle different cart operations, while cookunity_get_menu and cookunity_search_meals serve separate browsing needs. The descriptions reinforce these distinctions, making tool selection straightforward.

Naming Consistency5/5

All tools follow a consistent 'cookunity_verb_noun' naming pattern with snake_case throughout. Verbs like 'get', 'list', 'add', 'remove', 'confirm', 'skip', and 'search' are used predictably, making the tool set highly readable and organized. There are no deviations in naming conventions.

Tool Count5/5

With 16 tools, this server is well-scoped for managing a meal delivery service. It covers essential operations like browsing, cart management, ordering, delivery scheduling, and user info without being overwhelming. Each tool serves a clear purpose, and the count aligns with the domain's complexity.

Completeness5/5

The tool set provides complete coverage for the CookUnity domain, including CRUD operations for cart items (add, remove, clear, get), order lifecycle (confirm, list, history), delivery management (skip/unskip, list, next), and informational tools (menu, search, meal details, price breakdown, user info). There are no obvious gaps that would hinder agent workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive