MCP server for CookUnity meal delivery service.
cookunity-mcp-server
⚠️ 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 meal delivery service. Browse menus, manage carts, confirm orders, skip/unskip deliveries, and view order history.
Installation
npm install -g cookunity-mcp-server
Or run directly with npx:
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)
{
"mcpServers": {
"cookunity": {
"command": "npx",
"args": ["cookunity-mcp-server"],
"env": {
"COOKUNITY_EMAIL": "your@email.com",
"COOKUNITY_PASSWORD": "your-password"
}
}
}
}
Streamable HTTP (remote)
COOKUNITY_EMAIL=your@email.com COOKUNITY_PASSWORD=your-password TRANSPORT=http PORT=3000 npx cookunity-mcp-server
From Source (development)
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
createOrderrequires 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
Tools (15)
cookunity_get_menuBrowse meals with filters (category, diet, price, rating) & paginationcookunity_search_mealsSearch by keyword across name, description, cuisine, chef, ingredients, diet tagscookunity_get_meal_detailsFull nutritional info, allergens, and ingredients for a specific mealcookunity_get_cartView cart contents for a specific delivery datecookunity_add_to_cartAdd meal to cart by inventory_id and datecookunity_remove_from_cartRemove meal from cart by inventory_idcookunity_clear_cartClear all cart items for a delivery datecookunity_confirm_orderConfirm/place order — locks in cart items for deliverycookunity_next_deliveryGet nearest delivery with meals (order, cart, or auto-picks)cookunity_list_deliveriesAll upcoming weeks with status, meals, cutoffs, skip statecookunity_skip_deliverySkip a delivery weekcookunity_unskip_deliveryUnskip a previously skipped weekcookunity_get_user_infoUser profile, plan, delivery days, addresses, creditscookunity_list_ordersOrder history with paginationcookunity_get_price_breakdownPrice estimate with taxes, fees, credits, and promo discountsEnvironment Variables
COOKUNITY_EMAILrequiredCookUnity account emailCOOKUNITY_PASSWORDrequiredCookUnity account passwordTRANSPORTstdio (default) or httpPORTHTTP port when using http transportConfiguration
{"mcpServers": {"cookunity": {"command": "npx", "args": ["cookunity-mcp-server"], "env": {"COOKUNITY_EMAIL": "your@email.com", "COOKUNITY_PASSWORD": "your-password"}}}}