Instacart

io.github.markswendsen-codePublished by GitHub account markswendsen-codev0.2.2Updated Oct 24, 2026

MCP server for Instacart - let AI agents manage grocery shopping and place orders autonomously

VerifiedSTDIODesktop onlyBrowser AutomationBusiness & Commerce

Overview

AI-generated overview

Local MCP server that lets an AI assistant search Instacart products, manage a cart and place grocery delivery orders through browser automation.

What you can do
  • Search products by name or category and browse stores and availability
  • Add items to the cart with quantities and special instructions
  • Place delivery orders with a chosen delivery time and address
  • Track order status and reuse saved items
  • Log in and check account authentication status
When to use it
Useful when you want an assistant to handle routine grocery shopping on your own Instacart account, such as reordering usual items or building a cart and scheduling delivery, without opening the site yourself.
Requirements
Runs locally via npx or npm as a Node.js 18+ process; desktop MCP client only. Needs an Instacart account with INSTACART_EMAIL and INSTACART_PASSWORD, plus a first-time interactive login in a visible browser window (INSTACART_HEADLESS=false). A persistent browser profile is stored under the user's home directory.
Before you install
It can place real grocery orders that cost money, so review carts and delivery details before confirming. It asks for your Instacart account email and password and keeps a saved browser session; it drives the site through browser automation with realistic profiles to avoid bot detection, which may conflict with Instacart's terms. The README's claims about encryption and third-party data handling are the vendor's own.

Installation

In SourceWeft

  1. Open Instacart in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@striderlabs/mcp-instacart

Order groceries via Instacart using AI agents

[npm] [MCP Registry] [Claude Desktop] [License: MIT]

Part of Strider Labs — action execution for personal AI agents.

Get Started in 2 Minutes

For Claude Desktop Users

  1. Add this to your Claude Desktop config:
json
{  "mcpServers": {    "instacart": {      "command": "npx",      "args": ["-y", "@striderlabs/mcp-instacart"]    }  }}
  1. Restart Claude.
  2. Tell Claude: "Order my usual groceries for delivery tomorrow morning"

Your agent can now place orders. That's it.


Installation (NPM)

bash
npm install @striderlabs/mcp-instacart

Or with npx directly:

bash
npx @striderlabs/mcp-instacart

Features

  • 🛒 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

Tested & Compatible

ComponentVersionStatus
MCP SDK^1.0.0✅
Node.js18+✅
Claude DesktopLatest✅
Claude (API)claude-3.5-sonnet+✅
Anthropic SDK^0.20+✅

Metrics

  • 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

Available Elsewhere

How It Works

For Agents

Your agent can use these capabilities:

javascript
// Search for productsproducts = search_products({  query: "organic milk",  location: "San Francisco, CA"})
// Browse a store's offeringsstore_products = get_store_products({  store_id: "whole_foods_sf",  category: "Dairy"})
// Add to cartadd_to_cart({  product_id: "organic_milk_gallon",  quantity: 2,  special_instructions: "Cold stock, please"})
// Place an orderorder = place_order({  delivery_time: "tomorrow morning",  delivery_address: "123 Main St, San Francisco, CA",  special_instructions: "Ring the doorbell twice"})
// Track deliverystatus = track_order({ order_id: order.order_id })

Session Management

  • Each user has encrypted, persistent credentials
  • Automatic OAuth token refresh
  • MFA handling (SMS/email)
  • Sessions survive agent restarts

Reliability

  • 85%+ task completion rate
  • Automated UI change detection (connectors update when Instacart changes)
  • Fallback paths for failures
  • 24/7 monitoring + alerting

Authentication

The MCP server uses a persistent browser profile (~/.strider/instacart/browser-profile) so your login session survives server restarts automatically.

First-time login

  1. Set INSTACART_HEADLESS=false in your MCP server config so the browser window is visible:
json
{  "mcpServers": {    "instacart": {      "command": "npx",      "args": ["-y", "@striderlabs/mcp-instacart"],      "env": { "INSTACART_HEADLESS": "false" }    }  }}
  1. Restart Claude / your MCP client.
  2. Ask Claude to run instacart_login — a real browser window will open.
  3. Log in to Instacart inside that window.
  4. Run instacart_status to confirm authentication.
  5. Remove INSTACART_HEADLESS (or set it back to true) and restart — the saved profile keeps you logged in.

How login detection works

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.

Configuration

Environment Variables

bash
# Show browser window (required for first-time login)INSTACART_HEADLESS=false   # default: true (headless)

Self-Hosted

bash
# Clone the repogit clone https://github.com/striderlabsdev/mcp-instacartcd mcp-instacart
# Install dependenciesnpm install
# Start the servernpm start
# Your agent can now connect to localhost:3000

Architecture

How We Connect

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:

  • 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

Security

  • Credentials stored encrypted in your local .env or secure vault
  • Sessions isolated per user
  • No data sent to third parties
  • MIT Licensed — audit the code yourself

Support

Contributing

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.

License

MIT — Free to use, modify, and distribute. See LICENSE for details.


Built by Strider Labs — Making AI agents actually useful.

GitHub | Website | Discord

Source: README.md at commit 6da8d68

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.2LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.