HomeMend
Provides a household repair and maintenance agent for Alexa+, enabling repair triage, parts lookup and ordering, follow-up scheduling, and maintenance tracking through the HomeMend MCP server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@HomeMendmy dishwasher isn't draining, can you help me fix it?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
HomeMend — a household repair agent for Alexa+
"Alexa, the dishwasher isn't draining." → one safe check at a time → diagnosis → the right part for your model → confirmed order → a follow-up the day it arrives → "Fixed and logged."
HomeMend is a self-hosted MCP server (Model Context Protocol, spec 2025-11-25+ over Streamable HTTP) that gives Alexa+ a household repair and maintenance agent, plus a simulated Alexa+ host (a real MCP client with MCP Apps rendering) because the Alexa+ add-on toolkit is not available to hackathon participants.
Built for the Build, Ship, Shape: Amazon Developer Hackathon 2026, Alexa+ track.
Why it is not a chatbot
What Alexa+ judges called creative | HomeMend |
Agentic workflow that orchestrates across services | triage engine → parts catalog → ordering → follow-up scheduler → maintenance calendar, driven by 10 tools |
Context-aware add-on that maintains state across sessions | every case, order and reminder is persisted per household; reopen the conversation days later from any device |
Purchasing capabilities | two-phase purchase: |
Media support (cards, carousels) / MCP Apps | one MCP App view renders step cards, parts carousel, order confirmation, home brief, case history; every button is a real |
The LLM (Alexa+) owns language. HomeMend owns the safety-reviewed procedure and the state of where the household is in it.
Related MCP server: FixIt MCP
Architecture
┌──────────────────────────────┐ Streamable HTTP (JSON-RPC) ┌──────────────────────────────┐
│ Alexa+ (simulated host) │ ───── POST /mcp initialize ───────▶ │ HomeMend MCP server (Node) │
│ sim/ · real MCP client │ ◀──── tools/list, tools/call ─────── │ server/src/mcp.ts 10 tools │
│ · rule-based planner │ ───── resources/read ui://… ───────▶ │ server/src/engine.ts │
│ · MCP Apps host (AppBridge) │ │ server/src/knowledge.ts │
│ · speech in/out (browser) │ sandbox proxy GET /sandbox.html │ server/src/catalog.ts │
│ · MCP inspector │ ◀──────────────────────────────────── │ server/src/store.ts (JSON) │
└──────────────────────────────┘ └──────────────────────────────┘
▲ iframe (opaque origin) ▲ reads dist-ui/view.html
└── MCP App view server/ui/view.ts (ui://homemend/view-<hash>.html) ┘Transport:
@modelcontextprotocol/server2.3.1 +@modelcontextprotocol/nodeStreamable HTTP, stateless (one server per request), JSON responses, Origin validation (403), per-household identity viaX-Homemend-Household(in production this comes from the account-linked token).Protocol: the SDK implements 2026-07-28 and negotiates down; the simulator requests 2025-11-25 and the inspector shows the negotiated version. A raw
initializewithprotocolVersion: "2025-11-25"returns2025-11-25(covered by tests).MCP Apps:
registerAppTool/registerAppResourcefrom@modelcontextprotocol/ext-apps2.0.3; view is a single self-contained HTML bundle (Vite + singlefile), content-hashed URI,prefersBorder, dark/light via host theme, Alexa+ visual tokens (card#14181E, nested#1B2028, 768×480 base canvas).State:
FileStore(atomic JSON per household) behind aStoreinterface;MemoryStorefor tests. Swap for DynamoDB without touching the engine.Knowledge: 10 hand-authored triage trees (dishwasher ×2, washer, dryer, refrigerator, oven, disposal, water heater, AC, router) with safety notes, escalation nodes and part types; a fictional-brand demo parts catalog with model fitment.
Tools
Tool | Purpose | UI |
| what needs attention: open cases, arrivals, follow-ups, maintenance due | brief |
| household registry (also seeds maintenance intervals) | list |
| opens/resumes a case, returns step 1; clarifies if ambiguous | step card |
|
| step / diagnosis / resolved |
| history, status, order, delivery | case |
| best-match parts with fitment, price, delivery | carousel |
| quote → confirm (never places without | order |
| reminders and the preventive loop | case / brief |
Run it
Requirements: Node 20+, pnpm 9+ (corepack enable).
pnpm install
pnpm -C server build:ui # builds the MCP App view (server/dist-ui/view.html)
pnpm -C server dev # MCP server on http://127.0.0.1:3001/mcp
pnpm -C sim dev # simulator on http://localhost:5173Open http://localhost:5173, press ▶ Guided demo, or type/say:
"What needs attention at home?"
"The dishwasher isn't draining, there's water at the bottom"
"I checked, the filter is clean" → "I found it, the drain hose is cracked near the clamp"
"Show me the parts" → "Order the first one" → "Yes, place the order"
Advance a day (demo clock) → "What needs attention at home?" → tap Install → Installed — it works
Reload the page: the conversation resumes from the server's state.
Talk to it from any MCP client
curl -s -X POST http://127.0.0.1:3001/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'Claude Desktop / Claude Code / Cursor: add http://127.0.0.1:3001/mcp as a Streamable HTTP server. Any host that supports MCP Apps renders the cards; others get the text summaries.
Tests
pnpm -C server test # 12 tests: engine state machine + real MCP client over Streamable HTTP
pnpm -C server typechecktest/mcp.test.ts boots the Express app, connects @modelcontextprotocol/client over Streamable HTTP, runs the full journey through tools/call, verifies state survives a new session, Origin rejection (403), household-id validation (400), and the raw 2025-11-25 handshake.
Deploy (must stay live through judging)
Docker:
docker build -t homemend . && docker run -p 3001:3001 -e PUBLIC_URL=https://your.host homemendRender:
render.yamlblueprint (free plan; sleeps when idle, wakes on first request).Fly.io:
fly launch --copy-configwithfly.toml(persistent volume for/data).
Environment: PORT, HOST, PUBLIC_URL, ALLOWED_ORIGINS (comma list, for a separately hosted simulator), HOMEMEND_DATA_DIR, HOMEMEND_ALLOW_DEMO_CLOCK=false to disable the demo time-travel header.
What is simulated, what is real
Real: the MCP server, its protocol handling, state, tools, the MCP App views, the simulator's MCP client and MCP Apps host, the JSON-RPC traffic in the inspector.
Simulated: the Alexa+ layer. Nobody can reach Alexa+ from this hackathon, so a deterministic planner (
sim/src/planner.ts) picks a tool for each utterance, and the browser speaks the tool's text content. In production Alexa+ does both with an LLM and this server does not change.Demo data: fictional appliance brands and a demo parts catalog, on purpose (no third-party trademarks). The
X-Homemend-Clockheader is a documented demo control to show delivery-day follow-ups.
License
MIT © 2026 Mohamed Gohary
This server cannot be deployed
Maintenance
Related MCP Connectors
Collision-first MCP diagnostics for MCP, API, webhook and agent failures. Returns structured evidence, bounded repair guidance, agent compatibility checks and safe recovery routing.
Salesforce-grounded retrieval, diagnoses, and a vetted-Force marketplace for MCP clients.
Book local tradespeople — plumber, electrician, HVAC, and 7 more — via your AI agent. All US.
Set up and run an in-product AI assistant: widgets, knowledge, MCP connections, usage.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables households to manage appliance inventories, manuals, warranties, and maintenance through natural-language voice interactions, with grounded troubleshooting and consumable reordering.MIT
- AlicenseNot gradedqualityAmaintenanceEnables Alexa+ to diagnose home appliance problems by connecting to a self-hosted MCP server, with capabilities for reading error codes from manuals, tracking household appliances, guiding repairs with visual cards, ordering replacement parts, and scheduling maintenance.MIT
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that gives an Alexa+ household a durable operational memory for home repairs, warranties, and service cases, enabling multi-turn troubleshooting, provider booking, and reminders.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables an MCP client to resolve household appliances, retrieve local manual/warranty/incident records, compare a stored warranty date, review persistent service case history, and draft cited repair cases that only a human can approve or close before export.MIT