Skip to main content
Glama

HouseLedger — a shared-household memory for Alexa+ (MCP server)

Alexa+ track · Build, Ship, Shape: Amazon Developer Hackathon 2026.

Families who moved to Alexa+ report three regressions in the most-used household features:

  1. No attribution – the shared list no longer shows who added what, when, so misheard items ("papaya talons" for "paper towels") cannot be traced. (r/alexa)

  2. All-or-nothing edits – "remove 1 lb of hamburger" removes all 67 lb. (same thread)

  3. Reminders treated as tasks – every announced reminder piles up as "Overdue". (r/amazonecho)

HouseLedger is a self-hosted MCP server (spec 2025-11-25, Streamable HTTP, official TypeScript SDK) that Alexa+ (or any agent) calls to keep household state that is:

  • attributed – every item stores speaker, timestamp and the raw heard utterance;

  • misheard-aware – implausible item names are returned as flagged, so the agent asks instead of guessing;

  • quantity-precise – adjust_item applies deltas, never wipes a line;

  • reminder ≠ task – reminders announce once and archive; tasks stay open until completed;

  • undoable – undo_last reverses any change;

  • cross-session – what_changed gives each person a digest of what others changed since they last asked.

Run

Requires Node.js 18+.

npm install
npm start               # MCP at http://127.0.0.1:8787/mcp ; simulator at http://127.0.0.1:8787/
npm run demo            # scripted MCP client smoke test (no LLM needed; run while the server is up)

Environment variables (all optional except for the LLM-driven simulator):

Variable

Purpose

PORT

HTTP port (default 8787)

OPENAI_BASE_URL (or LLM_BASE_URL)

Base URL of any OpenAI-compatible chat API, e.g. https://api.openai.com/v1

OPENAI_API_KEY (or LLM_API_KEY)

API key for that endpoint

OPENAI_MODEL (or LLM_MODEL)

Model name with tool-calling support (default gpt-4o-mini)

OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_API_KEY=sk-... OPENAI_MODEL=gpt-4o-mini npm start

No keys are stored in this repo; the MCP server itself needs no LLM. Household data is kept in data/ledger.json (git-ignored).

The simulator (simulated Alexa+ experience) has speaker selection (voice-profile stand-in), mic input (Web Speech API), spoken replies, an Echo-Show-style list card and a live MCP tool trace.

Related MCP server: mcp-server-custody

Tools

add_items, adjust_item, remove_item, confirm_item, list_items, add_reminder, tick, complete_task, list_reminders, undo_last, what_changed + resource houseledger://list.

License

MIT

Submit (Amazon Alexa+ track)

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables voice-first shared object memory for Alexa+, letting users record where items were last reported, retrieve authorized locations, correct stale records, check shared items in and out, run guided Lost Mode searches, and manage privacy-aware access.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Gives Alexa+ persistent, structured memory of a household kitchen: tracking purchased groceries, flagging items at risk of spoiling, proposing rescue meals from expiring ingredients, and maintaining shopping lists, receipt ingestion, and waste reports through MCP tool calls. Storage, tool logic, and safety controls (consent gates, two-step deletion, rate limiting) are exposed over Streamable HTTP for any MCP client.
    MIT