Larder
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LarderWe're out of eggs and low on olive oil."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Larder
The kitchen memory Alexa+ is missing. Larder is a self-hosted MCP server that gives a voice assistant a shared, persistent memory of a household's kitchen. One spoken sentence like "we're out of eggs" or "six people for lasagna Saturday" becomes an updated pantry, a scaled recipe, and a grocery order that waits for your yes.
Built for the Alexa+ track of the Amazon Developer Hackathon "Build, Ship, Shape" (2026). Not made by or affiliated with Amazon.
Live demo (simulated Alexa+ in the browser): https://larder-pi-six.vercel.app
MCP endpoint:
https://larder-pi-six.vercel.app/api/mcp(Streamable HTTP, MCP 2025-11-25; the 2026-07-28 revision is also served)
Why
A shopping list is a flat list. It does not know what is already in the kitchen, what a recipe needs, or the gap between the two. The kitchen is where hands are busy and a voice assistant already sits, so it is the place people will say "we just used the last of the milk" out loud but will not open an app to log it. Larder keeps that memory for the whole household, across conversations.
Related MCP server: FreshKeep MCP Server
What it does
Pantry memory by voice. "We're out of eggs and low on olive oil." Larder records both, remembers who said it, and offers to add them to the cart.
What can I make, and for how many. Recipes are ranked by what is already on hand. "Make lasagna for six" scales the recipe and lists exactly what is short ("1 more can of crushed tomatoes") or missing.
Cart and confirmed checkout. Missing items go to the cart.
order_placereturns a summary and a confirmation code; nothing is ordered untilorder_confirmafter a clear yes. When the groceries arrive,order_receivedrestocks the pantry.Family activity. "What changed in the kitchen?" reads the shared log: who used up what, what went in the cart, what was ordered.
Orders are simulated. There is no store and no payment.
MCP tools
Every tool returns structuredContent (with an outputSchema) and a speech field written to be read aloud, carries tool annotations, and links the MCP Apps card ui://larder/kitchen-card.html.
Tool | What it does | Annotations |
| bought, used_some, used_up, running_low, forget; several changes per call | write |
| "do we have eggs?", or a summary of what is low and out | read-only |
| recipes ranked by what is on hand, as a carousel | read-only |
| scale one recipe, compare with the pantry, return steps | write (remembers the plan), idempotent |
| add named items, or only what a recipe is missing | write |
| edit or read the cart | destructive, idempotent / read-only |
| step 1 of purchasing: review plus a confirmation code (15 minutes) | write |
| step 2: place the order only with the matching code | write |
| restock the pantry from the delivered order | write |
| the household's shared activity log | read-only |
Also: one prompt, weekly_restock, and server instructions that tell the assistant to speak speech and to ask before confirming an order.
MCP Apps. The card is a single self-contained HTML view (text/html;profile=mcp-app). It completes the ui/initialize handshake, renders whichever result arrives in ui/notifications/tool-result (pantry chips, recipe carousel, recipe checklist, cart, order review, activity timeline), calls Larder tools back through the host with tools/call when you tap a button, and sends ui/message when you tap a recipe, so touch and voice share one flow.
Households. Each household's kitchen is chosen by the MCP URL: /api/mcp?household=<id> (or an x-larder-household header). The default is a shared demo kitchen. The speaker's first name can be passed as member (or x-larder-member) so the activity log shows who did what.
Connect your own client
Any MCP client that speaks Streamable HTTP works. The demo page shows a private URL for your browser's kitchen.
{ "mcpServers": { "larder": { "url": "https://larder-pi-six.vercel.app/api/mcp?household=my-kitchen" } } }For stdio-only clients: npx -y mcp-remote https://larder-pi-six.vercel.app/api/mcp.
The simulated Alexa+
The hackathon rules allow a simulated Alexa+ experience, so the demo page stands in for Alexa+ and anyone can try Larder in a browser:
Speak (Chrome's Web Speech API) or type. Replies are spoken by your browser's speech synthesis.
An open model on OpenRouter plans each utterance into Larder tool calls, reading the live
tools/list. The page then calls Larder through the official MCP TypeScript client over Streamable HTTP, exactly as any MCP host would, and renders the MCP Apps card in an Echo Show style frame.The free model tier is small, so each visitor gets a few model-planned turns a day. After that, or if the model is slow, a small offline intent matcher plans the common kitchen phrases, and the page says which planner answered.
Architecture
Browser (simulated Alexa+) Larder (Next.js on Vercel)
mic / text -> /api/turn ---- plan ----> open model (OpenRouter) or offline matcher
---- MCP client, Streamable HTTP ----> /api/mcp (MCP server)
Echo Show frame <- ui://larder/kitchen-card.html (MCP Apps) |
card taps -> /api/tool -> tools/call ----------------------------->|
v
household state (private Vercel Blob)src/lib/mcp-server.ts: tools, schemas, annotations, MCP Apps resource, promptsrc/lib/household.ts: pantry, recipes, cart, and order logic (pure functions, voice copy)src/lib/store.ts: per-household persistence (private Vercel Blob, or local files)src/lib/card-html.ts: the MCP Apps viewsrc/lib/planner.ts,src/lib/llm.ts: the simulator's planner and its fallbacksrc/components/card-host.tsx: a minimal MCP Apps host
Run it locally
pnpm install
cp .env.example .env.local # all values optional
pnpm dev # http://localhost:3000, MCP at /api/mcp
pnpm test # unit tests plus MCP round trips over Streamable HTTP
pnpm typecheck && pnpm lint && pnpm buildWithout OPENROUTER_API_KEY the simulator uses the offline matcher. Without BLOB_READ_WRITE_TOKEN households are stored in .data/.
Limits, honestly
Orders are simulated: no store, catalog prices, or payment.
Twelve recipes, written for this project. The catalog knows 64 common items; anything else is tracked as free text without counts.
No account linking. A household is whoever has its URL, which is fine for a demo and not for production (production would use Alexa account linking or OAuth).
Concurrent writes to one household from different server instances are last-write-wins.
AI disclosure
This project was written with AI coding assistance. The simulator uses an open model (via OpenRouter) to plan tool calls at runtime. The demo video narration uses a synthetic text-to-speech voice.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
Your kitchen in chat: pantry stock, shopping lists, recipes and scanned grocery receipts.
AI-powered kitchen management — pantry, recipes, meal plans, shopping lists
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered household management including inventory tracking, restock predictions, meal planning from available ingredients, and baby supply monitoring through natural language commands.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceGives Alexa+ persistent, structured memory of a household kitchen: tracking purchased groceries, flagging items at risk of spoiling, proposing rescue meals from expiring ingredients, and maintaining shopping lists, receipt ingestion, and waste reports through MCP tool calls. Storage, tool logic, and safety controls (consent gates, two-step deletion, rate limiting) are exposed over Streamable HTTP for any MCP client.MIT

restrackit-pantry-mcpofficial
AlicenseNot gradedqualityBmaintenanceEnables users to turn grocery receipt photos or spoken updates into an up-to-date home pantry, tracking purchases, current stock, and consumption through natural language.MIT- AlicenseNot gradedqualityCmaintenanceEnables voice agents such as Alexa+ to keep a shared household list and reminders that record who added what and when, apply precise quantity changes instead of wiping lines, flag implausible misheard items for confirmation, keep one-shot reminders separate from open tasks, undo any change, and give each person a digest of what others modified since they last asked.MIT