# @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)