MCP server that gives AI agents the ability to search products, manage cart, and place grocery orders on Instacart.
Built by Strider Labs β building the action layer for AI agents.
- π Search Products β Find products across Instacart with prices and availability
- π Cart Management β Add items, view cart, clear cart
- π¦ Place Orders β Preview and place orders with delivery time selection
- π Session Persistence β Cookies saved locally for seamless re-authentication
- π‘οΈ Order Safety β Requires explicit confirmation before placing orders
npm install @striderlabs/mcp-instacartOr install globally:
npm install -g @striderlabs/mcp-instacartThis package requires Playwright browsers. Install them with:
npx playwright install chromiumAdd to your claude_desktop_config.json:
{
"mcpServers": {
"instacart": {
"command": "npx",
"args": ["@striderlabs/mcp-instacart"]
}
}
}npx @striderlabs/mcp-instacart| Tool | Description |
|---|---|
instacart_status |
Check login status and session info |
instacart_login |
Initiate login flow (returns URL for manual login) |
instacart_logout |
Clear saved session and cookies |
| Tool | Description |
|---|---|
instacart_search |
Search for products by name |
instacart_stores |
List available stores for delivery location |
instacart_set_address |
Set delivery address or zip code |
| Tool | Description |
|---|---|
instacart_add_to_cart |
Add a product to cart |
instacart_view_cart |
View cart contents and totals |
instacart_clear_cart |
Remove all items from cart |
| Tool | Description |
|---|---|
instacart_preview_order |
Preview order before placing |
instacart_place_order |
Place order (requires confirm=true) |
User: Am I logged into Instacart?
Agent: [calls instacart_status]
β Returns login state, email, saved address
User: Find organic bananas on Instacart
Agent: [calls instacart_search with query="organic bananas"]
β Returns list of products with prices
User: Add milk, eggs, and bread to my Instacart cart
Agent:
[calls instacart_add_to_cart with product="milk"]
[calls instacart_add_to_cart with product="eggs"]
[calls instacart_add_to_cart with product="bread"]
β Items added to cart
User: What's in my Instacart cart?
Agent: [calls instacart_view_cart]
β Returns items, quantities, subtotal, fees, total
User: Place my Instacart order
Agent: [calls instacart_place_order with confirm=false]
β Returns preview asking for confirmation
User: Yes, place it
Agent: [calls instacart_place_order with confirm=true]
β Order placed, returns confirmation
Instacart requires browser-based login. The flow:
- Call
instacart_loginβ returns login URL - User opens URL and logs in manually
- Cookies are automatically saved to
~/.strider/instacart/ - Future sessions use saved cookies
Session cookies persist until they expire or instacart_logout is called.
Session data is stored in:
~/.strider/instacart/
βββ cookies.json # Browser cookies
βββ session.json # Session metadata
The instacart_place_order tool has a built-in safety mechanism:
- Without
confirm=true: Returns a preview, does not place order - With
confirm=true: Actually places the order
Agents should ALWAYS show the preview and get explicit user confirmation before calling with confirm=true.
- Uses Playwright for browser automation
- Runs headless by default
- Includes stealth patches to avoid detection
- Supports all Instacart stores available in your area
- Requires manual login (no programmatic auth)
- Browser automation may break if Instacart updates their UI
- Some anti-bot measures may require solving CAPTCHAs manually
- Payment methods must be pre-configured in your Instacart account
Run instacart_login and complete the login flow manually.
Instacart pages may be slow. The server will retry automatically, but you can also:
- Check your internet connection
- Try again after a moment
Instacart may have updated their UI. Please file an issue with details.
Some actions may trigger CAPTCHA. You'll need to:
- Open Instacart in a regular browser
- Complete the CAPTCHA
- Try the MCP action again
# Clone the repo
git clone https://github.com/markswendsen-code/mcp-instacart
cd mcp-instacart
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Build
npm run build
# Run locally
node dist/index.jsMIT