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
- 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
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
- 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
Changes from 0.1.x to 0.2.2.
- 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
- 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
- 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
- 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