Inspiration

Someone at the door can create a real coordination problem in a care household: is the arrival expected, what information is safe to share, and who gets to decide? CareRelay was designed around the idea that an agent should provide an explainable recommendation—not infer access, expose raw media, or send a handoff without a person in control.

What it does

CareRelay is a privacy-first coordination agent for caregiver, visitor, and delivery arrivals. It evaluates a minimum-data event against explicit household preferences. A scheduled caregiver inside an approved window can create a reviewable, confirmation-gated draft for a selected household contact. An outside-window or unknown arrival never produces an inferred access decision.

The project also treats a Ring Playground WHEP live-view record safely. The Playground reports that session as on_demand; CareRelay normalizes it as live_view_started and deterministically returns no action. It does not create a household handoff, message, access decision, device action, or raw-media view.

How we built it

CareRelay is a TypeScript application using the Model Context Protocol TypeScript SDK, Express, and Streamable HTTP. It exposes eight typed MCP tools for event lookup, policy lookup, deterministic recommendations, bounded drafts, confirmation records, explanations, and an Alexa+-oriented companion response.

The web action-card client and the /alexa companion surface are real MCP clients. They issue initialize, tools/list, and tools/call requests to the server rather than using a static mock. The Ring adapter supports sanitized fixtures and the official Ring Developer Playground Event History API, while dropping raw media, media URLs, identity fields, and tokens before data reaches policy code.

Deterministic code owns permissions, recipients, outcomes, and confirmation requirements. The optional Amazon Bedrock adapter can only rewrite an already-approved explanation; it cannot change an outcome, recipient, or action. The final evidence does not claim a live Bedrock invocation.

Challenges we ran into

The Ring Playground simulator's Package, Vehicle, and Motion controls create a WHEP live-view session whose Event History type is on_demand, not an arrival event such as motion_detected. Treating that record as an arrival would create a false household handoff. We added a separate live_view_started event type and a deterministic no_action outcome so the product is honest about what it knows.

The Alexa+ MCP Toolkit, CLI, and official Web Simulator are select-partner tools. The hackathon FAQ permits a self-hosted Streamable HTTP MCP server plus a real web MCP client as the simulated Alexa+ experience, so we focused on making that evidence visible and reproducible.

Accomplishments we are proud of

  • Built a real Streamable HTTP MCP server implementing MCP specification 2025-11-25.
  • Created two real browser MCP clients: a decision action-card surface and an Alexa+-oriented companion surface.
  • Proved expected-caregiver, unknown-arrival, reviewable-draft, audit-only-confirmation, and bounded-explanation flows.
  • Integrated the Ring Developer Playground without exposing raw media or inventing identity.
  • Demonstrated a safe failure for the Playground's non-actionable WHEP live-view record.

What we learned

For household and care-adjacent workflows, the most important agent behavior is often a safe non-action. An LLM can make language clearer, but deterministic policy must own who is contacted, what is permitted, and whether a handoff exists at all. A simulator is valuable only when its event semantics are represented truthfully in both code and demo.

What's next

Next, we would add durable per-household authorization, encrypted storage with retention controls, production Ring OAuth and webhooks, and opt-in delivery adapters. We would also adapt the existing MCP surface to official Alexa+ partner tooling when it becomes available. The current rule remains: no automatic access sharing, no raw-media exposure through MCP, and no external action without explicit authorization.

Built With

Share this project:

Updates

Submission history