Housewarden
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATABASE_URL | No | Postgres connection string, required when HOUSEWARDEN_DB=pg. | |
| HOUSEWARDEN_DB | No | Database type: 'pglite' (embedded, HOUSEWARDEN_DATA_DIR, default .data/pglite) or 'pg' (DATABASE_URL). | pglite |
| HOUSEWARDEN_TOKEN | Yes | Bearer token for /api/mcp (≥ 16 chars). Default: generated on first npm run dev. | |
| HOUSEWARDEN_MCP_APP | No | 0 switches off the ui://housewarden/pending MCP App resource (on by default). | 1 |
| HOUSEWARDEN_CURRENCY | No | Used when the demo household is created. | PKR |
| HOUSEWARDEN_DATA_DIR | No | Directory for embedded PGlite data. Default: .data/pglite | |
| HOUSEWARDEN_TIMEZONE | No | Used when the demo household is created. | Asia/Karachi |
| HOUSEWARDEN_PUBLIC_URL | No | Endpoint URL shown on /settings. Default: derived from the request. | |
| HOUSEWARDEN_ADMIN_SECRET | Yes | Console login secret (≥ 8 chars). Default: generated on first npm run dev. | |
| HOUSEWARDEN_COOKIE_SECURE | No | Set 1 behind HTTPS. | 0 |
| HOUSEWARDEN_ALLOWED_ORIGINS | No | Comma-separated browser origins allowed to call the endpoint. | |
| HOUSEWARDEN_CONFIRM_TTL_SECONDS | No | How long a pending action waits for approval. | 600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_membersA | Lists the people in the household with their roles. Needs nothing. |
| get_household_summaryA | Gives a spoken-ready overview of what is due, overdue, waiting for approval and whether the audit log is intact. Needs nothing. |
| list_billsA | Lists bills, unpaid ones by default, soonest first. Optionally needs a status filter. |
| get_billA | Reads one bill in detail. Needs the bill name or id. |
| list_choresA | Lists chores, open ones by default, with who they are assigned to. Optionally needs a status filter or a member. |
| list_shoppingA | Lists what is still to buy, grouped by category. Optionally includes checked-off items. |
| list_remindersA | Lists upcoming reminders, soonest first. Optionally needs a status, a member, or a time window in hours. |
| list_devicesA | Lists the smart-home devices with their current state, and the routines that can be run. Needs nothing. |
| get_budget_summaryA | Summarises spending for a month by category, with the previous month for comparison. Optionally needs the month as YYYY-MM. |
| list_pending_actionsA | Lists actions waiting for approval, with what each would change and when it expires. Optionally needs a status filter. |
| get_audit_logA | Reads the tamper-evident audit log, newest first. Optionally needs a limit, a starting point, or an action id. |
| verify_audit_chainA | Recomputes every hash in the audit log and reports whether the chain is intact. Needs nothing. |
| add_memberA | Adds a person to the household as an adult or a child. Needs a name and a role; a 4–8 digit PIN is optional. |
| add_billB | Adds a bill with an amount and due date, optionally recurring. Needs the name, amount and due date. |
| update_billB | Changes a bill's name, amount, currency, due date or recurrence. Needs the bill and at least one field to change. |
| mark_bill_paidA | Marks a bill as paid and, if it recurs, creates the next one. Needs the bill name or id. |
| add_choreB | Adds a chore, optionally assigned to someone and repeating. Needs a title. |
| assign_choreA | Assigns a chore to a member, or unassigns it. Needs the chore and the member (or null). |
| complete_choreA | Marks a chore done and, if it repeats, schedules the next one. Needs the chore. |
| rotate_choresA | Rotates every open, assigned chore to the next member in the household order. Needs nothing. |
| add_shopping_itemB | Adds an item to the shopping list with a quantity and category. Needs the item name. |
| check_off_shopping_itemA | Checks an item off the shopping list. Needs the item name or id. |
| clear_shopping_listA | Removes checked-off items from the shopping list, or everything if asked. Optionally needs include_unchecked. |
| add_reminderA | Adds a reminder at a specific time, optionally for one member. Needs the text and the time with timezone offset. |
| cancel_reminderB | Cancels a scheduled reminder. Needs the reminder id or its exact text. |
| record_expenseB | Records money spent in a category for the budget. Needs the amount and category. |
| set_device_stateA | Changes a device's state, such as locking a door or setting a thermostat. Needs the device and the fields to change. |
| run_routineB | Runs a saved routine, applying each of its steps together. Needs the routine name. |
| set_policyA | Changes how much confirmation a tool needs, for everyone or for one member. Needs the tool name and the new risk level. |
| confirm_actionA | Approves a waiting action so it runs exactly once. Needs the action id from a needs_confirmation reply. |
| reject_actionA | Declines a waiting action so it never runs. Needs the action id; a reason is optional. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| pending-approvals | Housewarden's confirmation cards: what the assistant proposed, what would change, and Approve / Reject. Rendered by hosts that support MCP Apps. |
TDQS
Scored across 31 tools
Each tool targets a distinct resource and action: chores, shopping, reminders, bills, devices, budget, members, and audit. Within each domain, verbs like list/add/get/update/complete clearly separate operations. No two tools appear to perform the same function, and even similar actions like confirm_action and reject_action are unambiguous opposites.
All tool names follow a consistent snake_case verb_noun pattern (list_chores, add_bill, set_device_state, verify_audit_chain). The only minor variation is 'check_off_shopping_item' using a phrasal verb, but it remains readable and consistent with the overall style. Naming is highly predictable, aiding agent tool selection.
With 31 tools, the server is well beyond the typical 3–15 tool range and into the 'too many' category (25+). While each tool appears purposeful and maps to a specific operation, the sheer number could overwhelm an agent and suggests possible consolidation. The count feels more like a complete application API than a scoped MCP tool surface.
The tool surface covers the major lifecycle operations for its domains: chores can be added, assigned, completed, and rotated; bills have full CRUD plus marking paid; reminders support add/cancel; the audit log supports reading and verification. Minor gaps exist (no delete chore, no remove member, no edit reminder), but agents can work around them, and overall coverage is robust.