{
  "markdown": "# @striderlabs/mcp-instacart\n\n**Order groceries via Instacart using AI agents**\n\n[![npm](https://img.shields.io/npm/v/@striderlabs/mcp-instacart)](https://www.npmjs.com/package/@striderlabs/mcp-instacart)\n[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://mcpservers.org/servers/strider-labs-instacart)\n[![Claude Desktop](https://img.shields.io/badge/Claude-Desktop-blue)](https://docs.anthropic.com/mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n\nPart of [Strider Labs](https://github.com/striderlabsdev/striderlabs) — action execution for personal AI agents.\n\n## Get Started in 2 Minutes\n\n### For Claude Desktop Users\n\n1. Add this to your Claude Desktop config:\n\n```json\n{\n  \"mcpServers\": {\n    \"instacart\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@striderlabs/mcp-instacart\"]\n    }\n  }\n}\n```\n\n2. Restart Claude.\n3. Tell Claude: *\"Order my usual groceries for delivery tomorrow morning\"*\n\nYour agent can now place orders. That's it.\n\n---\n\n## Installation (NPM)\n\n```bash\nnpm install @striderlabs/mcp-instacart\n```\n\nOr with npx directly:\n\n```bash\nnpx @striderlabs/mcp-instacart\n```\n\n## Features\n\n- 🛒 **Search for products** by name or category\n- 📦 **Browse stores** and product availability\n- 🏪 **Add to cart** with quantities and special requests\n- 💳 **Place orders** with delivery time selection\n- 📍 **Track orders** with real-time status\n- 🔐 **Persistent sessions** - stay logged in across restarts\n- 🔄 **Automatic MFA** - handles multi-factor authentication\n- 📱 **Per-user credentials** - encrypted session storage\n- ⭐ **Saved items** - order your favorites faster\n\n## Tested & Compatible\n\n| Component | Version | Status |\n|-----------|---------|--------|\n| **MCP SDK** | ^1.0.0 | ✅ |\n| **Node.js** | 18+ | ✅ |\n| **Claude Desktop** | Latest | ✅ |\n| **Claude (API)** | claude-3.5-sonnet+ | ✅ |\n| **Anthropic SDK** | ^0.20+ | ✅ |\n\n## Metrics\n\n- **Weekly downloads:** 271 (Apr 10-17, 2026) — Top grocery connector (+330% growth)\n- **Status:** ✅ Live in production\n- **Reliability:** 85%+ task completion rate\n- **Discovery:** npm, mcpservers.org, ClawHub, PulseMCP, Glama, LobeHub\n\n## Available Elsewhere\n\n- **npm:** [npmjs.com/@striderlabs/mcp-instacart](https://npmjs.com/package/@striderlabs/mcp-instacart)\n- **Claude Plugins:** Search \"Strider Labs\" in Claude\n- **mcpservers.org:** [Strider Labs Instacart](https://mcpservers.org/servers/strider-labs-instacart)\n- **Full Strider Labs:** [github.com/striderlabsdev/striderlabs](https://github.com/striderlabsdev/striderlabs)\n\n## How It Works\n\n### For Agents\nYour agent can use these capabilities:\n```javascript\n// Search for products\nproducts = search_products({\n  query: \"organic milk\",\n  location: \"San Francisco, CA\"\n})\n\n// Browse a store's offerings\nstore_products = get_store_products({\n  store_id: \"whole_foods_sf\",\n  category: \"Dairy\"\n})\n\n// Add to cart\nadd_to_cart({\n  product_id: \"organic_milk_gallon\",\n  quantity: 2,\n  special_instructions: \"Cold stock, please\"\n})\n\n// Place an order\norder = place_order({\n  delivery_time: \"tomorrow morning\",\n  delivery_address: \"123 Main St, San Francisco, CA\",\n  special_instructions: \"Ring the doorbell twice\"\n})\n\n// Track delivery\nstatus = track_order({ order_id: order.order_id })\n```\n\n### Session Management\n- Each user has encrypted, persistent credentials\n- Automatic OAuth token refresh\n- MFA handling (SMS/email)\n- Sessions survive agent restarts\n\n### Reliability\n- 85%+ task completion rate\n- Automated UI change detection (connectors update when Instacart changes)\n- Fallback paths for failures\n- 24/7 monitoring + alerting\n\n## Authentication\n\nThe MCP server uses a **persistent browser profile** (`~/.strider/instacart/browser-profile`) so your login session survives server restarts automatically.\n\n### First-time login\n\n1. Set `INSTACART_HEADLESS=false` in your MCP server config so the browser window is visible:\n\n```json\n{\n  \"mcpServers\": {\n    \"instacart\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@striderlabs/mcp-instacart\"],\n      \"env\": { \"INSTACART_HEADLESS\": \"false\" }\n    }\n  }\n}\n```\n\n2. Restart Claude / your MCP client.\n3. Ask Claude to run `instacart_login` — a real browser window will open.\n4. Log in to Instacart inside that window.\n5. Run `instacart_status` to confirm authentication.\n6. Remove `INSTACART_HEADLESS` (or set it back to `true`) and restart — the saved profile keeps you logged in.\n\n### How login detection works\n\nAuthentication 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.\n\n## Configuration\n\n### Environment Variables\n\n```bash\n# Show browser window (required for first-time login)\nINSTACART_HEADLESS=false   # default: true (headless)\n```\n\n### Self-Hosted\n\n```bash\n# Clone the repo\ngit clone https://github.com/striderlabsdev/mcp-instacart\ncd mcp-instacart\n\n# Install dependencies\nnpm install\n\n# Start the server\nnpm start\n\n# Your agent can now connect to localhost:3000\n```\n\n## Architecture\n\n### How We Connect\nThis 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:\n\n- **User-controlled:** Your agent only accesses your own Instacart account\n- **Session-based:** We store your login session securely, not your password\n- **Change-aware:** We detect Instacart UI changes and alert immediately\n- **Fingerprinting:** We use realistic browser profiles to avoid bot detection\n- **Rate-limited:** We respect Instacart's infrastructure with appropriate delays\n\n### Security\n- Credentials stored encrypted in your local `.env` or secure vault\n- Sessions isolated per user\n- No data sent to third parties\n- MIT Licensed — audit the code yourself\n\n## Support\n\n- 📖 [Full Strider Labs Docs](https://github.com/striderlabsdev/striderlabs)\n- 🐛 [Report Issues](https://github.com/striderlabsdev/mcp-instacart/issues)\n- 💬 [Discussions](https://github.com/striderlabsdev/mcp-instacart/discussions)\n- 🌐 [Website](https://striderlabs.ai)\n- 📧 [Email](mailto:hello@striderlabs.ai)\n\n## Contributing\n\nWe welcome contributions! Areas of interest:\n- Bug reports and fixes\n- Feature requests (new stores, categories, etc.)\n- Performance improvements\n- Documentation enhancements\n\nSee [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.\n\n## License\n\nMIT — Free to use, modify, and distribute. See [LICENSE](./LICENSE) for details.\n\n---\n\n**Built by Strider Labs** — Making AI agents actually useful.\n\n[GitHub](https://github.com/striderlabsdev) | [Website](https://striderlabs.ai) | [Discord](https://discord.gg/openclaw)\n",
  "bytes": 6741,
  "sha": "9135534947678cdbd0d495aa765c6465e42348b41046bd97387bbf2d0e7ae3a2",
  "repo_slug": "markswendsen-code/mcp-instacart",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_markswendsen_code_mcp_instacart_striderl_54a9bfa9/readme"
}