Order groceries via Instacart using AI agents
Part of Strider Labs β action execution for personal AI agents.
- Add this to your Claude Desktop config:
{
"mcpServers": {
"instacart": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-instacart"]
}
}
}- Restart Claude.
- Tell Claude: "Order my usual groceries for delivery tomorrow morning"
Your agent can now place orders. That's it.
npm install @striderlabs/mcp-instacartOr with npx directly:
npx @striderlabs/mcp-instacart- π Search for products by name or category
- π¦ Browse stores and product availability
- πͺ Add to cart with quantities and special requests
- π³ Place orders with delivery time selection
- π Track orders with real-time status
- π Persistent sessions - stay logged in across restarts
- π Automatic MFA - handles multi-factor authentication
- π± Per-user credentials - encrypted session storage
- β Saved items - order your favorites faster
| Component | Version | Status |
|---|---|---|
| MCP SDK | ^1.0.0 | β |
| Node.js | 18+ | β |
| Claude Desktop | Latest | β |
| Claude (API) | claude-3.5-sonnet+ | β |
| Anthropic SDK | ^0.20+ | β |
- Weekly downloads: 271 (Apr 10-17, 2026) β Top grocery connector (+330% growth)
- Status: β Live in production
- Reliability: 85%+ task completion rate
- Discovery: npm, mcpservers.org, ClawHub, PulseMCP, Glama, LobeHub
- npm: npmjs.com/@striderlabs/mcp-instacart
- Claude Plugins: Search "Strider Labs" in Claude
- mcpservers.org: Strider Labs Instacart
- Full Strider Labs: github.com/striderlabsdev/striderlabs
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 })- Each user has encrypted, persistent credentials
- Automatic OAuth token refresh
- MFA handling (SMS/email)
- Sessions survive agent restarts
- 85%+ task completion rate
- Automated UI change detection (connectors update when Instacart changes)
- Fallback paths for failures
- 24/7 monitoring + alerting
The MCP server uses a persistent browser profile (~/.strider/instacart/browser-profile) so your login session survives server restarts automatically.
- Set
INSTACART_HEADLESS=falsein your MCP server config so the browser window is visible:
{
"mcpServers": {
"instacart": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-instacart"],
"env": { "INSTACART_HEADLESS": "false" }
}
}
}- Restart Claude / your MCP client.
- Ask Claude to run
instacart_loginβ a real browser window will open. - Log in to Instacart inside that window.
- Run
instacart_statusto confirm authentication. - Remove
INSTACART_HEADLESS(or set it back totrue) 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:3000This 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:
- User-controlled: Your agent only accesses your own Instacart account
- Session-based: We store your login session securely, not your password
- Change-aware: We detect Instacart UI changes and alert immediately
- Fingerprinting: We use realistic browser profiles to avoid bot detection
- Rate-limited: We respect Instacart's infrastructure with appropriate delays
- Credentials stored encrypted in your local
.envor secure vault - Sessions isolated per user
- No data sent to third parties
- MIT Licensed β audit the code yourself
- π Full Strider Labs Docs
- π Report Issues
- π¬ Discussions
- π Website
- π§ Email
We welcome contributions! Areas of interest:
- Bug reports and fixes
- Feature requests (new stores, categories, etc.)
- Performance improvements
- Documentation enhancements
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.