Build, Ship, Shape · Amazon Developer Hackathon 2026 Track: Alexa+ · MCP server

mise en place, kept honest

Mise

Alexa+ is the model.
This server never guesses.

A pantry and cooking companion for Alexa+. It plans the week, walks a recipe, and tracks what is running low — and it keeps what you reported, what a device sensed, and what it only worked out, visibly distinct in every answer.

Built by a cook. Creative reuse — what's about to turn, what two things in the fridge have never met but should — is most of what cooking actually is, and even a chef runs out of ideas some nights. Mise is that instinct, held to a rule a human running a kitchen can't always keep: never once make something up to sound helpful. (For how that rule is enforced in code — tested, versioned, with the gaps named rather than hidden — read on, or jump straight to the README.)

01 — what "what have I got" actually gets you

Three kinds of true, never merged into one

Ask the pantry what it holds. Nothing is rounded up into a tidy, uniform list — a stated date, a worked-out estimate, and a genuine gap all stay labelled as what they are.

> "What have I got?"
Spinach — roughly 4 days by my reckoning.
Milk — expiring tomorrow, you told me.
Tomato — amount unknown.

null is a real answer here. A pantry that fills it in with a plausible number is a pantry that lies — in exactly the way nobody could catch.

02 — the alternative, and why we didn't

Three places a model would normally guess

Typical assistant
Mise
Lets a model improvise meals, substitutions, expiry advice.
Reads curated tables; when the data has no answer, it says so.
Overwrites a pantry quantity the moment a new report arrives.
Keeps an event history, so stated, inferred, and unconfirmed stay distinguishable.
Tells you how much money or waste a suggestion saved.
Offers a recipe or a scrap-tip — never a figure nobody measured.
03 — the shortest proof available

Same pantry, same week, same plan — byte for byte

The weekly planner is a pure function over what's in the pantry. Run it twice on the same input and it doesn't just agree — it hands back the same hash.

run 1eace9ae29e3e7237948d7086156fc42f623443e4d42347df16ea5ddf002b2057
run 2eace9ae29e3e7237948d7086156fc42f623443e4d42347df16ea5ddf002b2057

SHA-256 over an illustrative plan payload, computed twice for this page — not a captured plan_week run. Same discipline either way: a model that plans your week gives a different one each time and can't tell you why either happened. This can hand you a hash.

04 — what the pantry knows about itself

Three shelf tags, not one blended guess

confirmed

You said so

Reported by voice or written in through the add-on, with an amount somebody actually counted.

inferred

Worked out

Derived from the shelf-life table and how long ago an item was last confirmed — labelled as an estimate everywhere it travels.

stale / unknown

Due for a check

Not recently confirmed, or never given an amount. pantry_audit asks about these — it never assumes them.

The demo pantry's kitchen-confidence figure: 33% confirmed with an amount someone counted. That number is deliberately strict — a flattering one would be no use to anybody deciding what to trust.

05 — a floor is not a hedge

"At least 284, and I mean at least"

Most home recipes don't state every amount. Instead of filling the gap with a plausible number, the nutrition answer names exactly which ingredients it could account for and stops there.

> "How many calories is that?"
At least 284 a serving — that's five of six ingredients I can account for, and the rest can only add to it. I have no figures for the plant milk powder, so I stop short of a total.
06 — what's actually been checked

Evidence, not adjectives

363 / 363automated tests passing
0data-validation errors across 6 curated tables
151shelf-life rows, 100% of lookups answered
2 / 430curated rows formally signed off so far

That last number is the honest one: most of the curated cooking advice hasn't been read end-to-end by a second person yet. The review queue ranks what to check first by what it would cost if a row were wrong — the garlic-under-oil row is first, by a distance, because that one is a safety question and not a dinner one.

07 — where this stands

Built, tested, and run end to end against a real MCP client

The pantry ledger, the planner, six cooking tools, substitutions, zero-waste pairing, the UCP checkout, and the four MCP Apps views all run today and are held up by the test suite above. The MCP round trip — tool listing, guest tools, account-gated rejection, and all four ui:// views — is verified against a real MCP client over Streamable HTTP, including the MCP Apps host handshake itself: a small simulated Alexa+ experience plays Alexa+'s own role (narrate, never decide) against the real server, and renders each view's live data through the genuine host bridge, not a guess at the protocol. What's still unverified is Alexa+'s own hosted Web Simulator specifically — region- blocked from here — which is exactly the gap the simulator exists to cross for this submission.