The problem
Alexa+ for Builders is built for Priceline. The corner store is not in that room. A bakery with a WooCommerce site and a bookshop with 300 titles will never get a partner manager, and they will not rebuild their catalog around a new protocol to be bought from by voice.
What this is
AgentPOS for Alexa+ is the add-on Amazon describes: a bridge you deploy in front of a store that already runs AgentPOS. It reads only the store's public surfaces (MCP, REST, /.well-known/ucp, checkout) and exposes the Alexa+ contract on the other side: an MCP server over Streamable HTTP with MCP Apps views (carousel, item card, order card, receipt card), and UCP checkout sessions (create, get, update, complete, cancel) with OAuth 2.0, 24-hour idempotency, six-hour sessions and business errors as messages[].
Seven tools, one customer intent each: search_items, get_item, ask_catalog, get_policies, start_checkout, get_order, get_receipt. Every result speaks d content; every failure is a typed error, never an empty result.
The merchant chooses how to get paid
Three payment handlers behind one interface, and the bridge never holds a key or funds:
- The merchant's own processor, through UCP's processor tokenizer pattern. The platform tokenizes the card, the bridge forwards only that token, aits own Stripe key and creates the order only when the charge succeeds. Verified against Stripe in test mode: pi_3UHS5j375U7THQYH, US$2.80, on the store's
- Amazon Wallet (com.amazon.payments.network_token and stored_payment_method), implemented against the published contract and exercised with a simulain preview. Labeled SIMULATED in code, logs and on screen. Never blurred with the real ones.
- USDC on Stellar through x402, when the agent brings a wall
No order exists without settled payment, and the store is me
Three merchant agents, each visible in the demo
- Onboarding turns a store URL into a voice-ready catalog (s summaries, synonyms) and three voice policies, on Claude Sonnet 4.6. Nothing is published until the merchant confirms. Every stage is timestamped inrom URL to first voice purchase is read back from data, not from a stopwatch: 29 seconds on the fixture store.
- Catalog answers what a flat catalog cannot ("is it gluten free?", "does it contain nuts?") on Nova 2 Lite, reading only what the store published, andished that" instead of guessing.
- Guardian stops a duplicate order before any money moves anpoken sentence; the next confirmation is the household's answer, not the agent's decision.
Each agent runs a deterministic rule first and only then lets a model word the result, so the whole demo still works with no AWS credentials at all. Houset week") lives on Bedrock AgentCore Memory and holds order references only: item ids, quantities and an order id, never a name, an address or a card.
Measured, not claimed
Every model call records tokens, latency, model and cost in d as CSV in the repository. A closed checkout session costs US$0.0021 in inference, measured over five sessions, with Bedrock prompt caching cutting the house public playground counts third-party purchases separately from our own scene runs.
The simulated Alexa+ experience
Amazon's own tooling is partner-only, so the simulator is our validation surface: an Echo Show style web app, voice in through the browser and out through lient runs on Bedrock and drives the bridge end to end, rendering the same components and display modes the add-on guide documents. It ships five scenes a judd an inspection summary per turn that checks what Amazon's guidance asks for: voice text first, three to five carousel items, first item under 500 ms, typed
Try it: https://alexa.agentposhq.com Merchant console: https://alexa.agentposhq.com/#/merchant
Payments there are simulated or Stripe test mode; no real money moves. The demo household has a bounded mandate: simulated or test-mode rails only, up to
Open source
Apache-2.0 from the first commit, with the MCP design rules,the cost table and an eleven-entry friction log in the repository.
Built With
- amazon-bedrock
- amazon-ecr
- amazon-ecs
- amazon-nova
- amazon-polly
- aws-codebuild
- bedrock-agentcore
- claude
- hono
- mcp-apps
- model-context-protocol
- node.js
- pnpm
- react
- sqlite
- stellar
- strand-agents
- stripe
- typescript
- ucp
- vite
- vitest
- x402
Log in or sign up for Devpost to join the conversation.