
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
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.
Installation
In SourceWeft
- Open Instacart in the dashboard and add it to a workspace.
- 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
- Add this to your Claude Desktop config:
- Restart Claude.
- Tell Claude: "Order my usual groceries for delivery tomorrow morning"
Your agent can now place orders. That's it.
Installation (NPM)
Or with npx directly:
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
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
- 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
How It Works
For Agents
Your agent can use these capabilities:
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
- Set
INSTACART_HEADLESS=falsein your MCP server config so the browser window is visible:
- 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.
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
Self-Hosted
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
.envor 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.
Source: README.md at commit 6da8d68
Tools
0Version history
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.