Technical demo

Claude can order pizza — including payment authorization.

Riviera turns a restaurant's menu, prices, delivery rules, and order flow into an agent-readable storefront, so AI assistants can quote, authorize payment, and submit real order requests.

This is a technical demo, not a live food delivery service. It is live at riviera-lime.vercel.app.

The pizza moment

The core thing Riviera proves: an AI assistant can go from a customer's request all the way to a captured payment on a restaurant-accepted order, with a real human at the restaurant confirming it before anything is final and a real payment authorization step the customer completes themselves.

Claude checks menu and delivery
Claude quotes the order
Customer authorizes payment through Stripe Checkout
Restaurant receives a signed review link
Restaurant accepts
Riviera captures payment
Claude can report final status

Important disclaimers

Live demo endpoints

MCP demo

Riviera exposes a customer-agent MCP server with seven tools, over two transports that share the same tool implementations:

get_restaurant
get_menu
check_delivery
create_quote
submit_order
create_payment_authorization
get_order_status

Example prompt

Try this with an MCP-connected assistant pointed at Riviera:

Using Riviera, check whether Tony's Pizza delivers to W9 1AA, quote 2 Margherita pizzas with the 12 inch size, and submit the order. I want to authorize payment before the restaurant receives it.

See docs/demo/claude-pizza-payment-demo.md for the full step-by-step demo script, including the reject/void path.

For restaurant operators

Riviera sends a clean order request to the restaurant by email — only once payment has been authorized, for restaurants that require it. The restaurant opens a signed link, reviews the order, and accepts or rejects it — no app to install, no dashboard login. Accepting captures the authorized payment; rejecting voids it.

What this is not

Technical status

OpenAPI available
Manifest available
MCP smoke tested (local + remote)
Supabase persistence enabled
Stripe authorization-first payment enabled