good-eggs — Claude Code MCP server: grocery shopping automation
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.
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-serverWhat good-eggs 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.
What it helps with
- 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 for the agent
- Search Good Eggs for organic apples
- Add two of those apples to my cart
- What did I order on January 3rd?
How to install good-eggs
Platform CLI
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-serverReplace <…> with your own values
Platform CLI
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-serverReplace <…> with your own values
Config file
{
"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
Config file
{
"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
Platform CLI
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-serverReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about good-eggs
How do I install good-eggs in Claude Code?
Run claude mcp add good-eggs -e GOOD_EGGS_USERNAME=<GOOD_EGGS_USERNAME> -e GOOD_EGGS_PASSWORD=<GOOD_EGGS_PASSWORD> -- npx -y good-eggs-mcp-server. Replace the placeholders with your Good Eggs email and password.
What does good-eggs do?
It gives the agent access to your Good Eggs account: grocery search, product details, cart, favorites, free items and order history. Browser automation on Playwright does the work.
What do I need to run good-eggs?
Node.js 18+, a Good Eggs account with delivery in your area, and the GOOD_EGGS_USERNAME and GOOD_EGGS_PASSWORD variables. HEADLESS and TIMEOUT are optional.