# 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` (a `ui://dyme/…` address, mirrored to `_meta["ui/resourceUri"]` and ChatGPT's `openai/outputTemplate`). The `card` field in `tools.json` gives 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](https://dyme.earth/ai/docs/tools), 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.

HTML version: https://dyme.earth/ai/docs/cards
