Skip to main content
Glama

ShelfLife MCP ๐Ÿฅฌโฐ

An MCP server that gives Alexa+ a live household food inventory โ€” expiry warnings, use-it-up recipes, and grocery lists โ€” built to end the "I forgot it was in the fridge" economy.

Track: Alexa+ (self-hosted MCP server, spec 2025-11-25, Streamable HTTP) ยท Mini-challenges: Open Source + AWS Builder Built for the Build, Ship, Shape: Amazon Developer Hackathon.

node server/index.js        # zero npm dependencies, Node 18+
โ†’ MCP endpoint   http://localhost:8931/mcp
โ†’ Alexa+ sim     http://localhost:8931/simulator/

Why

~1/3 of food produced is wasted, and a huge slice of household waste is simply food that expired unnoticed. Voice assistants already sit in the kitchen โ€” but they can't see your pantry. ShelfLife fixes that: talk to it like Alexa, and it knows what you own, what's dying, and what to cook tonight.

Related MCP server: yes_chef_mcp

What's in the box

Piece

What it is

core/mcp-core.js

Isomorphic MCP core: 9 tools (pantry CRUD, expiry radar, use-it-up meal suggestions, grocery list) + a JSON-RPC 2.0 / MCP message handler

server/index.js

Self-hosted MCP server โ€” Streamable HTTP transport (POST/GET/DELETE /mcp), session IDs, SSE support, JSON-file persistence. Zero npm dependencies

simulator/

Simulated Alexa+ experience โ€” browser chat + voice (Web Speech API) that runs the same core through real initialize โ†’ tools/list โ†’ tools/call flows, with a live MCP protocol inspector so you can watch the JSON-RPC messages

aws/bedrock-meals.mjs

Optional AWS Builder integration: enriches suggest_meals with Claude on Amazon Bedrock (docs/AWS_BUILDER.md)

Alexa+ integration (the track requirement)

  • The MCP server implements Streamable HTTP with protocol-version negotiation (2025-11-25 / 2025-06-18 / 2025-03-26), initialize, notifications/initialized, ping, tools/list, tools/call, and Mcp-Session-Id โ€” see server/index.js:handlePostMcp().

  • Point any MCP client at it:

curl -X POST http://localhost:8931/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
  • The simulator is the "simulated Alexa+ experience" path done properly: it is not a mock โ€” it executes the identical JSON-RPC handshake (initialize โ†’ notifications/initialized โ†’ tools/call) against the identical core the HTTP server serves.

Tools

pantry_add_item ยท pantry_list ยท pantry_check_expiry ยท pantry_remove_item ยท suggest_meals ยท grocery_add ยท grocery_list ยท grocery_remove ยท kitchen_stats

Design notes

  • Explainable urgency: pantry_check_expiry ranks by real date math; suggest_meals scores recipes by how much expiring food they consume โ€” no black box.

  • One core, two transports: the browser demo and the HTTP server cannot drift apart, because they literally share core/mcp-core.js.

  • Zero-dependency server: a pantry volunteer (or you) can run this on a potato. Persistence is a human-readable JSON file (data/pantry.json).

Demo

Open the simulator and try: "what's expiring?" โ†’ "what can I cook tonight?" โ†’ "I bought 2 kilos of chicken" โ†’ "add milk to the shopping list" โ†’ "kitchen summary". Flip to the protocol panel to watch each utterance become an MCP tools/call.

License

MIT โ€” see LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search recipes, compose nutritionally balanced meals, optimize weekly meal plans based on macro targets for family members, and generate consolidated grocery lists from a personal recipe database.
    -
  • F
    license
    A
    quality
    B
    maintenance
    Enables users to manage their fridge inventory by listing, adding, removing, checking items, and identifying expiring items, as well as getting dinner ideas from available ingredients.
    5
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to read current pantry inventory and low-stock shopping needs, export a shopping queue, and perform idempotent inventory adjustments and catalog link management through remote MCP tools.
    MIT