Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Category SDK
MCP toolkit
Certify
Resources

Ride Booking Category Add-ons

This page describes what a ride booking category MCP server provides on Alexa+, and the data your tool responses must contain so Alexa can render visuals on headed devices (devices with a screen, such as Echo Show).

Overview

When you create your MCP add-on, you declare the ride booking category by choosing ride-booking as the category option in the Alexa AI CLI. Everything else about building, submitting, and certifying your add-on is the same as any other MCP add-on.

Declaring the ride booking category gives your add-on two benefits:

  • Smarter arbitration. The platform can route ride-related requests (for example, "I want a ride") directly to your add-on without requiring the user to say your provider's name. Additional smarter arbitration based on the customer's account linking, preferences, and usage history is coming soon.
  • Visual experiences on headed devices. When your tool responses contain the required data described below, Alexa can render rich cards (maps, ride options, checkout flows) on headed devices.

How visual rendering works

Your tool responses can be structured or unstructured, but we recommend using structured responses to aid Alexa's comprehension and accuracy. Because Alexa needs to understand your response to extract the right data, use clear, descriptive field names for the required information described below.

Key rules:

  • All image URLs must be publicly reachable HTTP or HTTPS URLs. The device fetches images directly, so URLs that require authentication or resolve to internal/private hosts may fail silently and the visual may not render.
  • If a tool response is missing any of the required data for a given capability, Alexa may skip that visual. Your spoken or text response still reaches the customer normally.
  • Optional fields may be omitted freely. The visual can still render without them.
  • You don't build or call anything extra. Alexa renders the visual automatically from the data you return in your tool response.

Worked example

Suppose your get_ride_estimates tool returns the following (JSON or plain text both work):

{
  "provider": "Acme Rides",
  "rides": [
    {
      "type": "Standard",
      "fare": "$12.50",
      "eta": "12 min",
      "distance": "4.8 mi",
      "image": "https://cdn.example.com/rides/standard.png"
    },
    {
      "type": "XL",
      "fare": "$18.00",
      "eta": "14 min",
      "distance": "4.8 mi",
      "image": "https://cdn.example.com/rides/xl.png"
    }
  ]
}

Alexa reads the provider name plus two ride types with names, fares, durations, distances, and images, and can then render the ride comparison card on the screen. If the image URL were missing on any ride type, the visual may be skipped (per the missing-data rule above), but the spoken response would still be delivered.


Capabilities with automatic visual rendering

You are free to build and bring additional tools and capabilities of your own. The capabilities listed below are the ones Alexa currently provides automatic visual rendering for on headed devices.

They are listed in the order of a typical ride-booking journey.

Confirming a pickup or drop-off location

Renders location suggestion cards when a place search returns multiple candidates, allowing the user to select the correct one.

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
List of candidate locations Yes Two or more location options.

Each candidate location must include:

Field Required Description Example
Name Yes The human-readable name of the place. Central Library
Address Yes The full postal address as a single string (street, city, state, postal code). 400 Pine St, Seattle, WA 98101

Getting ride estimates (comparing ride types)

Renders ride-type comparison cards showing two or more ride options side by side. Use this when the response contains two or more distinct ride types to compare. If only a single ride type is returned, use the checkout capability instead.

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
Two or more ride types Yes Each containing the fields below.

Each ride type must include:

Field Required Description Example
Name or label Yes The ride type name. Standard
Fare or cost Yes The fare amount, including currency symbol. $12.50
Estimated trip duration Yes The estimated duration as a string. 12 min
Trip distance Yes A string with units; never a bare number. Include the unit so the value displays without guessing the unit system. 4.8 mi
Ride-type image Yes A publicly reachable image URL (HTTP or HTTPS). Recommended size: 800×600 px (4:3). https://cdn.example.com/rides/standard.png

Reviewing a ride before booking (checkout)

Renders the ride estimate checkout card with a route map, pickup/drop-off details, and payment information so the user can review before confirming.

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
Pickup address Yes The pickup location address. You can provide it as a single line, or as a primary line with an optional secondary line for a suite, unit, floor, or terminal. 400 Pine St, Seattle, WA 98101
Drop-off address Yes The drop-off location address, in the same format as the pickup address. 1200 5th Ave, Seattle, WA 98101
Selected ride type Yes The chosen ride type name. Standard
Fare Yes The fare amount including currency symbol. $12.50
Estimated trip time Yes The estimated duration as a string. 14 min
Distance Yes A string with units; never a bare number. Include the unit so the value displays without guessing the unit system. 4.8 mi
Payment card last four Yes The last four digits of the payment card. 4242
Ride-type image Yes A publicly reachable image URL (HTTP or HTTPS). Recommended size: 800×600 px (4:3). https://cdn.example.com/rides/standard.png
Payment-card image Yes A publicly reachable image URL (HTTP or HTTPS) for the payment card brand logo. Recommended size: 240×150 px. https://cdn.example.com/cards/brand.png
Route-map image Yes A publicly reachable image URL (HTTP or HTTPS) for the route map. Recommended size: 1024×768 px (4:3). https://cdn.example.com/maps/route123.png

Booking a ride (confirmation)

Renders a booking confirmation card with a ride status tracker after the ride is successfully booked.

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
Order ID Yes The booking order identifier. RIDE-8F3A21
Ride-type image Yes A publicly reachable image URL (HTTP or HTTPS). https://cdn.example.com/rides/standard.png
Route-map image Yes A publicly reachable image URL (HTTP or HTTPS). https://cdn.example.com/maps/route123.png

Tracking a ride (ride details)

Renders a ride details card based on the current ride status across the ride lifecycle (driver assigned, en route, arriving, and so on).

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
Pickup address Yes The pickup location address. You can provide it as a single line, or as a primary line with an optional secondary line for a suite, unit, floor, or terminal. 400 Pine St, Seattle, WA 98101
Drop-off address Yes The drop-off location address, in the same format as the pickup address. 1200 5th Ave, Seattle, WA 98101
Vehicle image Yes A publicly reachable image URL (HTTP or HTTPS). https://cdn.example.com/vehicles/sedan.png
Route-map image Yes A publicly reachable image URL (HTTP or HTTPS). https://cdn.example.com/maps/route123.png
Driver name No The assigned driver's name. Jordan
Vehicle make/model No The make and model. Toyota Camry
License plate No The vehicle license plate. 7ABC123

Redirecting to the provider's app (fallback)

Sends a mobile push notification redirecting the user to the provider's native app. This fires when a feature is unsupported on the current device or when a tool returns an error.

Required data:

Field Required Description Example
Provider name Yes The ride-hailing provider. Acme Rides
Error message Yes A user-friendly, non-technical message for display to the customer; no stack traces or internal details. We couldn't find a ride right now. Please try again in a moment.
Deep-link URL No A URL that opens the provider's app so the user can continue; may be an app-scheme deep link or an HTTPS universal link. acmerides://ride/abc123

Choosing between providers (coming soon)

When the user has not named a specific provider and more than one ride-booking add-on is linked to their account, Alexa can render a provider-selection visual with provider logos so the user can choose. This visual is rendered entirely from platform configuration and requires no data from your MCP server.



Was this page helpful?

Last updated: Jul 13, 2026