Releases: modelcontextprotocol/ext-apps
Releases · modelcontextprotocol/ext-apps
1.1.0
What's Changed
- Fix: registerAppResource does not return registered resource, but void by @KKonstantinov in #370
- Use escaped newlines in ShaderToy README JSON examples by @jonathanhefner in #375
- Fix
extractRegion()matching region names that are substrings of others by @jonathanhefner in #376 - Improve patterns guide with concrete examples and safe area insets by @jonathanhefner in #381
- feat(pdf-server): send screenshot to updateModelContext by @ochafik in #373
- Separate static and dynamic data in
system-monitor-servertools by @jonathanhefner in #388 - docs: add root npm install step for basic-host setup by @GiladShoham in #371
- Add polling pattern to patterns guide by @jonathanhefner in #389
- Add binary blob resource pattern to patterns guide by @jonathanhefner in #391
- Add server-side persistence guidance to view state pattern by @jonathanhefner in #397
- examples: add MCP Apps arcade server by @idosal in #346
- examples: add arcade example to servers by @idosal in #399
- docs: fix basic-host setup instructions in quickstart by @rafa-thayto in #398
- Improve
global.cssas scaffolding template by @jonathanhefner in #403 - Improve documentation for CSP and permissions types by @jonathanhefner in #409
- Improve example CSS files to better demonstrate host style integration by @jonathanhefner in #404
- Extract
getUiCapabilityexample to type-checked examples file by @jonathanhefner in #406 - examples: remove arcade by @idosal in #414
- Cache full PDF bodies from servers without Range support by @ochafik in #411
- Add CSP and CORS section to patterns docs by @jonathanhefner in #415
- Add
isToolVisibilityModelOnlyandisToolVisibilityAppOnlyhelper functions by @matteo8p in #294 - Use escaped double quotes in npm scripts for Windows compatibility by @jonathanhefner in #421
- Replace "external" with "network" in CSP documentation by @jonathanhefner in #422
- Clarify spec and SDK: accept UIResourceMeta in both resources/list and resources/read by @ochafik in #410
- Rename skill to 'create-mcp-app' to align with spec by @vgshenoy in #443
- Rename
migrate-oai-appskillnameto align with spec by @jonathanhefner in #444 - Handle non-JSON-RPC messages gracefully in PostMessageTransport by @ochafik in #448
- Update theme toggle button position in CSS from top to bottom by @healthkowshik in #441
- fix: align basic-host dark mode styles by @Avcharov in #438
- Change Host <> Sandbox communication protocol to "SHOULD" by @mstoiber-oai in #435
- Upgrade GitHub Actions to latest versions by @salmanmkc in #393
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #392
- Apply
typedoc-github-themetypography fixes locally viacustomCssby @jonathanhefner in #442 - Add validation for callServerTool params argument by @ochafik in #449
- fix: update e2e test snapshots for shadertoy and wiki-explorer images by @Avcharov in #461
- README update by @localden in #463
- Upgrade
typedoc-github-themeto v0.4.0 and remove local CSS workaround by @jonathanhefner in #462 - Add double-connect guard to prevent protocol message handling errors by @ochafik in #450
- Add PDF search feature to pdf-server by @ochafik in #445
- Add fullscreen button to threejs-server by @ochafik in #446
- feat(pdf-server): use MCP roots to auto-allow local directories by @ochafik in #479
- Lead README with agent skills for faster onboarding by @localden in #478
- Update README.md by @localden in #483
- pdf: ignore safe area insets in fullscreen mode by @ochafik in #484
- feat(pdf-server): lazy range-based loading + eager background preloading by @ochafik in #480
- chore: bump ext-apps to 1.1.0 by @ochafik in #485
Full Changelog: v1.0.1...v1.1.0
1.0.1
What's Changed
- docs: update MCP-UI SDK description in README by @idosal in #365
- fix(qr-server): use stable mcp SDK from PyPI by @malbari in #360
- fix(say-server): pin to released mcp version by @ochafik in #366
- chore: bump to 1.0.1 - fix npm reference for ext-apps dependency in examples + update zod to 4.x by @ochafik in #368
- chore: bump ext-apps to 1.0.1 by @ochafik in #369
Full Changelog: v1.0.0...v1.0.1
1.0.0
v0.4.2
Release 0.4.2
Features
- say-server: New streaming Pocket TTS example with karaoke-style word highlighting (#304)
- debug-server: Interactive debug server for development and troubleshooting (#321)
- Theme support in basic-host: Theme toggle and MCP style CSS variables for consistent styling (#336)
- getUiCapability helper: New helper function for capability negotiation between views and hosts (#313)
- Visibility optimization: Three.js and Shadertoy examples now pause rendering when hidden (#297, #299)
- Mouse/touch interaction: Proper input support for Shadertoy shaders (#293)
- SSE transport fallback: basic-host now supports Server-Sent Events transport (#289)
- map-server screenshot: Screenshot capture via updateModelContext (#340)
Documentation
- Quickstart guide: Rewritten with type-checked code examples (#342)
- MCP Apps Overview: New comprehensive overview document (#343)
- Patterns guide: Common patterns for MCP Apps development (#314)
- Testing guide: How to test MCP Apps (#350)
- Agent Skills guide: Installation and usage guide (#344, #352)
- MCP client configuration: Added config examples to all READMEs (#286)
- Type-checked JSDoc examples: Examples moved to
.examples.tsfiles for type safety (#302) - OpenAI migration guide: Improved accuracy and readability (#345, #349)
Fixes
- Align spec permissions type with SDK implementation (#305)
- Python server dependency resolution and Docker host validation (#333)
- Serve HTTP now runs main.ts instead of server.ts (#315)
- Embed widget HTML in QR server example (#317)
- Standardize UI terminology to use "view" consistently (#325, #339)
- Update Map Server display name to CesiumJS Map Server (#324)
- Test stability and developer experience improvements (#337)
- Fix onhostcontextchanged handler invocation in examples (#351)
Other
- Add
.claude-plugin/marketplace.jsonfor plugin distribution (#306) - Add "Migrate from OpenAI App" skill to Claude Code plugin (#290)
- Use typedoc-github-theme for API documentation (#322)
- Add Codex and Goose to supporting clients documentation (#357)
- EXAMPLE=folder-name support for running specific examples (#292)
New Contributors
- @malbari made their first contribution in #315
- @tobinsouth made their first contribution in #317
Full Changelog: v0.4.1...v0.4.2
0.4.1
What's Changed
- revert to document.write again; cesiumjs doesn't like srcdoc, period. by @ochafik in #258
- basic-host: filter app-only tools, prioritize UI tools by @ochafik in #262
- feat: add example gallery with auto-generated screenshots by @ochafik in #253
- docs: how to migrate from openai apps by @ochafik in #260
- build(deps): bump hono from 4.11.3 to 4.11.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #268
- Add "Server-Side" section to OpenAI migration guide by @jonathanhefner in #263
- Improve JSDoc comments with cross-references and clarifications by @jonathanhefner in #254
- chore: update licensing to Apache 2.0 for new contributions by @domdomegg in #251
- disambiguate resource in csp sample by @idosal in #257
- Add Claude Code plugin with "Create MCP App" skill by @jonathanhefner in #256
- Improve consistency and organization of examples for AI learning by @jonathanhefner in #252
- examples: add PDF viewer w/ chunked data loading, full-screen, model context updates, private tool by @ochafik in #267
- examples[pdf]: limit context length by @ochafik in #270
- fix(examples): improve updateModelContext with structured YAML frontmatter by @ochafik in #271
- feat(basic-host): URL params, fullscreen mode, unified layout by @ochafik in #266
- feat: compile example servers to JavaScript for npm consumption by @jerome3o-anthropic in #259
- Use
Toolas the input type ingetToolUiResourceUriby @matteo8p in #274 - fix: change unknown source message log from error to debug level by @Copilot in #239
- fix[examples/transcript]: fix transitional deltas by @ochafik in #275
- pdf-server: fix scrolling gap in inline mode by @ochafik in #280
- fix(examples): resolve DIST_DIR path for npm package execution by @ochafik in #277
- feat(shadertoy): add fullscreen support + ditch insets for max visual effect by @ochafik in #278
- feat(shadertoy): show fullscreen button only on widget hover by @ochafik in #281
- feat(qr-server): migrate to uv with PEP 723 inline dependencies by @antonpk1 in #272
- chore: bump version to 0.4.1 by @ochafik in #282
New Contributors
- @dependabot[bot] made their first contribution in #268
- @domdomegg made their first contribution in #251
- @Copilot made their first contribution in #239
Full Changelog: v0.4.0...v0.4.1
0.4.0
Release 0.4.0
Features
- ui/update-model-context: New protocol method for guests to update their model context dynamically (#125)
- Enhanced sandbox capability negotiation: Improved CSP configuration with
frameDomains,baseUriDomains, and Permission Policy support (#158) - structuredContent with outputSchema: Example servers now use structured tool output (#220)
- Collapsible panels in basic-host: Improved host UI with collapsible sections and SDK types (#244)
- Dev mode with auto-restart:
npm startnow runs in dev mode with--watchfor auto-restart (#246)
New Examples
- transcript-server: Live speech transcription example (#240)
- map-server: CesiumJS Map App with 3D globe visualization (#235)
- shadertoy-server: WebGL shader rendering example (#226)
Fixes
- Proper CSP handling in basic-host sandboxing via HTTP headers (#234)
- Align CSP sample with resourceDomains spec (#233)
- Error handling for server startup failures (#236)
- Update qr-server SDK to 0.3.1 (#247)
Other
- Add
AGENTS.mdandCLAUDE.mdfor AI assistant guidance (#218) - Replace deprecated
RESOURCE_URI_META_KEYwith_meta.ui.resourceUri(#217) - Restore educational comments in basic-server examples (#228)
- Add missing
refresh-statstool to system-monitor-server (#227)
Full Changelog: v0.3.1...v0.4.0
0.3.1
0.3.0
What's Changed
- Fix build errors in examples by @jonathanhefner in #180
- fix: move prettier to dev dependency by @niclim in #179
- Add npm
startalias forexamples:startby @jonathanhefner in #183 - Clean up examples by @jonathanhefner in #182
- docs: fix tsc command to use tsconfig.json by @blackgirlbytes in #188
- [MCP Apps] Update
viewporttype by @martinalong in #153 - Add
sheet-music-serverexample by @jonathanhefner in #196 - feat(examples): Add video-resource-server example by @antonpk1 in #175
- fix(examples): add missing server-utils.ts to video-resource-server by @antonpk1 in #205
- fix: Add missing origin parameter to PostMessageTransport default constructor, verify origins in example sandbox proxy by @ochafik in #207
- fix!: require eventSource in PostMessageTransport + add security tests by @ochafik in #208
- fix: make toolInfo.id optional per spec by @antonpk1 in #216
- feat: export method names as consts by @idosal in #192
- Make ui.resourceUri optional (for tools that just need visibility) by @ochafik in #210
- Add
safeAreaInsetssupport to all example apps by @jonathanhefner in #202 - Add
basic-server-*examples for Vue, Svelte, Preact, and Solid by @jonathanhefner in #141 - feat: publish example servers to npm by @jerome3o-anthropic in #184
- fix: make example host more resilient to broken servers by @ochafik in #206
- chore: release 0.3.0 by @ochafik in #204
New Contributors
- @niclim made their first contribution in #179
- @blackgirlbytes made their first contribution in #188
Full Changelog: v0.2.2...v0.3.0
0.2.2
0.2.1
What's Changed
- fix(examples): use server.registerTool for non-UI tool + fix missing imports by @ochafik in #173
- [MCP Apps] Add way to pass custom fonts by @martinalong in #159
- [MCP Apps] Add forgotten style variable by @martinalong in #174
- chore: release 0.2.1 - widen @oven/bun-* version range by @ochafik in #176
Full Changelog: v0.2.0...v0.2.1