# good-eggs

An MCP server that drives a Playwright browser into your Good Eggs account so the agent can search groceries, manage the cart and reorder past purchases.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 81
- Author: pulsemcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pulsemcp/mcp-servers/tree/HEAD/experimental/good-eggs
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/mcp/good-eggs

## What it does

The server launches a browser, signs in to Good Eggs and keeps that session alive, so every later tool call reuses it. Your agent can look up products by keyword, pull product details, add or drop cart items, maintain a favorites list, and surface free items priced at $0.00 from the homepage and fresh-picks. Order history is covered too: first the dates, then the contents of a chosen order.

Eleven tools ship with it: `search_for_grocery`, `get_favorites`, `get_grocery_details`, `add_to_cart`, `get_cart`, `remove_from_cart`, `search_for_freebie_groceries`, `get_list_of_past_order_dates`, `get_past_order_groceries`, `add_favorite`, `remove_favorite`. Credentials go in through `GOOD_EGGS_USERNAME` and `GOOD_EGGS_PASSWORD`; `HEADLESS` and `TIMEOUT` control the browser. Node.js 18+ is required.

Your login stays local — it is used only to sign in, and the browser runs on your own machine. An account without delivery coverage where you live makes the whole thing pointless, since there is nowhere to send an order. Site redesigns on the Good Eggs side can break the automation, so expect to babysit it occasionally.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `GOOD_EGGS_USERNAME`, `GOOD_EGGS_PASSWORD`, `HEADLESS`, `TIMEOUT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env GOOD_EGGS_USERNAME=<GOOD_EGGS_USERNAME> --env GOOD_EGGS_PASSWORD=<GOOD_EGGS_PASSWORD> --env HEADLESS=<HEADLESS> --env TIMEOUT=<TIMEOUT> --transport stdio good-eggs -- npx -y good-eggs-mcp-server
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add good-eggs --env GOOD_EGGS_USERNAME=<GOOD_EGGS_USERNAME> --env GOOD_EGGS_PASSWORD=<GOOD_EGGS_PASSWORD> --env HEADLESS=<HEADLESS> --env TIMEOUT=<TIMEOUT> -- npx -y good-eggs-mcp-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "good-eggs": {
            "command": "npx",
            "args": [
                "-y",
                "good-eggs-mcp-server"
            ],
            "env": {
                "GOOD_EGGS_USERNAME": "<GOOD_EGGS_USERNAME>",
                "GOOD_EGGS_PASSWORD": "<GOOD_EGGS_PASSWORD>",
                "HEADLESS": "<HEADLESS>",
                "TIMEOUT": "<TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "good-eggs": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "good-eggs-mcp-server"
            ],
            "env": {
                "GOOD_EGGS_USERNAME": "<GOOD_EGGS_USERNAME>",
                "GOOD_EGGS_PASSWORD": "<GOOD_EGGS_PASSWORD>",
                "HEADLESS": "<HEADLESS>",
                "TIMEOUT": "<TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GOOD_EGGS_USERNAME=<GOOD_EGGS_USERNAME> -e GOOD_EGGS_PASSWORD=<GOOD_EGGS_PASSWORD> -e HEADLESS=<HEADLESS> -e TIMEOUT=<TIMEOUT> good-eggs npx -y good-eggs-mcp-server
```
Replace <…> with your own values

## When to use it
- search a product by keyword and see whether it is already a favorite
- fill a cart with several items without touching the website
- inspect the current cart and remove what you no longer want
- reorder the same items from a past order date
- catch free items on the homepage and in fresh-picks

## Example prompts
- Search Good Eggs for organic apples
- Add two of those apples to my cart
- What did I order on January 3rd?

## Similar
- [playwright-skill](https://affpapa.org/en/nevibecode/skills/sickn33-playwright-skill.md) — skill · 3900 installs
- [leclerc-drive](https://affpapa.org/en/nevibecode/mcp/leclerc-drive.md) — MCP server · ★ 26
- [instacart](https://affpapa.org/en/nevibecode/mcp/instacart.md) — MCP server · ★ 11
- [playwriter](https://affpapa.org/en/nevibecode/skills/playwriter.md) — skill · 5800 installs
- [autobrowse](https://affpapa.org/en/nevibecode/skills/autobrowse.md) — skill · 2800 installs
- [functions](https://affpapa.org/en/nevibecode/skills/functions.md) — skill · 2800 installs

From the same set: [pulsemcp/mcp-servers](https://affpapa.org/en/nevibecode/by/pulsemcp/mcp-servers.md) — 28 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
