> ## Documentation Index
> Fetch the complete documentation index at: https://docs.impellabs.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP apps and approvals

> The ImpelLabs card in your assistant, and how an action that needs a yes waits.

A client that supports MCP Apps shows ImpelLabs results as cards inside the conversation. The server offers one view for this: the resource `ui://impellabs/card`, with the MIME type `text/html;profile=mcp-app`.

## What the card shows

The card draws the same working cards as the ImpelLabs chat. A tool result carries the card in `structuredContent`. The card kinds include:

* Reports, charts and tables of records.
* Plans, questions and forms.
* Previews of an agent, an app or a workflow.
* Lists of free times to book.
* Files.
* Approval cards for an action that waits for a yes.

A tool shows a card when it returns one, or when its call waits for approval. Such a tool has `_meta.ui.resourceUri` in `tools/list`. A card is a view of the result. The text answer is always in `content` too.

## Approve from the card

A call that needs a yes returns a card with the exact action and its fields. The card has Approve and Not now. When you select one, the card calls the tool `settle_approval` with `approval_id`, `approve` and `terms`.

* `terms` is a hash of the action shown. If the action changed, the answer fails with `changed`. A new approval is needed.
* If nothing waits under this id, the answer fails with `not_waiting`. Another approver may have it. See Approvals in the app.

Only the card may call `settle_approval`. It is hidden from the model (`visibility` is `app`), so a model cannot approve its own action. A client lists it only when it draws cards.

## How the server knows

A client says it draws cards in `initialize`, with the extension `io.modelcontextprotocol/ui` and the MIME type above in `capabilities.extensions`. Without it, the server sends no card view and no `settle_approval`. Approve in the app instead.

The view loads no outside address. A link on the card opens an ImpelLabs page through the client. The card cannot open any other address.

## Resources

| Method | Answer |
| - | - |
| `resources/list` | The card resource. |
| `resources/read` | The card's HTML, for `ui://impellabs/card` only. |
| `resources/templates/list` | An empty list. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.