Pantry Pal
Integrates with Amazon Alexa+ to let users manage a household pantry by voice: add or top up items, list pantry contents, track items expiring soon, record used items, suggest meals based on available and expiring ingredients, and manage a shopping list.
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., "@Pantry PalI bought a dozen eggs, they expire in 10 days"
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.
Pantry Pal — an MCP server for Alexa+
Pantry Pal is a self-hosted Model Context Protocol server that lets Alexa+ manage a household pantry by voice: what you bought, what's about to expire, what you can cook tonight, and what to buy next.
Transport: MCP Streamable HTTP (single
POST /mcpendpoint, JSON responses)Spec:
2025-11-25(also negotiates2025-06-18and2025-03-26)Dependencies: none. Plain Node.js 18+ built-ins, so
git clone && npm startjust works.
Built for the Amazon Developer Hackathon, Alexa+ track.
Why this exists
Food waste is a household problem that voice is perfect for: your hands are full of groceries when you want to log them, and you ask "what should I cook?" while standing in the kitchen. Every tool returns a short sentence written to be read aloud, plus structuredContent for richer clients.
Related MCP server: ShelfLife MCP
Quick start
npm start # http://127.0.0.1:3000/mcp
npm test # 16 end-to-end tests against the live HTTP serverEnvironment variables:
Variable | Default | Purpose |
|
| Listen port |
|
| Bind address. Use |
| (unset) | If set, requests need |
| (unset) | Comma-separated extra browser origins (localhost is always allowed) |
|
| Where pantry state is stored |
Tools
Tool | What you'd say | Behaviour |
| "I bought a dozen eggs, they expire in 10 days" | Adds or tops up an item, optional expiry; removes it from the shopping list |
| "What's in my pantry?" | Reads items back |
| "What should I eat first?" | Items expiring within N days (default 3), soonest first |
| "I used two onions" | Decrements; on the last one, offers the shopping list |
| "What can I cook?" | Ranks recipes you can make, boosting ones that use expiring food; names the one missing ingredient for near-matches |
| "Add milk to my list" |
|
Read-only tools carry readOnlyHint annotations. Invalid input comes back as a tool result with isError: true (so the model can correct itself and ask you), while protocol problems return proper JSON-RPC errors.
Try it without Alexa
npm start &
curl -s localhost:3000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
curl -s localhost:3000/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"add_item","arguments":{"name":"eggs","quantity":6,"expires_in_days":2}}}'You can also point the official MCP Inspector at http://127.0.0.1:3000/mcp (Streamable HTTP).
Connecting to Alexa+
Alexa+ needs to reach your server over public HTTPS, so expose it first:
Run the server with a token:
PANTRY_TOKEN=$(openssl rand -hex 24) HOST=0.0.0.0 npm startPut it behind TLS: a tunnel (
cloudflared tunnel --url http://localhost:3000, ngrok) for the demo, or a reverse proxy / AWS (ALB, App Runner, ECS) for something durable.Register
https://<your-host>/mcpand the bearer token as the MCP integration in the Alexa+ developer console for your account.
I haven't been able to verify step 3 against a live Alexa+ Preview account from my build environment, so the exact console labels may differ from the above; the endpoint itself is a standard MCP Streamable HTTP server and is verified by the test suite.
Design notes
Speakable output. Responses are short, avoid lists of more than a handful of items, and end with a follow-up question when a decision is needed ("Want me to add it to your shopping list?").
Spec compliance.
initializenegotiates the protocol version and issues anMcp-Session-Id; notifications get202;GETreturns405(no standalone SSE stream);DELETEends a session; JSON-RPC batching is rejected as of 2025-06-18;MCP-Protocol-Versionis validated;Originis checked to block DNS-rebinding.Safe by default. Binds to localhost, optional bearer auth, 256 KB body cap, atomic file writes.
Single household. State is one JSON file. Multi-user accounts and OAuth are the obvious next step.
Layout
server.js MCP server + tools (the whole thing, ~350 lines)
test.js end-to-end tests (node:test)License
MIT, see LICENSE.
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 gradedqualityBmaintenanceEnables Alexa+ to access a live household food inventory, providing expiry warnings, use-it-up recipe suggestions, and grocery list management.MIT
- 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
- AlicenseNot gradedqualityCmaintenanceEnables Alexa+ to manage a shared household task list through natural conversation, including checking status, finding overdue or occasion-tagged tasks, adding items, marking them done, and reassigning owners.MIT