Skip to main content
MCP Apps are based on the MCP ext-apps specification—an open standard for rendering interactive UI widgets inside AI conversations. Unlike the proprietary Apps SDK, MCP Apps work across multiple AI clients.

How MCP Apps Work

MCP Apps use a JSON-RPC postMessage bridge for communication between the widget iframe and the host application: The widget sends requests and receives responses via structured JSON-RPC messages, rather than calling methods on a global object.

Supported Methods

The MCP ext-apps spec defines these communication methods:

Guest-to-Host Requests

MethodDescription
ui/initializeHandshake to establish connection
ui/open-linkOpen external URLs
ui/messageSend follow-up messages to the conversation
ui/request-display-modeRequest display mode change
ui/update-model-contextUpdate widget state for the model
tools/callInvoke MCP tools

Host-to-Guest Notifications

NotificationDescription
notifications/context-changedTheme, locale, or display mode changed
notifications/tool-inputTool arguments provided
notifications/tool-resultTool execution completed

Client Support

MCP Apps are supported by clients implementing the ext-apps specification, these include Goose, VSCode, Postman, …
MCP Apps is an emerging specification. Client support is expanding as more AI applications adopt the standard.

Skybridge Implementation

Skybridge implements the MCP ext-apps specification via the McpAppAdaptor. This happens automatically: you write the same hooks regardless of runtime.

Differences from Apps SDK

FeatureApps SDKMCP Apps
Modal WindowsPortaled to hostComing soon (in-iframe)
File Upload/DownloadSupportedNot supported
Display Mode “modal”SupportedNot supported

Handling Platform Differences

When using Apps SDK features in MCP Apps:
  • useFiles(): Not yet supported
  • useRequestModal(): Coming soon (will render in-iframe)
  • useDisplayMode("modal"): Not yet supported
  • useWidgetState(): Not yet supported (MCP spec doesn’t define widget state)
Graceful degradation planned: We’re working to ensure host-specific features never throw errors. Instead, they’ll degrade gracefully—running in a minimal but functional way so your app works everywhere.
Always check the compatibility matrix before using platform-specific features.

Protocol Coverage

Skybridge is actively implementing the MCP ext-apps specification. Track our progress and see detailed coverage in GitHub Issue #14.

Testing MCP Apps

Since the DevTools emulator currently uses the Apps SDK runtime, testing MCP Apps requires:
  1. Running your MCP server locally
  2. Connecting from a client that supports MCP Apps (e.g., Goose)
  3. Invoking tools that render widgets
Use DevTools for rapid development, then validate in MCP Apps clients for final testing.