This is browser automation for Instacart wrapped in an MCP interface. It gives your agent tools to search products, browse stores, add items to cart, place orders with delivery windows, and track shipments. Works by running a persistent Playwright session that keeps you logged in across restarts. You set INSTACART_HEADLESS to false once, log in manually, then the server handles everything headless from there. Built by Strider Labs as part of their action execution toolkit. Useful if you want Claude or another LLM to handle recurring grocery orders or one-off shopping requests without opening the Instacart app yourself.
Public tool metadata for what this MCP can expose to an agent.
INSTACART_CREATE_RECIPE_PAGECreate a Recipe Page on Instacart + return shareable URL. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.5 paramsCreate a Recipe Page on Instacart + return shareable URL. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.
titlestringimage_urlstringexpires_inintegeringredientsarrayinstructionsarrayINSTACART_CREATE_SHOPPING_LIST_PAGECreate a Shopping List Page on Instacart + return shareable URL. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.5 paramsCreate a Shopping List Page on Instacart + return shareable URL. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.
titlestringimage_urlstringexpires_inintegerline_itemsarrayinstructionsstringINSTACART_GET_NEARBY_RETAILERSGet nearby retailers by postal_code + country_code. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.2 paramsGet nearby retailers by postal_code + country_code. Attempts prod first then falls back to dev; errors from prod bubble up if both fail.
postal_codestringcountry_codestringOrder groceries via Instacart using AI agents
Part of Strider Labs — action execution for personal AI agents.
{
"mcpServers": {
"instacart": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-instacart"]
}
}
}
Your agent can now place orders. That's it.
npm install @striderlabs/mcp-instacart
Or with npx directly:
npx @striderlabs/mcp-instacart
| Component | Version | Status |
|---|---|---|
| MCP SDK | ^1.0.0 | ✅ |
| Node.js | 18+ | ✅ |
| Claude Desktop | Latest | ✅ |
| Claude (API) | claude-3.5-sonnet+ | ✅ |
| Anthropic SDK | ^0.20+ | ✅ |
Your agent can use these capabilities:
// Search for products
products = search_products({
query: "organic milk",
location: "San Francisco, CA"
})
// Browse a store's offerings
store_products = get_store_products({
store_id: "whole_foods_sf",
category: "Dairy"
})
// Add to cart
add_to_cart({
product_id: "organic_milk_gallon",
quantity: 2,
special_instructions: "Cold stock, please"
})
// Place an order
order = place_order({
delivery_time: "tomorrow morning",
delivery_address: "123 Main St, San Francisco, CA",
special_instructions: "Ring the doorbell twice"
})
// Track delivery
status = track_order({ order_id: order.order_id })
The MCP server uses a persistent browser profile (~/.strider/instacart/browser-profile) so your login session survives server restarts automatically.
INSTACART_HEADLESS=false in your MCP server config so the browser window is visible:{
"mcpServers": {
"instacart": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-instacart"],
"env": { "INSTACART_HEADLESS": "false" }
}
}
}
instacart_login — a real browser window will open.instacart_status to confirm authentication.INSTACART_HEADLESS (or set it back to true) and restart — the saved profile keeps you logged in.Authentication is verified by navigating to /account and confirming the page resolves without a redirect to /login or /authentication (positive detection). This is more reliable than checking for the absence of a "Log in" button.
# Show browser window (required for first-time login)
INSTACART_HEADLESS=false # default: true (headless)
# Clone the repo
git clone https://github.com/striderlabsdev/mcp-instacart
cd mcp-instacart
# Install dependencies
npm install
# Start the server
npm start
# Your agent can now connect to localhost:3000
This connector uses browser automation (Playwright) to interact with Instacart, because Instacart doesn't have a public API. Here's why that's safe and reliable:
.env or secure vaultWe welcome contributions! Areas of interest:
See CONTRIBUTING.md for guidelines.
MIT — Free to use, modify, and distribute. See LICENSE for details.
Built by Strider Labs — Making AI agents actually useful.
INSTACART_EMAIL*Instacart email for authentication
INSTACART_PASSWORD*secretInstacart account password