Inspiration

Family evenings stall twice: deciding what to cook when someone has an allergy, and deciding what to watch when four people want four different things. Both are negotiations with hard limits, and both are awkward when your hands are full in the kitchen. Plate & Play lets you settle both by voice, with the answer on the TV.

What it does

Dinner. Tell Alexa+ who's at the table ("Ava is eight and allergic to peanuts"). Plate & Play suggests recipes and removes anything unsafe for anyone, showing why ("contains peanuts, and Ava is allergic"). Say "let's go with the first one" and Alexa+ walks you through it: the ingredients, then each step on request ("next", "go back", "repeat that"), scaled to however many you're feeding. Say "set a timer for ten minutes" and a countdown appears on the Fire TV. Out of butter? It offers swaps that never contain someone's allergen.

Movie night. When dinner is done, say "let's pick a movie". Everyone says what they're in the mood for, and the TV shows a ranked shortlist with each person's satisfaction, why titles were ruled out (a PG-13 film for an eight-year-old), and what could be relaxed to open up more options. Anyone can veto by voice, and Select on the remote plays the pick.

Safety is not a preference. Allergies and diets are hard rules, re-checked when cooking starts. The app warns if nobody was asked about allergies, keeps unrecognized allergens as notes matched against ingredient names, and flags the active recipe if an allergy is declared mid-cook.

How we built it

  • Alexa+: a self-hosted MCP server (Streamable HTTP, protocol 2025-11-25) with 13 tools for dinner and movies. Alexa+ handles the language; the server makes the decisions.
  • Deterministic engines: recipe safety and movie negotiation are plain, tested code (43 tests). A language model never decides what is safe.
  • Fire TV: a 10-foot web UI served by the same server, updated live over Server-Sent Events, with a Fire OS WebView wrapper app in the repo. Remote: Up/Down browse, Select cooks or plays, Left/Right step through a recipe.
  • Simulated Alexa+: this demo uses a simulated Alexa+, a page in the repo (/sim/) that turns spoken-style phrases into tool calls and sends them to the real /mcp endpoint. Every tool call is visible, so the MCP server is genuinely doing the work.
  • Testing: the TV screen was exercised in a browser against live server state, including remote keys and timers. The Fire OS wrapper is included but has not yet been run on a physical Fire TV.

Challenges

  • Treating allergies as safety rules, not tastes: unknown allergens, "nobody has been asked yet", and an allergy declared halfway through cooking all needed explicit handling. An early version could have silently dropped an unrecognized allergy, so we added tests for it.
  • Understanding speech in context: "kids" and "family" can mean the food or the film, and "under an hour and a half" must be read as a time limit, not an age.
  • Honest scaling: recipes first scaled to however many people had spoken so far, producing "half an egg", so they now default to the recipe's own serving size and scale when you say "for six".
  • Timers that survive the TV page reloading, so they live on the server.

Accomplishments

One shared household drives a whole evening, dinner then movie, through a single MCP server. Every exclusion comes with a reason. 43 tests cover the safety and fairness logic.

What we learned

  • Keep the model out of safety decisions: a deterministic, testable engine can explain every exclusion, which builds trust.
  • Voice tools need to ask, warn and say "I'm not sure" rather than guess, especially with allergies.
  • A shared, live screen makes a voice assistant feel finished: seeing why something was ruled out matters as much as the spoken answer.

What's next

A real recipe and catalog source, per-household accounts, remembering tastes and allergies between nights, trusted nutrition data, and shopping lists.

Recipes are a small demo set and allergen data is not medical advice. Always read labels.

Built during the hackathon period, starting October 19, 2026, with help from Claude.

Built With

Share this project:

Updates

Submission history