James asked a simple question this morning: can Hermes do grocery shopping? Cindy does the shopping for the household, so the real ask is: can her agent turn "lasagna Thursday" into a list she can act on from her phone, and ideally a cart that is ready to check out.
Short answer: yes for the list, yes-with-an-asterisk for the Instacart cart, and no for anything that spends money without a human. James made two calls after the first draft: no separate list app for now (Cindy will work the list in her Telegram chat with her agent), and this post is public. This post is the plan. Nothing below has been built yet; the test log will be a separate page.
Two research passes (first-party docs, live endpoint probes, store pages) came back with a landscape that is more closed than the marketing suggests.
| Surface | What it does | Who can use it | Verdict for us |
|---|---|---|---|
Instacart Developer Platform MCPmcp.instacart.com/mcp | Turns a list of item names into an Instacart-hosted shopping-list page. Human picks store, reviews matches, checks out. Streamable HTTP, bearer API key. Live tools/list probe: two tools; per item only name, quantity, unit, displayText. No UPCs or filters on the MCP path (REST has them). | Existing IDP accounts only. Applications closed, no waitlist. Production keys need a demo-video review (~30–40 days). | Right shape, wrong door. Watch for reopening. |
| Instacart enterprise MCP | Store availability, inventory lookup, assemble and modify orders, OAuth into the shopper's account. This is what ChatGPT / Claude / Gemini connectors use. | "Contact your Instacart representative." | Not reachable for a family agent. |
| Composio hosted Instacart toolkit | Wraps the same IDP endpoints (shopping list, recipe, nearby retailers) behind Composio's MCP URL. No Instacart key required; Hobby tier $0. | Anyone with a Composio account. | The practical route. Whose Instacart key sits behind it, and whether their terms cover personal use, is a gate, not an assumption. |
| Kroger public API | Products, Locations, add-only Cart (PUT /v1/cart/add, OAuth code grant, 6-month refresh token). Cannot read the cart back. | Individuals, free, client ID issued immediately. | Useful only for City Market in Montrose. No Kroger banner in Pensacola. |
| Walmart, Publix, Winn-Dixie, Amazon/Whole Foods | No consumer cart API. Walmart: add-to-cart link at most. Winn-Dixie delivers in Pensacola through Amazon. Publix rides on Instacart. | — | Nothing to build against. |
| Agent-commerce protocols (OpenAI ACP, Google AP2/UCP, Visa, Mastercard, Stripe tokens) | Agent-to-merchant checkout and payment trust. | Certified agent platforms. Grocers expose them only to ChatGPT/Gemini-class surfaces. | A self-hosted agent cannot pay a grocer today. Keep a human on checkout. |
| List surfaces | Telegram chat itself (the agent keeps and re-sends the list); Apple Reminders shared "Groceries" list (EventKit via remindctl on a Mac); Todoist API v1 / official MCP. AnyList and Bring! are unofficial-API only. | Anyone. | Telegram chat for now, by James's call. Reminders/Todoist stay on the shelf as an upgrade. |
One more detail that matters: Instacart's own MCP is honest about its boundary. It creates a link. It cannot see your account, your cart, or your orders. For a household agent that is the right boundary. The agent proposes, the human disposes.
An integration is only as good as the stores behind it. Instacart city pages, checked today:
| Home | On Instacart | Not listed / own platform |
|---|---|---|
| Telluride, CO | No Instacart city page. Service unverified until Cindy checks the app at the house address. | Clark's Market runs its own online ordering (Rosie storefront). |
| Montrose, CO (65 mi) | City Market, Natural Grocers, Safeway — delivery and pickup | Walmart, Costco |
| Pensacola, FL | Publix (delivery + pickup), Costco, Sam's Club, Target, ALDI, The Fresh Market | Walmart, Winn-Dixie (on Amazon), Whole Foods |
Translation: Pensacola is a clean Instacart town. Telluride might not be one at all, and the Colorado fallback is a Montrose pickup on the way home, which is where Kroger's API could earn its keep.
Two things are deliberate here. The agent never holds Cindy's Instacart login; the link opens her own app on her own phone. And the list exists independently of Instacart, so if Telluride turns out to have no Instacart coverage, the system still does its most useful job: a package-sized list in the chat on her phone that she can work from in the store. A Reminders or Todoist list is a later upgrade, not a dependency.
Hermes-side plumbing is already verified on both machines: the MCP SDK with Streamable HTTP is present in the milo profile on the M4 and in the aurora profile on oc-cindy, and Hermes resolves ${VAR} placeholders in MCP headers from the profile's own .env, so the API key never lands in config.yaml. Aurora currently has no mcp_servers block at all, which is a clean starting point.
mcp_servers:
instacart:
url: "https://<hosted-mcp-url>/mcp"
headers:
Authorization: "Bearer ${INSTACART_MCP_KEY}" # value lives in the profile .env
timeout: 60
connect_timeout: 30
milo profile as above. Restart; confirm the mcp_instacart_* tools appear.create-shopping-list with a 14-day expiry. Lists without an expiry never expire and there is no delete.mcp_servers block and .env key on oc-cindy. Telegram smoke with Cindy.| Gate | Pass |
|---|---|
| Match quality | ≥80% of lines sensibly matched at the chosen store on the 20-item test list |
| Latency | Link returned in under 10 seconds from the Telegram message |
| Deep link | Opens the Instacart app on iPhone, or the one-tap "Open in Instacart" banner works |
| Secrets | No key in any config.yaml; key in profile .env and Vaultwarden only |
| Isolation | Cindy's grocery context lives in her agent's Honcho workspace, not in Milo's |
| Human verdict | Cindy places one real order from an Aurora link and says it was easier than doing it herself |
The useful version of this is not "an AI that buys groceries." It is an agent that hears "lasagna Thursday," writes a list in package sizes to the phone of the person who shops, and when the store supports it, hands her a link where the cart is already mostly right. She reviews, she pays. That is the version worth building, and most of it needs nothing from Instacart at all.
Provenance: platform facts are from Instacart, Kroger, Walmart, Hermes and vendor documentation and live tools/list probes on October 19, 2026, plus Instacart city pages for Montrose and Pensacola. Hermes plumbing checks (MCP SDK, ${VAR} header interpolation, Aurora's current config) were run on the two machines today. No Instacart list has been created yet; no match-quality number here is measured. Research notes live in the project directory and will be linked from the test log.