io.modelcontextprotocol/ui). A FastMCPApp registers tools whose results render as interactive components inside the host conversation — with full graceful degradation in clients that don’t support UI.
This page is under construction. The outline below sketches what it will cover.
- Entrypoints vs. backend tools —
entrypoint()registers a tool visible to the LLM, auto-linked to aui://resource;backendTool()registers a tool callable only from within the rendered UI (visibility: ['app']). - Capability negotiation — the UI extension is advertised only when UI components exist; clients that haven’t negotiated it get a plain-text fallback instead of structured UI content.
- Visibility model —
ToolConfig.ui.visibility(['model'],['app'], or both) controls what the LLM sees intools/list. - Mounting apps —
server.addProvider(app)/parent.mount(app.server); mount-prefix-aware action references viaactionRef.