Release Notes
0.3.0
Breaking Changes
viewportreplaced withcontainerDimensionsβ Theviewportproperty in host context has been replaced withcontainerDimensions, which provides a clearer distinction between fixed dimensions and maximum constraints. The new type allows specifying eitherheightormaxHeight, and eitherwidthormaxWidthby @martinalong in #153
New Examples
- Video resource server β Demonstrates video resource handling with proper mimeType declarations by @antonpk1 in #175
- Sheet music server β Interactive sheet music notation example by @jonathanhefner in #196
Developer Experience
npm startalias β Addednpm startas alias fornpm run examples:startby @jonathanhefner in #183- Examples cleanup β Improved consistency across example servers by @jonathanhefner in #182
- Documentation fixes β Fixed tsc command in docs to use tsconfig.json by @blackgirlbytes in #188
Bug Fixes
- Move prettier to dev dependency β Fixed incorrect dependency classification by @niclim in #179
- Fix build errors in examples β Resolved build issues across example servers by @jonathanhefner in #180
Full Changelog: https://github.com/modelcontextprotocol/ext-apps/compare/v0.2.2...v0.3.0
0.2.2
Changes from 0.1.x to 0.2.2.
Highlights
- Server helpers β New
registerAppTool()andregisterAppResource()simplify server setup with proper type safety.connect()now defaults toPostMessageTransport(window.parent), enabling simpler initialization with justawait app.connect()by @ochafik in #165 - Tool visibility control β New
visibilityarray field controls whether tools are visible to the agent, apps, or both. Restructured_metaformat from flat"ui/resourceUri"to nested_meta.ui.resourceUriby @jonathanhefner in #131 - Host-provided theming β Apps receive 36 standardized CSS variables for colors, typography, and spacing via
styles.variables, enabling visual consistency with the host by @martinalong in #127 - Display mode requests β Apps can request display mode changes (e.g., fullscreen) via
requestDisplayMode, with hosts able to accept or reject by @martinalong in #152 - Custom fonts support β Apps can receive custom fonts via
styles.css.fontsand apply them usingapplyHostFonts()oruseHostFonts()helpers by @martinalong in #159
API Changes
- MCP SDK as peer dependency β Consumers control their SDK version, reducing duplication by @ochafik in #168
- React as peer dependency β Supports React 17, 18, and 19 by @ochafik in #164
- Renamed request methods β Removed
sendprefix:openLink()andteardownResource(). Deprecated aliases maintained by @ochafik in #161 - Optional Client in AppBridge β Enables custom forwarding scenarios without direct MCP client access by @ochafik in #146
- Zod v3 and v4 support β Bring your own Zod by @alpic-ai in #49
- Zod schemas now version-agnostic β Generated schemas work with both Zod 3.25+ and v4, using
z.object().passthrough()instead of v4-onlyz.looseObject()by @ochafik in #178
Platform & DX
- Windows compatibility β Bun as optional dependency with automatic setup,
cross-envfor examples. Just runnpm installby @ochafik in #145 - Widened
@oven/bun-*version range β Lowered the minimum from^1.3.4to^1.2.21, helping contributors whose registries may not have the latest packages by @ochafik in #176 - SSE transport support β All examples now support both stdio and HTTP transports with SSE endpoints for older clients by @ochafik in #136
- Playwright E2E tests β Screenshot golden testing across all 9 example servers with parallel execution (~28s) by @ochafik in #115
- hostContext exposure β Access
hostContextdirectly from theAppclass by @ochafik in #139
Bug Fixes
- Responsive UIs β Fixed narrow viewport handling for mobile and sidebar experiences by @ochafik in #135
- Sandbox notification fix β Fixed
sandbox-readynotification name to match implementation by @ochafik in #160 - Fixed non-UI tool registration β Use
server.registerToolfor tools without UI and fix missing imports across examples by @ochafik in #173
Full Changelog: https://github.com/modelcontextprotocol/ext-apps/compare/v0.1.1...v0.2.2