Renting starts with forms — filters, date pickers, contact boxes — and ends in an inbox you have to babysit. RentOuts Voice replaces that first mile with a conversation.
It is an MCP server (Model Context Protocol, Streamable HTTP, spec 2025-11-25) that an Alexa+ assistant can call to serve a real rental marketplace. In one voice session a renter searches published listings ("a two-bedroom in Seattle under $2,000"), opens the details, requests a viewing — which lands in the owner's inbox on the live rentouts.co marketplace, and the owner confirms — and asks where their lease stands, answered from an on-chain rental escrow contract (deposit held, rent released, dates), with public Etherscan receipts.
Everything is real except the voice surface: the data is the production marketplace, the viewing request is a real write, and the lease read is a real blockchain query. Alexa+ brand-preview access is gated, so the demo drives the MCP server exactly as Alexa+ would — same protocol, same transport, same tool calls — via a simulated-assistant harness. The marketplace itself (rentouts.co) is an existing, invite-only product; the MCP server is the new work built for this hackathon.
How it's made
- MCP server: Node + TypeScript, Model Context Protocol spec 2025-11-25 over Streamable HTTP — JSON-RPC 2.0 with Mcp-Session-Id sessions, initialize, tools/list, tools/call, ping, DELETE to end a session, and spec error semantics (-32600/-32601/-32602/-32700). The transport validates Origin (DNS-rebinding guard), enforces sessions, rejects malformed bodies with 400 without going down, and caps body size and open sessions. 32 tests cover protocol conformance, the HTTP transport over a real socket, and tool logic.
- Data plane: the server talks to production Supabase via PostgREST with the anon key only. Row Level Security is the enforcement boundary. search_listings and get_listing read exactly what the public site reads (published listings). book_viewing performs exactly the write the site's contact form performs (an inquiry on a published listing). The server holds no service key and no wallet key.
- Chain: lease_status is a read-only viem call to the RentOuts Escrow protocol (RentEscrow, Ethereum Sepolia): state, deposit held, rent released per period, dates, and the Etherscan link. Testnet, no custody, no keys.
- Voice surface: Alexa+ brand preview is gated, so scripts/alexa-sim.mjs drives the server exactly as Alexa+ would. When Alexa+ access opens, the same endpoint serves it without changes.
Disclosures
- Alexa+ is simulated in the demo (the sanctioned path while brand preview is gated). This is an independent project. It does not imply an Amazon partnership.
- rentouts.co is an existing, invite-only product. The MCP server is the new hackathon work.
- All blockchain reads are Ethereum Sepolia testnet.
- Non-custodial: the server holds no service keys, no wallet keys, and never moves funds.
Demo video: https://youtu.be/atNJ5vOezII Repository: https://github.com/AiAlchemist0/rentouts-alexa-mcp Marketplace: https://rentouts.co
Built With
- alexa+
- ethereum
- model-context-protocol
- node.js
- postgresql
- streamable-http
- supabase
- typescript
- viem
Log in or sign up for Devpost to join the conversation.