From 79821c4efff5d0fb4a2ef479677b7c6fd13d5716 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 28 Mar 2026 21:18:51 -0400 Subject: [PATCH] Reorganize apps overview TOC (#3689) --- docs/apps/overview.mdx | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/apps/overview.mdx b/docs/apps/overview.mdx index 98856eafd..8b7de1045 100644 --- a/docs/apps/overview.mdx +++ b/docs/apps/overview.mdx @@ -38,7 +38,21 @@ prefab-ui==0.15.0 Without a pin, a `pip install --upgrade` or fresh deploy could pull a newer Prefab version that changes component APIs, breaking your app. FastMCP's minimum ensures baseline compatibility; your pin ensures stability. -## Prefab Apps +## Which Approach? + +Most apps start with **[Prefab Apps](/apps/prefab)** — add `app=True` to a tool and return components. That covers charts, tables, dashboards, and client-side interactivity. + +When your UI needs multiple backend tools with managed visibility and composition safety, use **[FastMCPApp](/apps/interactive-apps)**. + +When you want the LLM to design the UI at runtime, use **[Generative UI](/apps/generative)**. + +When you need your own HTML/JS (maps, 3D, video), use **[Custom HTML](/apps/low-level)**. + +FastMCP also includes ready-made **[app providers](/apps/providers/approval)** that add common capabilities with a single `add_provider()` call. + +## Building Apps + +### Prefab Apps @@ -78,7 +92,7 @@ Prefab apps aren't limited to static displays. Prefab's state system and client- See [Prefab Apps](/apps/prefab) for the full guide. -## FastMCPApp +### FastMCPApp @@ -144,7 +158,7 @@ You *can* build server-interactive UIs without `FastMCPApp` — it's all the sam See [FastMCPApp](/apps/interactive-apps) for the full guide. -## Generative UI +### Generative UI @@ -160,19 +174,7 @@ mcp.add_provider(GenerativeUI()) See [Generative UI](/apps/generative) for the full guide, or the [provider reference](/apps/providers/generative) for configuration options. -## Which Approach? - -Most apps start with **[Prefab Apps](/apps/prefab)** — add `app=True` to a tool and return components. That covers charts, tables, dashboards, and client-side interactivity. - -When your UI needs multiple backend tools with managed visibility and composition safety, use **[FastMCPApp](/apps/interactive-apps)**. - -When you want the LLM to design the UI at runtime, use **[Generative UI](/apps/generative)**. - -When you need your own HTML/JS (maps, 3D, video), use **[Custom HTML](/apps/low-level)**. - -FastMCP also includes ready-made **[app providers](/apps/providers/generative)** that add common capabilities with a single `add_provider()` call. - -## Custom HTML Apps +### Custom HTML All the approaches above use [Prefab UI](https://prefab.prefect.io) to build UIs in pure Python. If you need full control — your own HTML, CSS, JavaScript, a specific framework — you can use the [MCP Apps extension directly](/apps/low-level). You write the HTML yourself and communicate with the host via the [`@modelcontextprotocol/ext-apps`](https://github.com/modelcontextprotocol/ext-apps) SDK.