PluginBench
MCP Server
Maintained

io.github.markswendsen-code/instacart MCP Server

io.github.markswendsen-code/instacart

Let AI agents search, add to cart, and place Instacart orders autonomously.

What is the io.github.markswendsen-code/instacart MCP server?

The @striderlabs/mcp-instacart MCP server enables AI agents to manage grocery shopping on Instacart by searching products, browsing stores, adding items to cart, placing orders, and tracking deliveries. It uses browser automation with persistent session management and automatic multi-factor authentication handling.

This server integrates Instacart with AI agents, allowing them to autonomously handle grocery shopping tasks. You can search for products, browse store availability, add items to cart with special instructions, place orders with delivery time selection, and track order status. It maintains encrypted persistent login sessions so agents stay authenticated across restarts.

How to install io.github.markswendsen-code/instacart

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • INSTACART_EMAIL
    required

    Instacart email for authentication

  • INSTACART_PASSWORD
    required
    secret

    Instacart account password

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "instacart": {
      "command": "npx",
      "args": [
        "-y",
        "@striderlabs/mcp-instacart"
      ],
      "env": {
        "INSTACART_EMAIL": "<YOUR_INSTACART_EMAIL>",
        "INSTACART_PASSWORD": "<YOUR_INSTACART_PASSWORD>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search_products — Search for products by name or category with location filtering
  • get_store_products — Browse a store's product offerings by category
  • add_to_cart — Add items to cart with quantities and special instructions
  • place_order — Place an order with delivery time, address, and special instructions
  • track_order — Track order status with real-time delivery updates
  • instacart_login — Authenticate with Instacart account
  • instacart_status — Verify authentication status

Use cases

  • Autonomously order groceries for delivery at a specified time without manual intervention
  • Search for specific products across multiple stores and compare availability
  • Reorder favorite items saved in your Instacart account automatically
  • Place orders with special delivery instructions like "ring doorbell twice"
  • Track active orders and receive real-time delivery status updates

io.github.markswendsen-code/instacart MCP server FAQ

What is the @striderlabs/mcp-instacart server?

It's an MCP server that lets AI agents like Claude autonomously manage Instacart grocery shopping—searching products, adding to cart, placing orders, and tracking deliveries using browser automation.

Is it free to use?

Yes, the server itself is MIT-licensed and free. You need an active Instacart account to place orders, which follows Instacart's standard pricing.

How do I install it in Claude Desktop?

Add the server to your Claude Desktop config file with the npx command `npx -y @striderlabs/mcp-instacart`, then restart Claude. On first login, set `INSTACART_HEADLESS=false` to see the browser window for authentication.

Do I need to provide my Instacart password?

No. The server uses browser automation with persistent session storage. You log in once through a visible browser window, and your encrypted session is saved locally—your password is never stored.

Does it handle multi-factor authentication?

Yes, the server automatically handles MFA via SMS or email during login and maintains the authenticated session across restarts.

What Node.js version is required?

Node.js 18 or higher is required. The server is tested and compatible with Claude Desktop and Claude API (claude-3.5-sonnet and later).

README (reference)

Source of truth, from the repository.

@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:
{
  "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)

npm install @striderlabs/mcp-instacart

Or with npx directly:

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:

// 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 })

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:
{
  "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

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

Self-Hosted

# 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

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

Related MCP servers

MCP server for Kroger - search products, manage cart, place grocery orders

0
TypeScript
View repository →

MCP server for OpenTable - let AI agents book restaurant reservations and manage dining autonomously

1
TypeScript
View repository →

MCP server for Panera Bread - browse menu, customize orders, place pickup

0
TypeScript
View repository →

MCP server for Southwest Airlines - search flights, manage bookings

2
TypeScript
View repository →

MCP server for Spotify - let AI agents control playback, search music, and manage playlists

0
TypeScript
View repository →

MCP server for Taco Bell - browse menu, customize orders, place pickup

0
TypeScript
View repository →