# @maxhealth.tech/prefab > TypeScript authoring for A2UI and MCP Apps Build the agent UI once, server-side. Emit A2UI for native rendering or $prefab for an MCP Apps iframe. ## Table of Contents ### Introduction - [Getting Started](/prefab/guide/getting-started.md): Install @maxhealth.tech/prefab and build your first MCP App UI in minutes. Covers npm setup, display() helpers, and browser rendering. ### Concepts - [Components](/prefab/guide/components.md): Guide to prefab's 115+ declarative UI components — layout, typography, forms, data tables, charts, media, and interactive elements. - [Actions](/prefab/guide/actions.md): How to attach actions to components — CallTool, SetState, ShowToast, Navigate, and other serializable event handlers for MCP Apps. - [Reactive Expressions (`rx`)](/prefab/guide/rx.md): Reactive template expressions, pipes, signals, and collections — prefab's client-side state system with auto-updating UI bindings. - [Auto-Renderers](/prefab/guide/auto-renderers.md): Auto-generate tables, charts, forms, metrics, and timelines from raw data with autoTable, autoChart, autoForm, and autoMetrics. ### Integration - [MCP Display Helpers](/prefab/guide/mcp-display.md): display(), displayForm(), rendererHtml(), and registerViewerResource() — server-side helpers to return prefab UIs from MCP tools. - [Asking for input](/prefab/guide/input-required.md): Ask the user for input under MCP 2026-07-28 — display_form with elicit, formInputRequest, and reading the answer with acceptedFormInput. - [A2UI](/prefab/guide/a2ui.md): Emit A2UI from a prefab component tree — toA2UI(), the a2ui:// resource helper, the Basic-catalog mapping table, and what degrades on the way across. - [Browser Renderer](/prefab/guide/renderer.md): Mount $prefab wire JSON into the browser with the vanilla DOM renderer. Zero dependencies, works in any iframe or web page. - [PostMessage Bridge](/prefab/guide/bridge.md): PostMessage bridge connecting prefab iframes to MCP Apps hosts (VS Code, Claude, ChatGPT) via prefab:* and ui/* JSON-RPC protocols. ### Reference - [Components Reference](/prefab/reference/components.md): Complete API reference for all 115+ prefab components — props, signatures, and wire format examples for layout, forms, data, media, and charts. - [Wire Format Specification](/prefab/reference/wire-format.md): $prefab v0.3 wire format specification — JSON structure, component nodes, state, actions, pipes, defs, and template slots. - [Rendering Prefab UIs in MCP Apps Hosts](/prefab/reference/mcp-apps.md): Complete guide to rendering prefab UIs inside MCP Apps hosts (VS Code, Claude Desktop, ChatGPT). Covers CSP, ui/* JSON-RPC protocol, and common pitfalls. ### API (from source) - [actions](/prefab/reference/api/actions.md) - [auto](/prefab/reference/api/auto.md) - [mcp](/prefab/reference/api/mcp.md) - [renderer](/prefab/reference/api/renderer.md) - [rx](/prefab/reference/api/rx.md) #### actions ##### Classes - [Class: SetState](/reference/api/actions/classes/SetState.md) - [Class: ToggleState](/reference/api/actions/classes/ToggleState.md) - [Class: AppendState](/reference/api/actions/classes/AppendState.md) - [Class: PopState](/reference/api/actions/classes/PopState.md) - [Class: ShowToast](/reference/api/actions/classes/ShowToast.md) - [Class: CloseOverlay](/reference/api/actions/classes/CloseOverlay.md) - [Class: OpenLink](/reference/api/actions/classes/OpenLink.md) - [Class: SetInterval](/reference/api/actions/classes/SetInterval.md) - [Class: Fetch](/reference/api/actions/classes/Fetch.md) - [Class: OpenFilePicker](/reference/api/actions/classes/OpenFilePicker.md) - [Class: CallHandler](/reference/api/actions/classes/CallHandler.md) - [Class: CallTool](/reference/api/actions/classes/CallTool.md) - [Class: SendMessage](/reference/api/actions/classes/SendMessage.md) - [Class: UpdateContext](/reference/api/actions/classes/UpdateContext.md) - [Class: RequestDisplayMode](/reference/api/actions/classes/RequestDisplayMode.md) - [Class: Subscribe](/reference/api/actions/classes/Subscribe.md) - [Class: Unsubscribe](/reference/api/actions/classes/Unsubscribe.md) ##### Interfaces - [Interface: SetStateOpts](/reference/api/actions/interfaces/SetStateOpts.md) - [Interface: ShowToastOpts](/reference/api/actions/interfaces/ShowToastOpts.md) - [Interface: FetchOpts](/reference/api/actions/interfaces/FetchOpts.md) - [Interface: OpenFilePickerOpts](/reference/api/actions/interfaces/OpenFilePickerOpts.md) - [Interface: CallHandlerOpts](/reference/api/actions/interfaces/CallHandlerOpts.md) - [Interface: CallToolOpts](/reference/api/actions/interfaces/CallToolOpts.md) - [Interface: SubscribeOpts](/reference/api/actions/interfaces/SubscribeOpts.md) - [Interface: ActionJSON](/reference/api/actions/interfaces/ActionJSON.md) - [Interface: Action](/reference/api/actions/interfaces/Action.md) ##### Type Aliases - [Type Alias: ToastVariant](/reference/api/actions/type-aliases/ToastVariant.md) - [Type Alias: DisplayMode](/reference/api/actions/type-aliases/DisplayMode.md) - [Type Alias: StateTarget](/reference/api/actions/type-aliases/StateTarget.md) ##### Functions - [Function: set()](/reference/api/actions/functions/set.md) - [Function: toggle()](/reference/api/actions/functions/toggle.md) - [Function: append()](/reference/api/actions/functions/append.md) - [Function: pop()](/reference/api/actions/functions/pop.md) - [Function: serializeCallbacks()](/reference/api/actions/functions/serializeCallbacks.md) #### auto ##### Classes - [Class: QuickFormBuilder](/reference/api/auto/classes/QuickFormBuilder.md) ##### Interfaces - [Interface: AutoChartOptions](/reference/api/auto/interfaces/AutoChartOptions.md) - [Interface: AutoComparisonOptions](/reference/api/auto/interfaces/AutoComparisonOptions.md) - [Interface: AutoFormField](/reference/api/auto/interfaces/AutoFormField.md) - [Interface: AutoFormOptions](/reference/api/auto/interfaces/AutoFormOptions.md) - [Interface: AutoDetailOptions](/reference/api/auto/interfaces/AutoDetailOptions.md) - [Interface: AutoTableOptions](/reference/api/auto/interfaces/AutoTableOptions.md) - [Interface: AutoMetricDef](/reference/api/auto/interfaces/AutoMetricDef.md) - [Interface: AutoMetricsOptions](/reference/api/auto/interfaces/AutoMetricsOptions.md) - [Interface: AutoProgressStep](/reference/api/auto/interfaces/AutoProgressStep.md) - [Interface: AutoProgressOptions](/reference/api/auto/interfaces/AutoProgressOptions.md) - [Interface: JsonSchemaNode](/reference/api/auto/interfaces/JsonSchemaNode.md) - [Interface: FieldsFromJsonSchemaOptions](/reference/api/auto/interfaces/FieldsFromJsonSchemaOptions.md) - [Interface: AutoTimelineEvent](/reference/api/auto/interfaces/AutoTimelineEvent.md) - [Interface: AutoTimelineOptions](/reference/api/auto/interfaces/AutoTimelineOptions.md) ##### Type Aliases - [Type Alias: ChartType](/reference/api/auto/type-aliases/ChartType.md) ##### Functions - [Function: autoChart()](/reference/api/auto/functions/autoChart.md) - [Function: autoComparison()](/reference/api/auto/functions/autoComparison.md) - [Function: autoForm()](/reference/api/auto/functions/autoForm.md) - [Function: QuickForm()](/reference/api/auto/functions/QuickForm.md) - [Function: statusVariant()](/reference/api/auto/functions/statusVariant.md) - [Function: registerStatusVariants()](/reference/api/auto/functions/registerStatusVariants.md) - [Function: autoDetail()](/reference/api/auto/functions/autoDetail.md) - [Function: autoTable()](/reference/api/auto/functions/autoTable.md) - [Function: autoMetrics()](/reference/api/auto/functions/autoMetrics.md) - [Function: autoProgress()](/reference/api/auto/functions/autoProgress.md) - [Function: fieldsFromJsonSchema()](/reference/api/auto/functions/fieldsFromJsonSchema.md) - [Function: autoTimeline()](/reference/api/auto/functions/autoTimeline.md) #### mcp ##### Interfaces - [Interface: DisplayA2uiOptions](/reference/api/mcp/interfaces/DisplayA2uiOptions.md) - [Interface: A2uiResourceOptions](/reference/api/mcp/interfaces/A2uiResourceOptions.md) - [Interface: DisplayOptions](/reference/api/mcp/interfaces/DisplayOptions.md) - [Interface: DisplayFormOptions](/reference/api/mcp/interfaces/DisplayFormOptions.md) - [Interface: StateUpdate](/reference/api/mcp/interfaces/StateUpdate.md) - [Interface: DisplayUpdateOptions](/reference/api/mcp/interfaces/DisplayUpdateOptions.md) - [Interface: DisplayErrorOptions](/reference/api/mcp/interfaces/DisplayErrorOptions.md) - [Interface: DisplaySuccessOptions](/reference/api/mcp/interfaces/DisplaySuccessOptions.md) - [Interface: FormInputRequestOptions](/reference/api/mcp/interfaces/FormInputRequestOptions.md) - [Interface: McpAppCsp](/reference/api/mcp/interfaces/McpAppCsp.md) - [Interface: McpAppPermissions](/reference/api/mcp/interfaces/McpAppPermissions.md) - [Interface: ResourceMetaOptions](/reference/api/mcp/interfaces/ResourceMetaOptions.md) - [Interface: RendererHtmlOptions](/reference/api/mcp/interfaces/RendererHtmlOptions.md) - [Interface: ViewerResourceOptions](/reference/api/mcp/interfaces/ViewerResourceOptions.md) - [Interface: ResourceConfig](/reference/api/mcp/interfaces/ResourceConfig.md) - [Interface: McpServerLike](/reference/api/mcp/interfaces/McpServerLike.md) - [Interface: ToolResultOptions](/reference/api/mcp/interfaces/ToolResultOptions.md) - [Interface: VsCodeTokenSource](/reference/api/mcp/interfaces/VsCodeTokenSource.md) ##### Type Aliases - [Type Alias: PrefabUpdateWire](/reference/api/mcp/type-aliases/PrefabUpdateWire.md) - [Type Alias: FormValue](/reference/api/mcp/type-aliases/FormValue.md) - [Type Alias: ResourceReadHandler](/reference/api/mcp/type-aliases/ResourceReadHandler.md) - [Type Alias: ThemeBridge](/reference/api/mcp/type-aliases/ThemeBridge.md) - [Type Alias: McpTextContent](/reference/api/mcp/type-aliases/McpTextContent.md) - [Type Alias: McpImageContent](/reference/api/mcp/type-aliases/McpImageContent.md) - [Type Alias: McpTextResourceContents](/reference/api/mcp/type-aliases/McpTextResourceContents.md) - [Type Alias: McpBlobResourceContents](/reference/api/mcp/type-aliases/McpBlobResourceContents.md) - [Type Alias: McpResourceContent](/reference/api/mcp/type-aliases/McpResourceContent.md) - [Type Alias: McpContent](/reference/api/mcp/type-aliases/McpContent.md) - [Type Alias: McpToolResult\](/reference/api/mcp/type-aliases/McpToolResult.md) - [Type Alias: McpDisplayResult\](/reference/api/mcp/type-aliases/McpDisplayResult.md) - [Type Alias: McpCacheScope](/reference/api/mcp/type-aliases/McpCacheScope.md) - [Type Alias: McpCacheHint](/reference/api/mcp/type-aliases/McpCacheHint.md) - [Type Alias: McpResourceReadResult\](/reference/api/mcp/type-aliases/McpResourceReadResult.md) - [Type Alias: McpStringSchema](/reference/api/mcp/type-aliases/McpStringSchema.md) - [Type Alias: McpNumberSchema](/reference/api/mcp/type-aliases/McpNumberSchema.md) - [Type Alias: McpBooleanSchema](/reference/api/mcp/type-aliases/McpBooleanSchema.md) - [Type Alias: McpEnumSchema](/reference/api/mcp/type-aliases/McpEnumSchema.md) - [Type Alias: McpMultiEnumSchema](/reference/api/mcp/type-aliases/McpMultiEnumSchema.md) - [Type Alias: McpPrimitiveSchema](/reference/api/mcp/type-aliases/McpPrimitiveSchema.md) - [Type Alias: McpRestrictedSchema](/reference/api/mcp/type-aliases/McpRestrictedSchema.md) - [Type Alias: McpElicitFormRequest](/reference/api/mcp/type-aliases/McpElicitFormRequest.md) - [Type Alias: McpElicitUrlRequest](/reference/api/mcp/type-aliases/McpElicitUrlRequest.md) - [Type Alias: McpElicitRequest](/reference/api/mcp/type-aliases/McpElicitRequest.md) - [Type Alias: McpInputRequests](/reference/api/mcp/type-aliases/McpInputRequests.md) - [Type Alias: McpElicitResult](/reference/api/mcp/type-aliases/McpElicitResult.md) - [Type Alias: McpInputResponses](/reference/api/mcp/type-aliases/McpInputResponses.md) - [Type Alias: McpInputRequiredResult](/reference/api/mcp/type-aliases/McpInputRequiredResult.md) ##### Variables - [Variable: A2UI\_RESOURCE\_URI](/reference/api/mcp/variables/A2UI_RESOURCE_URI.md) - [Variable: displayA2ui](/reference/api/mcp/variables/displayA2ui.md) - [Variable: displayForm](/reference/api/mcp/variables/displayForm.md) - [Variable: displayUpdate](/reference/api/mcp/variables/displayUpdate.md) - [Variable: displayError](/reference/api/mcp/variables/displayError.md) - [Variable: displaySuccess](/reference/api/mcp/variables/displaySuccess.md) - [Variable: PREFAB\_CDN\_META](/reference/api/mcp/variables/PREFAB_CDN_META.md) - [Variable: PREFAB\_RESOURCE\_URI](/reference/api/mcp/variables/PREFAB_RESOURCE_URI.md) - [Variable: MCP\_APP\_MIME](/reference/api/mcp/variables/MCP_APP_MIME.md) - [Variable: APPS\_EXTENSION](/reference/api/mcp/variables/APPS_EXTENSION.md) - [Variable: DEFAULT\_VIEWER\_CACHE](/reference/api/mcp/variables/DEFAULT_VIEWER_CACHE.md) - [Variable: VSCODE\_BRIDGE](/reference/api/mcp/variables/VSCODE_BRIDGE.md) ##### Functions - [Function: a2uiPayload()](/reference/api/mcp/functions/a2uiPayload.md) - [Function: display\_a2ui()](/reference/api/mcp/functions/display_a2ui.md) - [Function: registerA2uiResource()](/reference/api/mcp/functions/registerA2uiResource.md) - [Function: display()](/reference/api/mcp/functions/display.md) - [Function: display\_form()](/reference/api/mcp/functions/display_form.md) - [Function: display\_update()](/reference/api/mcp/functions/display_update.md) - [Function: display\_error()](/reference/api/mcp/functions/display_error.md) - [Function: display\_success()](/reference/api/mcp/functions/display_success.md) - [Function: formSchema()](/reference/api/mcp/functions/formSchema.md) - [Function: formInputRequest()](/reference/api/mcp/functions/formInputRequest.md) - [Function: inputResponse()](/reference/api/mcp/functions/inputResponse.md) - [Function: acceptedFormInput()](/reference/api/mcp/functions/acceptedFormInput.md) - [Function: resourceMeta()](/reference/api/mcp/functions/resourceMeta.md) - [Function: rendererHtml()](/reference/api/mcp/functions/rendererHtml.md) - [Function: resolveCache()](/reference/api/mcp/functions/resolveCache.md) - [Function: registerViewerResource()](/reference/api/mcp/functions/registerViewerResource.md) - [Function: toolResult()](/reference/api/mcp/functions/toolResult.md) - [Function: themeBridgeCss()](/reference/api/mcp/functions/themeBridgeCss.md) #### renderer ##### Classes - [Class: Bridge](/reference/api/renderer/classes/Bridge.md) - [Class: DestroyRegistry](/reference/api/renderer/classes/DestroyRegistry.md) ##### Interfaces - [Interface: Logger](/reference/api/renderer/interfaces/Logger.md) - [Interface: AppOptions](/reference/api/renderer/interfaces/AppOptions.md) - [Interface: PrefabApp](/reference/api/renderer/interfaces/PrefabApp.md) - [Interface: MountHandle](/reference/api/renderer/interfaces/MountHandle.md) - [Interface: BridgeMessage\](/reference/api/renderer/interfaces/BridgeMessage.md) - [Interface: AppCapabilities](/reference/api/renderer/interfaces/AppCapabilities.md) - [Interface: HostCapabilities](/reference/api/renderer/interfaces/HostCapabilities.md) - [Interface: HostContext](/reference/api/renderer/interfaces/HostContext.md) - [Interface: HostTheme](/reference/api/renderer/interfaces/HostTheme.md) - [Interface: ComponentNode](/reference/api/renderer/interfaces/ComponentNode.md) - [Interface: RenderContext](/reference/api/renderer/interfaces/RenderContext.md) - [Interface: RenderResult](/reference/api/renderer/interfaces/RenderResult.md) - [Interface: PrefabWireData](/reference/api/renderer/interfaces/PrefabWireData.md) - [Interface: PrefabUpdateData](/reference/api/renderer/interfaces/PrefabUpdateData.md) - [Interface: MountOptions](/reference/api/renderer/interfaces/MountOptions.md) - [Interface: MountedApp](/reference/api/renderer/interfaces/MountedApp.md) - [Interface: ThemeToggleOptions](/reference/api/renderer/interfaces/ThemeToggleOptions.md) ##### Type Aliases - [Type Alias: LogLevel](/reference/api/renderer/type-aliases/LogLevel.md) - [Type Alias: DisplayMode](/reference/api/renderer/type-aliases/DisplayMode.md) - [Type Alias: RenderFnReturn](/reference/api/renderer/type-aliases/RenderFnReturn.md) - [Type Alias: RenderFn](/reference/api/renderer/type-aliases/RenderFn.md) ##### Variables - [Variable: log](/reference/api/renderer/variables/log.md) - [Variable: PrefabRenderer](/reference/api/renderer/variables/PrefabRenderer.md) ##### Functions - [Function: setLogLevel()](/reference/api/renderer/functions/setLogLevel.md) - [Function: getLogLevel()](/reference/api/renderer/functions/getLogLevel.md) - [Function: createLogger()](/reference/api/renderer/functions/createLogger.md) - [Function: validateWireFormat()](/reference/api/renderer/functions/validateWireFormat.md) - [Function: isValidWireFormat()](/reference/api/renderer/functions/isValidWireFormat.md) - [Function: app()](/reference/api/renderer/functions/app.md) - [Function: applyHostTheme()](/reference/api/renderer/functions/applyHostTheme.md) - [Function: isIframe()](/reference/api/renderer/functions/isIframe.md) - [Function: registerComponent()](/reference/api/renderer/functions/registerComponent.md) - [Function: createThemeToggle()](/reference/api/renderer/functions/createThemeToggle.md) #### rx ##### Classes - [Class: Ref\](/reference/api/rx/classes/Ref.md) - [Class: Collection\](/reference/api/rx/classes/Collection.md) - [Class: Rx](/reference/api/rx/classes/Rx.md) - [Class: Signal\](/reference/api/rx/classes/Signal.md) ##### Interfaces - [Interface: SignalOptions](/reference/api/rx/interfaces/SignalOptions.md) ##### Type Aliases - [Type Alias: PipeFn](/reference/api/rx/type-aliases/PipeFn.md) - [Type Alias: SignalValue](/reference/api/rx/type-aliases/SignalValue.md) ##### Variables - [Variable: ITEM](/reference/api/rx/variables/ITEM.md) - [Variable: INDEX](/reference/api/rx/variables/INDEX.md) - [Variable: EVENT](/reference/api/rx/variables/EVENT.md) - [Variable: ERROR](/reference/api/rx/variables/ERROR.md) - [Variable: RESULT](/reference/api/rx/variables/RESULT.md) - [Variable: STATE](/reference/api/rx/variables/STATE.md) ##### Functions - [Function: collection()](/reference/api/rx/functions/collection.md) - [Function: registerPipe()](/reference/api/rx/functions/registerPipe.md) - [Function: unregisterPipe()](/reference/api/rx/functions/unregisterPipe.md) - [Function: listPipes()](/reference/api/rx/functions/listPipes.md) - [Function: rx()](/reference/api/rx/functions/rx.md) - [Function: signal()](/reference/api/rx/functions/signal.md) ### Other - [@maxhealth.tech/prefab](/prefab/reference/api.md)