URL: https://gofastmcp.com/apps/overview
Title: Apps - FastMCP

Documentation Index
Fetch the complete documentation index at:
/llms.txt
Use this file to discover all available pages before exploring further.
Skip to main content
Meet
Prefect Horizon
, the enterprise MCP gateway built by the team behind FastMCP
FastMCP
home page
v3
Prefect Horizon
PrefectHQ/fastmcp
25,596
PrefectHQ/fastmcp
25,596
Search...
Navigation
Apps
Apps
Search the docs...
Ctrl
K
Documentation
Get Started
Welcome!
Installation
Quickstart
Servers
Overview
Core Components
Working with Tools
MCP Providers
Interactivity
Extensibility
Auth
Deployment
Apps
Overview
Quickstart
NEW
FastMCPApp
NEW
Interactive Tools
NEW
Generative UI
NEW
Custom HTML
Reference
Clients
Overview
Client-Only Package
Transports
fastmcp-remote
Operations
UPDATED
Authentication
UPDATED
Integrations
Auth
Web Frameworks
AI Assistants
AI SDKs
MCP.json
More
Settings
CLI
Upgrading
Development
What's New
FAQ
Apps
Apps
Copy page
Give your tools interactive UIs rendered directly in the conversation.
Copy page
New in version
3.0.0
A FastMCP app is a tool that returns an interactive UI instead of text. When the host calls it, the user sees a chart, a table, a form, or a whole dashboard rendered right inside the conversation, with working sort, search, tooltips, and state.
The dashboard above is a
Prefab
showcase — a taste of what you can deliver from a FastMCP tool. Every card, chart, slider, dialog, and carousel is a Python component. Build a composition like this, add
@mcp.tool(app=True)
, and the host renders it inside the conversation.
Under the hood, FastMCP builds on the
MCP Apps extension
and uses Prefab to describe UIs in Python.
pip
install
"
fastmcp[apps]
"
Prefab
is under active development with frequent breaking changes. FastMCP sets a minimum
prefab-ui
version but does not pin an upper bound —
pin
prefab-ui
to a specific version in your own dependencies
before deploying.
​
Pick your path
Four patterns cover almost everything you’d want to build. Most apps start with Interactive Tools; you only reach for the others when you’ve hit a specific limit.
​
Interactive Tools
— start here
Add
app=True
to a tool and return a Prefab component. Charts, tables, dashboards, and client-side interactivity (toggles, tabs, filtering) all work without any server round-trips.
@
mcp
.
tool
(
app
=
True
)
def
team_directory
()
->
DataTable
:
return
DataTable
(
columns
=[
...
],
rows
=
employees
,
search
=
True
)
​
FastMCPApp
— when the UI calls back to the server
Forms that save data, buttons that trigger backend work, search that hits a database.
FastMCPApp
manages the wiring between UI actions and backend tools, with stable tool identifiers that survive server composition.
​
Generative UI
— when the LLM writes the UI
Register one provider and the model can write Prefab code tailored to the current data and request. The user watches the UI build up as the model generates it.
mcp
.
add_provider
(
GenerativeUI
())
​
Custom HTML
— when you need full control
Write your own HTML, CSS, and JavaScript. Use a specific framework, drop in a map or 3D viewer, embed video. You’re talking to the MCP Apps protocol directly.
​
What’s next
Quickstart
— build a working app in a minute
Examples
— complete working servers you can run today
Providers
— ready-made capabilities (approvals, choice pickers, file upload, forms) you add with one line
Development
— preview app tools locally with
fastmcp dev apps
OpenTelemetry
Previous
Quickstart
Next
Ctrl
+I
discord
github
website
x
Powered by
This documentation is built and hosted on Mintlify, a developer documentation platform
Assistant
Responses are generated using AI and may contain mistakes.
\n\n
\n
\n \n
\n
