Inspiration
The question "what should I make for dinner?" gets asked in every kitchen, and the answer always depends on what's already on the shelf. Alexa+ integrations run on MCP, so I wanted to build the smallest real MCP server that gives Alexa+ a useful memory of a household's pantry, and a way to demo it without Preview access.
What it does
Pantry Chef is a self-hosted MCP server (Streamable HTTP, spec 2025-11-25) that exposes four tools: list_pantry, add_to_pantry, remove_from_pantry and suggest_meals. suggest_meals ranks recipes by how many ingredients you already have and tells you what's missing, with an optional time limit. A simulated Alexa+ web client lets you say things like "what can I cook tonight?", "add bread and avocado" or "we're out of eggs", maps them to MCP tool calls, and reads the structured result back in a voice-assistant style. The side panel shows the live tools/list and the last raw JSON-RPC exchange so you can see the protocol working.
How I built it
Plain Node.js with zero dependencies. server.js implements the Streamable HTTP transport by hand: JSON-RPC 2.0 over POST /mcp, an Mcp-Session-Id issued on initialize, 202 for notifications, structuredContent next to text content, CORS for browser clients. The same process serves the simulator page. The simulator is a single HTML file with a small intent matcher.
Challenges I ran into
Getting the transport details right without an SDK: session headers, the notification/response split, and batch handling. Keeping the "NLU" tiny while still handling natural phrasing like "we're out of eggs" vs "add eggs".
Accomplishments that I'm proud of
A working MCP server that any Streamable HTTP client (including MCP Inspector) can connect to, in one file with no install step.
What I learned
How little is actually needed to stand up a spec-compliant MCP server, and how well the tool/structured-result model fits a voice assistant.
What's next for Pantry Chef
Connect it to a real Alexa+ Preview integration, add barcode/receipt input for the pantry, and pull recipes from a real source instead of a hardcoded list.
Log in or sign up for Devpost to join the conversation.