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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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: Shelf Life 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
Plan weekly meals from your pantry, search allergy-safe recipes, and build grocery lists. Reads and updates your Cooking with Robots pantry, generates a 7-day plan that respects your allergies and preferences, and returns recipes with macros and a grocery gap list. Sign in with OAuth.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables Alexa+ to access a live household food inventory, providing expiry warnings, use-it-up recipe suggestions, and grocery list management.MIT
- AlicenseNot gradedqualityCmaintenanceEnables tracking household food inventory and expiration dates, listing items by status, consuming items, and getting recipe suggestions to use up soon-to-expire ingredients.MIT
- AlicenseNot gradedqualityCmaintenanceEnables an Alexa+ voice or text client to act as a sous-chef: it tracks the ingredients, dietary restrictions and allergies in your pantry, ranks recipes by what you already have and reports missing items, builds shopping lists, and schedules meals on a plan for natural-language times. It returns structured results so clients can render visual cards alongside spoken replies.MIT
- AlicenseNot gradedqualityCmaintenanceEnables Alexa+ to remember kitchen inventory, track expiration dates, decide what to cook first, and identify missing recipe ingredients or shopping gaps. It provides fast voice-friendly tools for logging groceries, checking expiring items, marking food as used or wasted, and reporting waste and savings.MIT