Result cards
Chloe's search, hotel, rates, comparison and booking-review results are drawn as interactive cards inside the assistant. The cards follow the MCP Apps standard (the io.modelcontextprotocol/ui extension).
Which assistants draw them
| Assistant | Cards |
|---|---|
| Claude (web, desktop, mobile) | Yes |
| ChatGPT | Yes |
| Dyme's website chat | Yes |
| Meta Muse and other assistants | No. Answers are text, and hotel and flight answers end with a link to a page that shows the same results as cards. |
How they work
- A tool that draws a card names it in
_meta.ui.resourceUri(aui://dyme/…address, mirrored to_meta["ui/resourceUri"]and ChatGPT'sopenai/outputTemplate). Thecardfield intools.jsongives each one. - The card is HTML served as an MCP resource with the type
text/html;profile=mcp-app. The assistant runs it in a sandboxed frame and passes it the tool's result. - A card can call a small set of tools itself, for photos, rooms, the results map, a comparison's progress and Chloe's take as it loads. These are marked
"visibility": ["app"], listed under "Used by the cards" in the tool reference, and the model never sees them. - A card uses the assistant's own fonts and colours and adds Dyme's accent.
- Links from a card open in a new browser tab: the hotel's page, a booking link, or another site in a price comparison.
What the model sees
The assistant's model reads each tool's text result and structured result, not the card. Tool results tell the model to give a short judgement and leave the list to the card, so the answer does not repeat every option.
Card addresses change
Assistants keep a copy of a card by its address. When a card changes, Dyme publishes it at a new address and keeps every older address working, so an older conversation still shows its cards.