Pantry Relay

io.github.waytzhangv0.1.0Updated Oct 4, 2026

Local SQLite pantry planner with six MCP tools for meals, stock and shopping.

VerifiedSTDIODesktop onlyDatabasesProductivity & Workflow

Overview

AI-generated overview

A local SQLite pantry planner that lets an assistant suggest dinners from current stock, reserve ingredients, and record meals cooked.

What it does
Pantry Relay exposes six tools over stdio: pantry_snapshot, recommend_dinner, confirm_dinner, mark_meal_cooked, cancel_dinner and record_new_stock. It also provides the pantry://household/current resource and a rescue-dinner prompt. Proposals leave stock unchanged; confirming a dinner reserves available ingredients and turns shortages into shopping needs, and marking a meal cooked consumes reserved quantities exactly once. State persists in a local SQLite database.
When to use it
Use it for a single household on one local computer when you want an assistant to plan meals from what is already in stock, track reservations and shortages, and keep a meal history across sessions. It is not intended for multi-household hosting or public deployment.
Requirements
Node.js 24 or newer. The MCP bundle installs into a client that supports .mcpb files; running from source uses npm ci and npm start. No paid cloud account, API key, wallet, hardware or subscription is required. The local HTTP endpoint listens only on loopback, and PANTRY_DB, PANTRY_PORT and PANTRY_MCP_URL can change the database file, port and endpoint.
Before you install
The tools write to a local SQLite database: confirm_dinner reserves ingredients, mark_meal_cooked consumes them, cancel_dinner removes that meal's reservations and shopping needs, and record_new_stock adds stock. The HTTP configuration is described as a local development setup that listens only on loopback and is not suitable for public deployment without household authentication. Date labels organize stock and do not establish food safety, and the demo recipes are not nutritional advice.

Installation

In SourceWeft

  1. Open Pantry Relay in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Pantry Relay

A local household dinner handoff: plan from available food, reserve a chosen meal, remember it across sessions, and record cooking without double-counting inventory. Built with AI assistance as a candidate for the Amazon Developer Hackathon Alexa+ track. Not submitted, not an awarded project, and not an Amazon-certified integration.

Try in your browser

Open the sample kitchen. No installation, login, paid model or cloud account is needed. This static demo uses the same pantry operations with SQLite compiled to WebAssembly through sql.js. Its fictional stock and meal plans stay in this browser's site storage; they are not synchronized between computers. Supported browsers coordinate tabs with Web Locks. Otherwise, use one tab at a time.

Download the browser release and offline preview. The standalone offline file is a preview; direct file opening has not been browser-verified. The hosted sample above is the tested version.

If you try the sample kitchen, share a bug or missing-use-case note on GitHub. Posting requires a GitHub account. No household data is collected by the demo for feedback.

The public site demonstrates the pantry workflow. The real MCP endpoint runs separately in the local application below; the website does not provide a live Alexa session. To rebuild the static files from source, run npm run build:web after installing dependencies. GitHub Pages serves docs/.

Install as a local MCP bundle

Download the MCP bundle for a client that supports .mcpb files and Node.js 24 or newer. It runs the same six tools over stdio and stores its own SQLite database in your home directory, separately from the browser sample. The bundle guide describes the location and limits. It includes the runtime dependencies, but no household data or account credentials.

Run locally, with no recharge

Prerequisite: Node.js 24 or newer. No paid cloud account, API key, wallet, hardware, or subscription is required for this application.

sh
npm cinpm start

Open http://127.0.0.1:8767. Demo stock is fictional, with date labels relative to the first run. The SQLite file is in data/pantry.sqlite. To start a separate fictional household, set PANTRY_DB to a different file. PANTRY_PORT changes the local port.

Try the complete handoff

  1. Enter “Dinner for 2, vegetarian, under 25 minutes.” and choose Find dinner. Stock is unchanged.
  2. Review the recipe, quantities and shortages. Choose Confirm dinner to reserve available ingredients. Shortages become shopping needs.
  3. When that meal was actually cooked, choose Meal cooked. Reserved quantities are consumed once. Refresh: the pantry and meal history remain.
  4. Plan for eight people to exercise shortages. Cancel dinner removes only that meal's reservations and shopping needs. Record real new stock before replanning.

The browser command input uses a small deterministic parser for serving count and minutes. It is not a hosted LLM or a live Alexa session. The recipe ranker uses pantry coverage and near-date stock. The real MCP service exposes that workflow to an agent chosen by the user; no hosted AI inference is bundled or charged by this application.

Agent connection

Connect a client that supports MCP 2025-11-25 Streamable HTTP to http://127.0.0.1:8767/mcp. The official MCP SDK serves JSON responses without a long-lived session. This is a local development configuration: it listens only on loopback and is not suitable for public deployment without household authentication.

Tools: pantry_snapshot, recommend_dinner, confirm_dinner, mark_meal_cooked, cancel_dinner, record_new_stock. It also provides the pantry://household/current resource and rescue-dinner prompt. Reusable agent guidance.

sh
npm run demo# Only on fictional demo data, to explicitly opt into state changes:npm run demo -- --confirm-demo

The SDK client makes actual HTTP MCP calls. The report lists tool inputs and outputs; it does not pretend to be a live Alexa account. To change the endpoint, set PANTRY_MCP_URL.

Verification

sh
npm test

Thirteen checks cover unchanged stock during proposals, exact-once cooking, stale proposals from overlapping users, cancellation, shortages, expiry changes, valid restocking, and official MCP clients over real HTTP and stdio. The HTTP integration test explicitly verifies protocol negotiation returns 2025-11-25. Browser-adapter checks use actual WebAssembly SQLite to verify persisted state, competing tabs, and failed storage writes without partial reservations. npm run build:mcpb creates the installable archive; npm run verify:mcpb checks the unpacked bundle with a real MCP client.

Browser evidence is in evidence/. The recorded flow confirms a two-person skillet, records it cooked, reloads the app, and verifies the retained inventory. See verification record.

Scope and limits

One household, one local computer; no user accounts or external transactions. Original demo recipes are not nutritional advice. Date labels organize stock; they do not establish food safety. Food recorded as received is not automatically substituted into an older plan: cancel and replan. Quantities use grams or whole-item counts. Multi-household hosting, nutritional recommendations, speech recognition, a general language-model agent and certified Alexa deployment are not implemented.

Review materials

Source code is offered under MIT; Bootstrap retains its own MIT notice in public/bootstrap-LICENSE.txt. Dependency licenses stay with their npm packages. The source review archive excludes credentials, household data and dependencies. The installable MCP bundle includes only the server files and their runtime dependencies, with no credentials or household database.

Source: README.md at commit 2950b97

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.0LatestOct 4, 2026