Add ui-request-render-data message type for explicit render data requests#111
Add ui-request-render-data message type for explicit render data requests#111
Conversation
|
@idosal 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs. I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review. |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
remote-mcp-server-authless | d41b010 | Sep 23 2025, 09:12 PM |
Deploying mcp-ui with
|
| Latest commit: |
95f24d3
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1d804491.mcp-ui.pages.dev |
| Branch Preview URL: | https://copilot-fix-106.mcp-ui.pages.dev |
Co-authored-by: idosal <[email protected]>
ui-request-render-dataRemoved unnecessary code example for host handling.
|
@copilot add it to the documentation in |
…react-usage-examples.md Co-authored-by: idosal <[email protected]>
Added comprehensive documentation for the new
See commit 0cc4457 for the documentation updates. |
Removed benefits section for ui-request-render-data approach from React usage examples.
Removed advantages section from resource-renderer.md
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new ui-request-render-data message type that allows iframes to explicitly request render data from the host, providing a more semantic alternative to the automatic delivery via ui-lifecycle-iframe-ready events.
- Adds explicit render data request/response mechanism with optional message ID tracking
- Maintains backwards compatibility with existing
ui-lifecycle-iframe-readybehavior - Provides comprehensive documentation updates with usage examples
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| HTMLResourceRenderer.tsx | Adds new message type constant and handler for explicit render data requests |
| HTMLResourceRenderer.test.tsx | Adds test coverage for both scenarios with and without render data |
| embeddable-ui.md | Documents the new message type with detailed usage examples |
| resource-renderer.md | Adds alternative approach documentation for explicit render data requests |
| react-usage-examples.md | Provides comprehensive React usage examples for the new message type |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
# 1.0.0-alpha.1 (2025-10-10) ### Bug Fixes * adapter version ([259c842](259c842)) * add a bridge to pass messages in and out of the proxy ([#38](#38)) ([30ccac0](30ccac0)) * bump client version ([75c9236](75c9236)) * **client:** specify iframe ([fd0b70a](fd0b70a)) * **client:** styling ([6ff9b68](6ff9b68)) * dependencies ([887f61f](887f61f)) * export RemoteDomResource ([2b86f2d](2b86f2d)) * export ResourceRenderer and HtmlResource ([2b841a5](2b841a5)) * exports ([3a93a16](3a93a16)) * iframe handle ([#15](#15)) ([66bd4fd](66bd4fd)) * lint ([4487820](4487820)) * lint ([d0a91f9](d0a91f9)) * minor typo ([a0bee9c](a0bee9c)) * move react dependencies to be peer dependencies ([#91](#91)) ([f672f3e](f672f3e)), closes [#90](#90) * package config ([8dc1e53](8dc1e53)) * packaging ([9e6babd](9e6babd)) * pass ref explicitly using iframeProps ([#33](#33)) ([d01b5d1](d01b5d1)) * publish ([0943e7a](0943e7a)) * ref passing to UIResourceRenderer ([#32](#32)) ([d28c23f](d28c23f)) * release ([420efc0](420efc0)) * remove shared dependency ([e66e8f4](e66e8f4)) * rename components and methods to fit new scope ([#22](#22)) ([6bab1fe](6bab1fe)) * rename delivery -> encoding and flavor -> framework ([#36](#36)) ([9a509ed](9a509ed)) * Ruby comment ([b22dc2e](b22dc2e)) * support react-router ([21ffb95](21ffb95)) * text and blob support in RemoteDOM resources ([ec68eb9](ec68eb9)) * trigger release ([aaca831](aaca831)) * typescript ci publish ([e7c0ebf](e7c0ebf)) * typescript types to be compatible with MCP SDK ([#10](#10)) ([74365d7](74365d7)) * update deps ([4091ef4](4091ef4)) * update isUIResource to use EmbeddedResource type ([#122](#122)) ([5a65a0b](5a65a0b)), closes [#117](#117) * use targetOrigin in the proxy message relay ([#40](#40)) ([b3fb54e](b3fb54e)) * validate URL ([b7c994d](b7c994d)) * wc dist overwrite ([#63](#63)) ([9e46c56](9e46c56)) ### Documentation * bump ([#4](#4)) ([ad4d163](ad4d163)) ### Features * add adapters infra (appssdk) ([#125](#125)) ([2e016cd](2e016cd)) * add convenience function isUIResource to client SDK ([#86](#86)) ([607c6ad](607c6ad)) * add embeddedResourceProps for annotations ([#99](#99)) ([b96ec44](b96ec44)) * add proxy option to externalUrl ([#37](#37)) ([7b95cd0](7b95cd0)) * add remote-dom content type ([#18](#18)) ([5dacf37](5dacf37)) * add Ruby server SDK ([#31](#31)) ([5ffcde4](5ffcde4)) * add sandbox permissions instead of an override ([#83](#83)) ([b1068e9](b1068e9)) * add ui-request-render-data message type ([#111](#111)) ([26135ce](26135ce)) * add UIResourceRenderer Web Component ([#58](#58)) ([ec8f299](ec8f299)) * auto resize with the autoResizeIframe prop ([#56](#56)) ([76c867a](76c867a)) * change onGenericMcpAction to optional onUiAction ([1913b59](1913b59)) * **client:** allow setting supportedContentTypes for HtmlResource ([#17](#17)) ([e009ef1](e009ef1)) * consolidate ui:// and ui-app:// ([#8](#8)) ([2e08035](2e08035)) * pass iframe props down ([#14](#14)) ([112539d](112539d)) * refactor UTFtoB64 (bump server version) ([#95](#95)) ([2d5e16b](2d5e16b)) * send render data to the iframe ([#51](#51)) ([d38cfc7](d38cfc7)) * separate html and remote-dom props ([#24](#24)) ([a7f0529](a7f0529)) * support generic messages response ([#35](#35)) ([10b407b](10b407b)) * support passing resource metadata ([#87](#87)) ([f1c1c9b](f1c1c9b)) * support ui action result types ([#6](#6)) ([899d152](899d152)) * switch to ResourceRenderer ([#21](#21)) ([6fe3166](6fe3166)) ### BREAKING CHANGES * The existing naming is ambiguous. Renaming delivery to encoding and flavor to framework should clarify the intent. * exported names have changed * removed deprecated client API * (previous one didn't take due to semantic-release misalignment)
# 1.0.0-alpha.1 (2025-10-10) ### Bug Fixes * adapter version ([259c842](259c842)) * add a bridge to pass messages in and out of the proxy ([#38](#38)) ([30ccac0](30ccac0)) * bump client version ([75c9236](75c9236)) * **client:** specify iframe ([fd0b70a](fd0b70a)) * **client:** styling ([6ff9b68](6ff9b68)) * dependencies ([887f61f](887f61f)) * export RemoteDomResource ([2b86f2d](2b86f2d)) * export ResourceRenderer and HtmlResource ([2b841a5](2b841a5)) * exports ([3a93a16](3a93a16)) * iframe handle ([#15](#15)) ([66bd4fd](66bd4fd)) * lint ([4487820](4487820)) * lint ([d0a91f9](d0a91f9)) * minor typo ([a0bee9c](a0bee9c)) * move react dependencies to be peer dependencies ([#91](#91)) ([f672f3e](f672f3e)), closes [#90](#90) * package config ([8dc1e53](8dc1e53)) * packaging ([9e6babd](9e6babd)) * pass ref explicitly using iframeProps ([#33](#33)) ([d01b5d1](d01b5d1)) * publish ([0943e7a](0943e7a)) * ref passing to UIResourceRenderer ([#32](#32)) ([d28c23f](d28c23f)) * release ([420efc0](420efc0)) * remove shared dependency ([e66e8f4](e66e8f4)) * rename components and methods to fit new scope ([#22](#22)) ([6bab1fe](6bab1fe)) * rename delivery -> encoding and flavor -> framework ([#36](#36)) ([9a509ed](9a509ed)) * Ruby comment ([b22dc2e](b22dc2e)) * server versioning ([2324371](2324371)) * support react-router ([21ffb95](21ffb95)) * text and blob support in RemoteDOM resources ([ec68eb9](ec68eb9)) * trigger release ([aaca831](aaca831)) * typescript ci publish ([e7c0ebf](e7c0ebf)) * typescript types to be compatible with MCP SDK ([#10](#10)) ([74365d7](74365d7)) * update deps ([4091ef4](4091ef4)) * update isUIResource to use EmbeddedResource type ([#122](#122)) ([5a65a0b](5a65a0b)), closes [#117](#117) * use targetOrigin in the proxy message relay ([#40](#40)) ([b3fb54e](b3fb54e)) * validate URL ([b7c994d](b7c994d)) * wc dist overwrite ([#63](#63)) ([9e46c56](9e46c56)) ### Documentation * bump ([#4](#4)) ([ad4d163](ad4d163)) ### Features * add adapters infra (appssdk) ([#125](#125)) ([2e016cd](2e016cd)) * add convenience function isUIResource to client SDK ([#86](#86)) ([607c6ad](607c6ad)) * add embeddedResourceProps for annotations ([#99](#99)) ([b96ec44](b96ec44)) * add proxy option to externalUrl ([#37](#37)) ([7b95cd0](7b95cd0)) * add remote-dom content type ([#18](#18)) ([5dacf37](5dacf37)) * add Ruby server SDK ([#31](#31)) ([5ffcde4](5ffcde4)) * add sandbox permissions instead of an override ([#83](#83)) ([b1068e9](b1068e9)) * add ui-request-render-data message type ([#111](#111)) ([26135ce](26135ce)) * add UIResourceRenderer Web Component ([#58](#58)) ([ec8f299](ec8f299)) * auto resize with the autoResizeIframe prop ([#56](#56)) ([76c867a](76c867a)) * change onGenericMcpAction to optional onUiAction ([1913b59](1913b59)) * **client:** allow setting supportedContentTypes for HtmlResource ([#17](#17)) ([e009ef1](e009ef1)) * consolidate ui:// and ui-app:// ([#8](#8)) ([2e08035](2e08035)) * pass iframe props down ([#14](#14)) ([112539d](112539d)) * refactor UTFtoB64 (bump server version) ([#95](#95)) ([2d5e16b](2d5e16b)) * send render data to the iframe ([#51](#51)) ([d38cfc7](d38cfc7)) * separate html and remote-dom props ([#24](#24)) ([a7f0529](a7f0529)) * support generic messages response ([#35](#35)) ([10b407b](10b407b)) * support passing resource metadata ([#87](#87)) ([f1c1c9b](f1c1c9b)) * support ui action result types ([#6](#6)) ([899d152](899d152)) * switch to ResourceRenderer ([#21](#21)) ([6fe3166](6fe3166)) ### BREAKING CHANGES * The existing naming is ambiguous. Renaming delivery to encoding and flavor to framework should clarify the intent. * exported names have changed * removed deprecated client API * (previous one didn't take due to semantic-release misalignment)
# [5.12.0-alpha.1](server/v5.11.0...server/v5.12.0-alpha.1) (2025-10-10) ### Bug Fixes * adapter version ([259c842](259c842)) * release ([420efc0](420efc0)) * server alpha versioning ([7f35d3b](7f35d3b)) * server versioning ([2324371](2324371)) * update isUIResource to use EmbeddedResource type ([#122](#122)) ([5a65a0b](5a65a0b)), closes [#117](#117) ### Features * add adapters infra (appssdk) ([#125](#125)) ([2e016cd](2e016cd)) * add ui-request-render-data message type ([#111](#111)) ([26135ce](26135ce))
# 1.0.0 (2025-11-04) ### Bug Fixes * add a bridge to pass messages in and out of the proxy ([#38](#38)) ([30ccac0](30ccac0)) * bump client version ([75c9236](75c9236)) * **client:** specify iframe ([fd0b70a](fd0b70a)) * **client:** styling ([6ff9b68](6ff9b68)) * dependencies ([887f61f](887f61f)) * Enable bidirectional message relay in rawhtml proxy mode ([#138](#138)) ([f0bdefb](f0bdefb)) * ensure Apps SDK adapter is bundled properly and initialized wth config ([#137](#137)) ([4f7c25c](4f7c25c)) * export RemoteDomResource ([2b86f2d](2b86f2d)) * export ResourceRenderer and HtmlResource ([2b841a5](2b841a5)) * exports ([3a93a16](3a93a16)) * fix file extension reference in package.json ([927989c](927989c)) * iframe handle ([#15](#15)) ([66bd4fd](66bd4fd)) * lint ([4487820](4487820)) * lint ([d0a91f9](d0a91f9)) * minor typo ([a0bee9c](a0bee9c)) * move react dependencies to be peer dependencies ([#91](#91)) ([f672f3e](f672f3e)), closes [#90](#90) * package config ([8dc1e53](8dc1e53)) * packaging ([9e6babd](9e6babd)) * pass ref explicitly using iframeProps ([#33](#33)) ([d01b5d1](d01b5d1)) * publish ([0943e7a](0943e7a)) * ref passing to UIResourceRenderer ([#32](#32)) ([d28c23f](d28c23f)) * remove shared dependency ([e66e8f4](e66e8f4)) * rename components and methods to fit new scope ([#22](#22)) ([6bab1fe](6bab1fe)) * rename delivery -> encoding and flavor -> framework ([#36](#36)) ([9a509ed](9a509ed)) * Ruby comment ([b22dc2e](b22dc2e)) * support react-router ([21ffb95](21ffb95)) * text and blob support in RemoteDOM resources ([ec68eb9](ec68eb9)) * trigger release ([aaca831](aaca831)) * typescript ci publish ([e7c0ebf](e7c0ebf)) * typescript types to be compatible with MCP SDK ([#10](#10)) ([74365d7](74365d7)) * update deps ([4091ef4](4091ef4)) * update isUIResource to use EmbeddedResource type ([#122](#122)) ([5a65a0b](5a65a0b)), closes [#117](#117) * use targetOrigin in the proxy message relay ([#40](#40)) ([b3fb54e](b3fb54e)) * validate URL ([b7c994d](b7c994d)) * wc dist overwrite ([#63](#63)) ([9e46c56](9e46c56)) ### Documentation * bump ([#4](#4)) ([ad4d163](ad4d163)) ### Features * add convenience function isUIResource to client SDK ([#86](#86)) ([607c6ad](607c6ad)) * add embeddedResourceProps for annotations ([#99](#99)) ([b96ec44](b96ec44)) * add proxy option to externalUrl ([#37](#37)) ([7b95cd0](7b95cd0)) * add remote-dom content type ([#18](#18)) ([5dacf37](5dacf37)) * add Ruby server SDK ([#31](#31)) ([5ffcde4](5ffcde4)) * add sandbox permissions instead of an override ([#83](#83)) ([b1068e9](b1068e9)) * add ui-request-render-data message type ([#111](#111)) ([26135ce](26135ce)) * add UIResourceRenderer Web Component ([#58](#58)) ([ec8f299](ec8f299)) * auto resize with the autoResizeIframe prop ([#56](#56)) ([76c867a](76c867a)) * change onGenericMcpAction to optional onUiAction ([1913b59](1913b59)) * **client:** allow setting supportedContentTypes for HtmlResource ([#17](#17)) ([e009ef1](e009ef1)) * consolidate ui:// and ui-app:// ([#8](#8)) ([2e08035](2e08035)) * pass iframe props down ([#14](#14)) ([112539d](112539d)) * refactor UTFtoB64 (bump server version) ([#95](#95)) ([2d5e16b](2d5e16b)) * send render data to the iframe ([#51](#51)) ([d38cfc7](d38cfc7)) * separate html and remote-dom props ([#24](#24)) ([a7f0529](a7f0529)) * support adapters ([#127](#127)) ([d4bd152](d4bd152)) * support generic messages response ([#35](#35)) ([10b407b](10b407b)) * support metadata in Python SDK ([#134](#134)) ([9bc3c64](9bc3c64)) * support passing resource metadata ([#87](#87)) ([f1c1c9b](f1c1c9b)) * support proxy for rawHtml ([#132](#132)) ([1bbeb09](1bbeb09)) * support ui action result types ([#6](#6)) ([899d152](899d152)) * switch to ResourceRenderer ([#21](#21)) ([6fe3166](6fe3166)) ### BREAKING CHANGES * The existing naming is ambiguous. Renaming delivery to encoding and flavor to framework should clarify the intent. * exported names have changed * removed deprecated client API * (previous one didn't take due to semantic-release misalignment)
…1.0...v5.12.0) (2025-09-23) ### Features * add ui-request-render-data message type ([#111](MCP-UI-Org/mcp-ui#111)) ([e94559f](MCP-UI-Org/mcp-ui@e94559f))
…er/v5.11.0...server/v5.12.0) (2025-10-13) ### Bug Fixes * update isUIResource to use EmbeddedResource type ([#122](MCP-UI-Org/mcp-ui#122)) ([4a3781d](MCP-UI-Org/mcp-ui@4a3781d)), closes [#117](MCP-UI-Org/mcp-ui#117) ### Features * add ui-request-render-data message type ([#111](MCP-UI-Org/mcp-ui#111)) ([e94559f](MCP-UI-Org/mcp-ui@e94559f)) * support adapters ([#127](MCP-UI-Org/mcp-ui#127)) ([90300fe](MCP-UI-Org/mcp-ui@90300fe))
# 1.0.0 (2025-11-04) ### Bug Fixes * add a bridge to pass messages in and out of the proxy ([#38](MCP-UI-Org/mcp-ui#38)) ([3938917](MCP-UI-Org/mcp-ui@3938917)) * bump client version ([a9c9638](MCP-UI-Org/mcp-ui@a9c9638)) * **client:** specify iframe ([216034f](MCP-UI-Org/mcp-ui@216034f)) * **client:** styling ([b5e07fd](MCP-UI-Org/mcp-ui@b5e07fd)) * dependencies ([65fb8df](MCP-UI-Org/mcp-ui@65fb8df)) * Enable bidirectional message relay in rawhtml proxy mode ([#138](MCP-UI-Org/mcp-ui#138)) ([a728581](MCP-UI-Org/mcp-ui@a728581)) * ensure Apps SDK adapter is bundled properly and initialized wth config ([#137](MCP-UI-Org/mcp-ui#137)) ([eabd84b](MCP-UI-Org/mcp-ui@eabd84b)) * export RemoteDomResource ([79278b6](MCP-UI-Org/mcp-ui@79278b6)) * export ResourceRenderer and HtmlResource ([db19b70](MCP-UI-Org/mcp-ui@db19b70)) * exports ([b802886](MCP-UI-Org/mcp-ui@b802886)) * fix file extension reference in package.json ([121c7f6](MCP-UI-Org/mcp-ui@121c7f6)) * iframe handle ([#15](MCP-UI-Org/mcp-ui#15)) ([daabb36](MCP-UI-Org/mcp-ui@daabb36)) * lint ([ec7df69](MCP-UI-Org/mcp-ui@ec7df69)) * lint ([8d7fd19](MCP-UI-Org/mcp-ui@8d7fd19)) * minor typo ([7e0213b](MCP-UI-Org/mcp-ui@7e0213b)) * move react dependencies to be peer dependencies ([#91](MCP-UI-Org/mcp-ui#91)) ([596630a](MCP-UI-Org/mcp-ui@596630a)), closes [#90](MCP-UI-Org/mcp-ui#90) * package config ([a798ca7](MCP-UI-Org/mcp-ui@a798ca7)) * packaging ([31b4e10](MCP-UI-Org/mcp-ui@31b4e10)) * pass ref explicitly using iframeProps ([#33](MCP-UI-Org/mcp-ui#33)) ([5889829](MCP-UI-Org/mcp-ui@5889829)) * publish ([a77cd3e](MCP-UI-Org/mcp-ui@a77cd3e)) * ref passing to UIResourceRenderer ([#32](MCP-UI-Org/mcp-ui#32)) ([02305a6](MCP-UI-Org/mcp-ui@02305a6)) * remove shared dependency ([a167581](MCP-UI-Org/mcp-ui@a167581)) * rename components and methods to fit new scope ([#22](MCP-UI-Org/mcp-ui#22)) ([0179f4d](MCP-UI-Org/mcp-ui@0179f4d)) * rename delivery -> encoding and flavor -> framework ([#36](MCP-UI-Org/mcp-ui#36)) ([d523bcf](MCP-UI-Org/mcp-ui@d523bcf)) * Ruby comment ([786071a](MCP-UI-Org/mcp-ui@786071a)) * support react-router ([be4a6a5](MCP-UI-Org/mcp-ui@be4a6a5)) * text and blob support in RemoteDOM resources ([fb89026](MCP-UI-Org/mcp-ui@fb89026)) * trigger release ([fc78758](MCP-UI-Org/mcp-ui@fc78758)) * typescript ci publish ([a613dd2](MCP-UI-Org/mcp-ui@a613dd2)) * typescript types to be compatible with MCP SDK ([#10](MCP-UI-Org/mcp-ui#10)) ([67be52c](MCP-UI-Org/mcp-ui@67be52c)) * update deps ([3a1610e](MCP-UI-Org/mcp-ui@3a1610e)) * update isUIResource to use EmbeddedResource type ([#122](MCP-UI-Org/mcp-ui#122)) ([4a3781d](MCP-UI-Org/mcp-ui@4a3781d)), closes [#117](MCP-UI-Org/mcp-ui#117) * use targetOrigin in the proxy message relay ([#40](MCP-UI-Org/mcp-ui#40)) ([8f5047b](MCP-UI-Org/mcp-ui@8f5047b)) * validate URL ([d2fd894](MCP-UI-Org/mcp-ui@d2fd894)) * wc dist overwrite ([#63](MCP-UI-Org/mcp-ui#63)) ([34b4e81](MCP-UI-Org/mcp-ui@34b4e81)) ### Documentation * bump ([#4](MCP-UI-Org/mcp-ui#4)) ([6ecd050](MCP-UI-Org/mcp-ui@6ecd050)) ### Features * add convenience function isUIResource to client SDK ([#86](MCP-UI-Org/mcp-ui#86)) ([abe684e](MCP-UI-Org/mcp-ui@abe684e)) * add embeddedResourceProps for annotations ([#99](MCP-UI-Org/mcp-ui#99)) ([c2011f0](MCP-UI-Org/mcp-ui@c2011f0)) * add proxy option to externalUrl ([#37](MCP-UI-Org/mcp-ui#37)) ([d2d5ea8](MCP-UI-Org/mcp-ui@d2d5ea8)) * add remote-dom content type ([#18](MCP-UI-Org/mcp-ui#18)) ([26bfc36](MCP-UI-Org/mcp-ui@26bfc36)) * add Ruby server SDK ([#31](MCP-UI-Org/mcp-ui#31)) ([a2c9f3d](MCP-UI-Org/mcp-ui@a2c9f3d)) * add sandbox permissions instead of an override ([#83](MCP-UI-Org/mcp-ui#83)) ([a04586a](MCP-UI-Org/mcp-ui@a04586a)) * add ui-request-render-data message type ([#111](MCP-UI-Org/mcp-ui#111)) ([e94559f](MCP-UI-Org/mcp-ui@e94559f)) * add UIResourceRenderer Web Component ([#58](MCP-UI-Org/mcp-ui#58)) ([bd0e046](MCP-UI-Org/mcp-ui@bd0e046)) * auto resize with the autoResizeIframe prop ([#56](MCP-UI-Org/mcp-ui#56)) ([d4ec53f](MCP-UI-Org/mcp-ui@d4ec53f)) * change onGenericMcpAction to optional onUiAction ([47fdc88](MCP-UI-Org/mcp-ui@47fdc88)) * **client:** allow setting supportedContentTypes for HtmlResource ([#17](MCP-UI-Org/mcp-ui#17)) ([589de06](MCP-UI-Org/mcp-ui@589de06)) * consolidate ui:// and ui-app:// ([#8](MCP-UI-Org/mcp-ui#8)) ([2c36520](MCP-UI-Org/mcp-ui@2c36520)) * pass iframe props down ([#14](MCP-UI-Org/mcp-ui#14)) ([30ee06d](MCP-UI-Org/mcp-ui@30ee06d)) * refactor UTFtoB64 (bump server version) ([#95](MCP-UI-Org/mcp-ui#95)) ([f95acfd](MCP-UI-Org/mcp-ui@f95acfd)) * send render data to the iframe ([#51](MCP-UI-Org/mcp-ui#51)) ([2dc9d53](MCP-UI-Org/mcp-ui@2dc9d53)) * separate html and remote-dom props ([#24](MCP-UI-Org/mcp-ui#24)) ([7b06bc9](MCP-UI-Org/mcp-ui@7b06bc9)) * support adapters ([#127](MCP-UI-Org/mcp-ui#127)) ([90300fe](MCP-UI-Org/mcp-ui@90300fe)) * support generic messages response ([#35](MCP-UI-Org/mcp-ui#35)) ([4deead6](MCP-UI-Org/mcp-ui@4deead6)) * support metadata in Python SDK ([#134](MCP-UI-Org/mcp-ui#134)) ([e510fd4](MCP-UI-Org/mcp-ui@e510fd4)) * support passing resource metadata ([#87](MCP-UI-Org/mcp-ui#87)) ([fcac6b9](MCP-UI-Org/mcp-ui@fcac6b9)) * support proxy for rawHtml ([#132](MCP-UI-Org/mcp-ui#132)) ([dca6fa4](MCP-UI-Org/mcp-ui@dca6fa4)) * support ui action result types ([#6](MCP-UI-Org/mcp-ui#6)) ([1d48c62](MCP-UI-Org/mcp-ui@1d48c62)) * switch to ResourceRenderer ([#21](MCP-UI-Org/mcp-ui#21)) ([9b318f1](MCP-UI-Org/mcp-ui@9b318f1)) ### BREAKING CHANGES * The existing naming is ambiguous. Renaming delivery to encoding and flavor to framework should clarify the intent. * exported names have changed * removed deprecated client API * (previous one didn't take due to semantic-release misalignment)
This PR introduces a new
ui-request-render-datamessage type that allows iframes to explicitly request render data from the host, providing a more semantic alternative to relying on theui-lifecycle-iframe-readylifecycle event side-effect.Problem
Previously, iframes could only receive render data as a side-effect of sending
ui-lifecycle-iframe-ready. This approach had several limitations:Solution
The new
ui-request-render-datamessage type allows iframes to explicitly request render data when needed:Implementation Details
UI_REQUEST_RENDER_DATA: 'ui-request-render-data'constantui-lifecycle-iframe-render-dataformatmessageIdfrom request to response for trackingui-lifecycle-iframe-readybehavior remains unchangedBenefits
Fixes #106.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.