A³ MCP Server
Connects A³ local business representatives to Alexa+, enabling voice-driven search for services, live video conversations with business representatives, and appointment booking through Alexa+.
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., "@A³ MCP Serverfind a laser hair removal clinic nearby and book me Saturday at 10am"
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.
A³ Live Representative for Alexa+
Every local business on A³, live on Alexa+, through one MCP server.
Big brands build their own MCP servers for Alexa+. Millions of local businesses (clinics, salons, studios) never will, so for them Alexa can only read out a list. A³ (Triple A) already lets a business set up its own live video representative: a real-time talking avatar with the business's face and voice, prices, answers, rules and calendar. This project connects A³ to Alexa+ with one MCP server, built so that every business on A³ can go live on Alexa without its own integration: a real face on the Echo Show screen, and questions that turn into bookings without leaving Alexa.
Demo scope: the catalog behind
find_providersis three fictional Austin clinics (data/providers.json), each mapped to a representative set up on the A³ platform. Reading the A³ business directory instead of a file is the next step; the tools and views do not change.
Live demo (no install): https://alexa.triplea.studio/sim
MCP endpoint (Streamable HTTP, spec 2025-11-25):
https://alexa.triplea.studio/mcpDemo video (2:41): https://youtu.be/ZM8FqtDVUEk
Alexa+ add-ons are partner-only today, so this repository ships a web simulator of an Echo Show with Alexa+. Every business action in the simulator (search, opening the representative, passing the user's words, reading the booking) is a real MCP tool call to this server, the way an Alexa+ add-on is called; the representative's video and voice then stream over WebRTC. The live conversation window was also tested as an MCP App in Claude and ChatGPT (October 1).
Try it in 1 minute
Open https://alexa.triplea.studio/sim in desktop Chrome.
Type (or press the mic button and say):
Alexa, find a place nearby for laser hair removal.Say
Yes, please. Hannah, the live representative of a (fictional) Austin clinic, appears on screen and greets you in voice.Ask her anything:
How much is a full leg session? And does it hurt?, thenCan you book me for Saturday at ten?. She books you herself; the simulated Alexa passes the name and phone of its signed-in (demo) user, so you are not asked.Say
Thanks, goodbye, thenAlexa, add it to my calendar. Alexa fetches the booking over MCP and shows it in the simulator's stand-in for Alexa's calendar.
The green lines in the corner show each MCP tool call and its latency (Alexa's built-in calendar is marked as such; it is not an MCP call).
Demo limits: one live conversation at a time (each one uses a real GPU avatar slot), up to 5 minutes. If you see "All representatives are busy", try again in a minute. The three clinics are fictional; no real appointment is created.
Related MCP server: AgentProfiles
How it works
flowchart LR
U((User)) -- voice --> AX["Alexa+ (simulated):<br/>speech to text, LLM, Alexa voice"]
AX -- "MCP tools/call<br/>(Streamable HTTP)" --> S["A³ MCP server<br/>(this repo)"]
S -- "find_providers<br/>catalog" --> AX
AX -- "MCP Apps view<br/>ui://a3/talk.html" --> W["Representative window<br/>(sandboxed iframe on the Echo Show screen)"]
W -- "WebSocket /avatar" --> S
S -- "relay, server-side session params" --> A3["A³ platform:<br/>business's representative<br/>(knowledge, rules, calendar)"]
A3 -- "WebRTC video + voice" --> W
AX -- "ask_representative<br/>(user's words, + profile once)" --> S
S -- "chat message into the live session" --> A3
A3 -- "booking_confirmation" --> S
AX -- "get_representative_booking" --> S
AX -- "add_to_calendar (Alexa built-in)" --> CAL[(Alexa calendar)]Who listens. On a real Echo Show, third-party web pages in the built-in browser get NotAllowedError for the microphone instantly, with no prompt (see the friction log). We could not test an Alexa+ add-on view itself, but we expect the same, and Alexa already listens. So Alexa stays the ears: it recognizes speech and passes the user's words to the representative with ask_representative; the representative answers on screen in video and voice. In hosts that grant the microphone (we tested Claude and ChatGPT), the same window talks to the user directly.
Who books. The business's representative books, not Alexa: it knows the business's rules, services and calendar. Alexa already knows the signed-in user, so ask_representative can carry the user's name and phone once, and the representative never asks for them. In a real deployment this needs the user's consent; the simulator passes a fixed demo profile. Afterwards Alexa reads the confirmed booking with get_representative_booking and adds it to its calendar (in the simulator, a stand-in card).
MCP tools
Tool | What it does | UI (MCP Apps) |
| Nearby businesses for a service, with prices and whether a live representative is available |
|
| Opens a live video conversation with the business's A³ representative |
|
| For voice hosts that listen themselves: passes the user's words into the open conversation | — |
| The appointment the representative confirmed in the last conversation | — |
| Fallback booking for businesses without a representative (demo, no real appointment) |
|
All five tools declare outputSchema and return structuredContent. Views follow the Alexa+ MCP Apps rules: each is one self-contained HTML document (libraries inlined, no external fonts), rendered in a sandboxed iframe, with its network declared in _meta.ui.csp (connectDomains, resourceDomains) and host communication only through the MCP Apps postMessage bridge.
Code map
Path | |
| MCP server (tools, MCP Apps resources), WebSocket relay to the A³ platform, demo limits |
| Alexa+ simulator, server side: LLM turn loop that calls the MCP server over a real MCP client; Alexa voice; Alexa's built-in |
| Simulator page logic: speech recognition, follow-up mode, MCP Apps host bridge ( |
| Representative window: LiveKit WebRTC video and voice, subtitles, microphone where the host allows it |
| Result and confirmation views |
| Diagnostic window: what a host allows inside an MCP Apps view (video, sound, WebSocket, mic, WebRTC, nested frames) |
| Three fictional Austin clinics used in the demo |
Run it yourself
Requires Node 22+.
npm ci
cp .env.example .env # fill in GEMINI_API_KEY; ELEVENLABS_API_KEY is optional
set -a; . ./.env; set +a
npm start # http://localhost:3401/sim, MCP at http://localhost:3401/mcpThe simulator's "Alexa" is played by Gemini Flash with function calling; Alexa's voice is ElevenLabs (falls back to the browser's voice). The live representatives run on the A³ platform, a hosted service: the relay connects to the demo businesses set up there, so no GPU is needed locally.
Use it as an MCP App in Claude or ChatGPT
Add https://alexa.triplea.studio/mcp as a custom connector (Claude: Settings → Connectors; ChatGPT: Developer mode → Create app, no auth). Ask: "Find a laser hair removal clinic in Austin and let me talk to their representative."
Running on AWS
Public endpoint (
alexa.triplea.studio): Amazon EC2 Graviton (t4g) with an Elastic IP, Caddy for TLS in front of the Node server (systemdservice), keys in an environment file outside the repository; the security group opens only HTTP/HTTPS publicly (HTTP redirects to HTTPS). Demo limits are set by environment (PUBLIC_MODE,MAX_LIVE_SESSIONS,MAX_LIVE_SECONDS,SIM_*, see.env.example).Live representatives: the A³ platform renders each representative's video and voice on Amazon EC2 GPU instances (Spot, us-east-1) and streams it over WebRTC from a media server on the same fleet.
talk_to_representativeopens one such session.Fleet availability: an AWS Lambda controller on an Amazon EventBridge schedule replaces reclaimed Spot instances, falls back to On-Demand, watches Spot prices, and alerts through Amazon SNS.
What was built for this hackathon
A³ (the avatar platform: real-time talking avatars, per-business setup, knowledge and booking) existed before the hackathon and is used here as a hosted service. Everything in this repository was built from October 1, 2026 for the Alexa+ track:
the MCP server with five tools and three MCP Apps views, following the Alexa+ add-on layout and CSP rules;
the representative window as a single self-contained MCP Apps document with WebRTC video;
the relay that lets a sandboxed view reach the A³ platform: the server, not the view, sets the session parameters and limits;
voice-host mode: Alexa listens and passes words in with
ask_representative, because Echo Show web pages get no microphone;booking by the representative with the assistant's user profile, and the hand-off of the booking back to the assistant's calendar;
the Echo Show style Alexa+ simulator that calls the MCP server over real MCP;
demo protection for a public endpoint: one live conversation at a time, time limit, rate limits.
License
MIT, see LICENSE. The A³ platform the relay connects to is a separate hosted service and is not covered by this license.
This server cannot be deployed
Maintenance
Related MCP Connectors
Verified local businesses, bookable by AI agents: services, prices, availability and appointments.
Find participating local service providers and book live appointment times.
Discover local services and availability, then create, track, reschedule, or cancel bookings.
Discover and book businesses via AI agents.
Related MCP Servers
AlicenseAqualityCmaintenanceEnables AI assistants to discover and book local service businesses like barbers, plumbers, and mechanics directly through MCP-compatible tools.951 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search for businesses, check availability and pricing, and book appointments after user confirmation through trusted WebMCP tools.3 npmMIT
- AlicenseAqualityAmaintenanceBook a table, an appointment or a place in a class at a real local business. Live availability, instant confirmation, no account and no API key. Eight tools: search, fetch, get_business, check_availability, create_booking, check_booking, cancel_booking and request_listing. Guest emails in eight languages. Hosted at https://g-guest.app/api/mcp814 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to place real phone calls, engage in spoken conversations across 12 languages, and report the outcomes for tasks like booking appointments, answering questions, negotiating, or confirming orders.MIT