Skip to main content

Documentation Index

Fetch the complete documentation index at: https://sunpeak.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

MCP Apps SDK
This documentation covers MCP Apps SDK v1.7.2 (@modelcontextprotocol/ext-apps).
import type {
  McpUiInitializeRequest,
  McpUiInitializeResult,
  McpUiOpenLinkRequest,
  McpUiOpenLinkResult,
  McpUiDownloadFileRequest,
  McpUiDownloadFileResult,
  McpUiMessageRequest,
  McpUiMessageResult,
  McpUiUpdateModelContextRequest,
  McpUiRequestDisplayModeRequest,
  McpUiRequestDisplayModeResult,
  McpUiResourceTeardownRequest,
  McpUiResourceTeardownResult,
  McpUiToolInputNotification,
  McpUiToolInputPartialNotification,
  McpUiToolResultNotification,
  McpUiToolCancelledNotification,
  McpUiHostContextChangedNotification,
  McpUiInitializedNotification,
  McpUiSizeChangedNotification,
  McpUiRequestTeardownNotification,
  AppRequest,
  AppNotification,
  AppResult,
  AppEventMap,
} from "@modelcontextprotocol/ext-apps";

Request / Result Types

Initialization

TypeMethodDirectionDescription
McpUiInitializeRequestui/initializeView → HostApp info, capabilities, protocol version
McpUiInitializeResultHost → ViewProtocol version, host info, capabilities, context

View → Host Requests

TypeMethodDescription
McpUiOpenLinkRequestui/open-linkOpen URL: { url: string }
McpUiOpenLinkResult{ isError?: boolean }
McpUiDownloadFileRequestui/download-fileDownload file: { contents: (EmbeddedResource | ResourceLink)[] }
McpUiDownloadFileResult{ isError?: boolean }
McpUiMessageRequestui/messageSend message: { role: "user"; content: ContentBlock[] }
McpUiMessageResult{ isError?: boolean }
McpUiUpdateModelContextRequestui/update-model-contextUpdate context: { content?; structuredContent? }
McpUiRequestDisplayModeRequestui/request-display-modeRequest mode: { mode: McpUiDisplayMode }
McpUiRequestDisplayModeResult{ mode: McpUiDisplayMode } (actual mode set)

Proxied Requests

The host proxies select MCP requests between the View and the originating MCP server (or, for sampling, between the View and the host’s LLM). These reuse standard MCP request/result types from @modelcontextprotocol/sdk.
TypeMethodDirectionDescription
CallToolRequesttools/callView → ServerCall a server tool. Used by callServerTool.
CallToolResultServer → ViewTool execution result.
ReadResourceRequestresources/readView → ServerRead a server resource. Used by readServerResource.
ReadResourceResultServer → ViewResource contents.
ListResourcesRequestresources/listView → ServerList server resources. Used by listServerResources.
ListResourcesResultServer → ViewResource list with optional cursor.
CreateMessageRequestsampling/createMessageView → HostLLM completion. Used by createSamplingMessage.
CreateMessageResult / CreateMessageResultWithToolsHost → ViewSampling result. The WithTools variant carries tool_use blocks when params.tools is provided.

Host → View Requests

TypeMethodDescription
McpUiResourceTeardownRequestui/resource-teardownGraceful shutdown: {}
McpUiResourceTeardownResult{}

Notification Types

Host → View

TypeMethodDescription
McpUiToolInputNotificationui/notifications/tool-inputComplete tool arguments
McpUiToolInputPartialNotificationui/notifications/tool-input-partialStreaming partial arguments
McpUiToolResultNotificationui/notifications/tool-resultTool execution result
McpUiToolCancelledNotificationui/notifications/tool-cancelledTool execution cancelled
McpUiHostContextChangedNotificationui/notifications/host-context-changedPartial context update

View → Host

TypeMethodDescription
McpUiInitializedNotificationui/notifications/initializedInitialization complete
McpUiSizeChangedNotificationui/notifications/size-changedUI size change: { width?; height? }
McpUiRequestTeardownNotificationui/notifications/request-teardownApp requests host to tear it down. Sent by requestTeardown.
LoggingMessageNotificationnotifications/messageDiagnostic log message. Sent by sendLog.
ToolListChangedNotificationnotifications/tools/list_changedApp-side tool list changed. Sent by sendToolListChanged after registerTool, enable, disable, or remove.

Union Types

These union types group all possible message types in the protocol. They are useful for building generic message handlers, routers, or middleware that processes any protocol message.
TypeDescription
AppRequestUnion of all request types: initialization, View → Host requests (openLink, downloadFile, sendMessage, updateModelContext, requestDisplayMode), proxied MCP server requests (callServerTool, readServerResource, listServerResources, listResourceTemplates, listPrompts, listTools), proxied LLM sampling (createSamplingMessage), Host → View requests (resourceTeardown), and ping
AppNotificationUnion of all notification types in both directions: Host → View (toolInput, toolInputPartial, toolResult, toolCancelled, hostContextChanged, sandboxResourceReady, resourceListChanged, promptListChanged) and View → Host (initialized, sizeChanged, sandboxProxyReady, requestTeardown, toolListChanged, loggingMessage)
AppResultUnion of all result types corresponding to each request type, plus EmptyResult
import type { AppRequest, AppNotification, AppResult } from "@modelcontextprotocol/ext-apps";

// Example: generic message logger
function logMessage(msg: AppRequest | AppNotification | AppResult) {
  console.log(`[${msg.method}]`, msg);
}

Event Maps

Type-safe maps of event names to notification params types, used by addEventListener / removeEventListener.
import type { AppEventMap } from "@modelcontextprotocol/ext-apps";
import type { AppBridgeEventMap } from "@modelcontextprotocol/ext-apps/app-bridge";
TypeSideEvents
AppEventMapView (App)toolinput, toolinputpartial, toolresult, toolcancelled, hostcontextchanged
AppBridgeEventMapHost (AppBridge)sizechange, sandboxready, initialized, requestteardown, loggingmessage

Method Constants

Type-safe string constants for protocol method names.
import {
  INITIALIZE_METHOD,
  INITIALIZED_METHOD,
  OPEN_LINK_METHOD,
  DOWNLOAD_FILE_METHOD,
  MESSAGE_METHOD,
  REQUEST_DISPLAY_MODE_METHOD,
  REQUEST_TEARDOWN_METHOD,
  RESOURCE_TEARDOWN_METHOD,
  SIZE_CHANGED_METHOD,
  TOOL_INPUT_METHOD,
  TOOL_INPUT_PARTIAL_METHOD,
  TOOL_RESULT_METHOD,
  TOOL_CANCELLED_METHOD,
  HOST_CONTEXT_CHANGED_METHOD,
} from "@modelcontextprotocol/ext-apps";
ConstantValue
INITIALIZE_METHOD"ui/initialize"
INITIALIZED_METHOD"ui/notifications/initialized"
OPEN_LINK_METHOD"ui/open-link"
DOWNLOAD_FILE_METHOD"ui/download-file"
MESSAGE_METHOD"ui/message"
REQUEST_DISPLAY_MODE_METHOD"ui/request-display-mode"
REQUEST_TEARDOWN_METHOD"ui/notifications/request-teardown"
RESOURCE_TEARDOWN_METHOD"ui/resource-teardown"
SIZE_CHANGED_METHOD"ui/notifications/size-changed"
TOOL_INPUT_METHOD"ui/notifications/tool-input"
TOOL_INPUT_PARTIAL_METHOD"ui/notifications/tool-input-partial"
TOOL_RESULT_METHOD"ui/notifications/tool-result"
TOOL_CANCELLED_METHOD"ui/notifications/tool-cancelled"
HOST_CONTEXT_CHANGED_METHOD"ui/notifications/host-context-changed"

Other Constants

ConstantValueDescription
LATEST_PROTOCOL_VERSION"2026-01-26"Current protocol version
RESOURCE_MIME_TYPE"text/html;profile=mcp-app"MIME type for MCP App resources
RESOURCE_URI_META_KEY"ui/resourceUri"Deprecated metadata key for tool-resource linkage
EXTENSION_ID"io.modelcontextprotocol/ui"Extension identifier for capability negotiation

Zod Schemas

Every type has a corresponding Zod schema exported for runtime validation. Schema names follow the pattern {TypeName}Schema (e.g., McpUiThemeMcpUiThemeSchema).

Core Type Schemas

import {
  McpUiThemeSchema,
  McpUiDisplayModeSchema,
  McpUiHostContextSchema,
  McpUiHostCapabilitiesSchema,
  McpUiAppCapabilitiesSchema,
  McpUiHostCssSchema,
  McpUiHostStylesSchema,
  McpUiSupportedContentBlockModalitiesSchema,
} from "@modelcontextprotocol/ext-apps";
SchemaValidates
McpUiThemeSchemaMcpUiTheme"light" or "dark"
McpUiDisplayModeSchemaMcpUiDisplayMode"inline", "fullscreen", "pip"
McpUiHostContextSchemaMcpUiHostContext — theme, styles, locale, dimensions, etc.
McpUiHostCapabilitiesSchemaMcpUiHostCapabilities — host feature flags
McpUiAppCapabilitiesSchemaMcpUiAppCapabilities — app-declared features
McpUiHostCssSchemaMcpUiHostCss — host CSS (fonts)
McpUiHostStylesSchemaMcpUiHostStyles — style variables + CSS
McpUiSupportedContentBlockModalitiesSchemaMcpUiSupportedContentBlockModalities — text, image, audio, etc.

Initialization Schemas

import {
  McpUiInitializeRequestSchema,
  McpUiInitializeResultSchema,
  McpUiInitializedNotificationSchema,
} from "@modelcontextprotocol/ext-apps";
SchemaValidates
McpUiInitializeRequestSchemaMcpUiInitializeRequest — View → Host init
McpUiInitializeResultSchemaMcpUiInitializeResult — Host → View init response
McpUiInitializedNotificationSchemaMcpUiInitializedNotification — View → Host init complete

Request / Result Schemas

import {
  McpUiOpenLinkRequestSchema,
  McpUiOpenLinkResultSchema,
  McpUiDownloadFileRequestSchema,
  McpUiDownloadFileResultSchema,
  McpUiMessageRequestSchema,
  McpUiMessageResultSchema,
  McpUiUpdateModelContextRequestSchema,
  McpUiRequestDisplayModeRequestSchema,
  McpUiRequestDisplayModeResultSchema,
  McpUiResourceTeardownRequestSchema,
  McpUiResourceTeardownResultSchema,
} from "@modelcontextprotocol/ext-apps";
SchemaValidates
McpUiOpenLinkRequestSchemaMcpUiOpenLinkRequest — open URL request
McpUiOpenLinkResultSchemaMcpUiOpenLinkResult — open URL result
McpUiDownloadFileRequestSchemaMcpUiDownloadFileRequest — download file request
McpUiDownloadFileResultSchemaMcpUiDownloadFileResult — download file result
McpUiMessageRequestSchemaMcpUiMessageRequest — send message request
McpUiMessageResultSchemaMcpUiMessageResult — send message result
McpUiUpdateModelContextRequestSchemaMcpUiUpdateModelContextRequest — update context request
McpUiRequestDisplayModeRequestSchemaMcpUiRequestDisplayModeRequest — display mode request
McpUiRequestDisplayModeResultSchemaMcpUiRequestDisplayModeResult — display mode result
McpUiResourceTeardownRequestSchemaMcpUiResourceTeardownRequest — teardown request
McpUiResourceTeardownResultSchemaMcpUiResourceTeardownResult — teardown result

Notification Schemas

import {
  McpUiToolInputNotificationSchema,
  McpUiToolInputPartialNotificationSchema,
  McpUiToolResultNotificationSchema,
  McpUiToolCancelledNotificationSchema,
  McpUiHostContextChangedNotificationSchema,
  McpUiSizeChangedNotificationSchema,
  McpUiRequestTeardownNotificationSchema,
} from "@modelcontextprotocol/ext-apps";
SchemaValidates
McpUiToolInputNotificationSchemaMcpUiToolInputNotification — tool arguments
McpUiToolInputPartialNotificationSchemaMcpUiToolInputPartialNotification — streaming partial arguments
McpUiToolResultNotificationSchemaMcpUiToolResultNotification — tool result
McpUiToolCancelledNotificationSchemaMcpUiToolCancelledNotification — tool cancelled
McpUiHostContextChangedNotificationSchemaMcpUiHostContextChangedNotification — context update
McpUiSizeChangedNotificationSchemaMcpUiSizeChangedNotification — size change
McpUiRequestTeardownNotificationSchemaMcpUiRequestTeardownNotification — app-initiated teardown request

Metadata Schemas

import {
  McpUiResourceCspSchema,
  McpUiResourcePermissionsSchema,
  McpUiResourceMetaSchema,
  McpUiToolVisibilitySchema,
  McpUiToolMetaSchema,
} from "@modelcontextprotocol/ext-apps";
SchemaValidates
McpUiResourceCspSchemaMcpUiResourceCsp — CSP configuration
McpUiResourcePermissionsSchemaMcpUiResourcePermissions — browser permissions
McpUiResourceMetaSchemaMcpUiResourceMeta — resource UI metadata
McpUiToolVisibilitySchemaMcpUiToolVisibility — tool visibility
McpUiToolMetaSchemaMcpUiToolMeta — tool UI metadata