Skip to content

Commit 71f0a6b

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/ruby
2 parents ec5260f + dd09761 commit 71f0a6b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1461
-188
lines changed

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
# [5.2.0](https://github.com/idosal/mcp-ui/compare/v5.1.2...v5.2.0) (2025-07-18)
2+
3+
4+
### Features
5+
6+
* support generic messages response ([#35](https://github.com/idosal/mcp-ui/issues/35)) ([10b407b](https://github.com/idosal/mcp-ui/commit/10b407b279b3ee9608ef077445f4d714f88343c5))
7+
8+
## [5.1.2](https://github.com/idosal/mcp-ui/compare/v5.1.1...v5.1.2) (2025-07-18)
9+
10+
11+
### Bug Fixes
12+
13+
* use targetOrigin in the proxy message relay ([#40](https://github.com/idosal/mcp-ui/issues/40)) ([b3fb54e](https://github.com/idosal/mcp-ui/commit/b3fb54e28ca7b8eeda896b5bcf478b6343dbba47))
14+
15+
## [5.1.1](https://github.com/idosal/mcp-ui/compare/v5.1.0...v5.1.1) (2025-07-18)
16+
17+
18+
### Bug Fixes
19+
20+
* add a bridge to pass messages in and out of the proxy ([#38](https://github.com/idosal/mcp-ui/issues/38)) ([30ccac0](https://github.com/idosal/mcp-ui/commit/30ccac0706ad8e02ebcd8960924ed1d58ddedf85))
21+
22+
# [5.1.0](https://github.com/idosal/mcp-ui/compare/v5.0.0...v5.1.0) (2025-07-18)
23+
24+
25+
### Features
26+
27+
* add proxy option to externalUrl ([#37](https://github.com/idosal/mcp-ui/issues/37)) ([7b95cd0](https://github.com/idosal/mcp-ui/commit/7b95cd0b3873fc1cde28748ec463e81c6ff1c494))
28+
29+
# [5.0.0](https://github.com/idosal/mcp-ui/compare/v4.1.4...v5.0.0) (2025-07-17)
30+
31+
32+
### Bug Fixes
33+
34+
* rename delivery -> encoding and flavor -> framework ([#36](https://github.com/idosal/mcp-ui/issues/36)) ([9a509ed](https://github.com/idosal/mcp-ui/commit/9a509ed80d051b0a8042b36958b401a0a7c1e138))
35+
36+
37+
### BREAKING CHANGES
38+
39+
* The existing naming is ambiguous. Renaming delivery to encoding and flavor to framework should clarify the intent.
40+
141
## [4.1.4](https://github.com/idosal/mcp-ui/compare/v4.1.3...v4.1.4) (2025-07-16)
242

343

README.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,13 @@ It accepts the following props:
7676
- **`resource`**: The resource object from an MCP Tool response. It must include `uri`, `mimeType`, and content (`text`, `blob`)
7777
- **`onUIAction`**: Optional callback for handling UI actions from the resource:
7878
```typescript
79-
{ type: 'tool', payload: { toolName: string, params: Record<string, unknown> } } |
80-
{ type: 'intent', payload: { intent: string, params: Record<string, unknown> } } |
81-
{ type: 'prompt', payload: { prompt: string } } |
82-
{ type: 'notify', payload: { message: string } } |
83-
{ type: 'link', payload: { url: string } }
79+
{ type: 'tool', payload: { toolName: string, params: Record<string, unknown> }, messageId?: string } |
80+
{ type: 'intent', payload: { intent: string, params: Record<string, unknown> }, messageId?: string } |
81+
{ type: 'prompt', payload: { prompt: string }, messageId?: string } |
82+
{ type: 'notify', payload: { message: string }, messageId?: string } |
83+
{ type: 'link', payload: { url: string }, messageId?: string }
8484
```
85+
When actions include a `messageId`, the iframe automatically receives response messages for asynchronous handling.
8586
- **`supportedContentTypes`**: Optional array to restrict which content types are allowed (`['rawHtml', 'externalUrl', 'remoteDom']`)
8687
- **`htmlProps`**: Optional props for the internal `<HTMLResourceRenderer>`
8788
- **`style`**: Optional custom styles for the iframe
@@ -104,7 +105,7 @@ Rendered using the internal `<HTMLResourceRenderer />` component, which displays
104105

105106
Rendered using the internal `<RemoteDOMResourceRenderer />` component, which utilizes Shopify's [`remote-dom`](https://github.com/Shopify/remote-dom). The server responds with a script that describes the UI and events. On the host, the script is securely rendered in a sandboxed iframe, and the UI changes are communicated to the host in JSON, where they're rendered using the host's component library. This is more flexible than iframes and allows for UIs that match the host's look-and-feel.
106107

107-
* **`mimeType`**: `application/vnd.mcp-ui.remote-dom; flavor={react | webcomponents}`
108+
* **`mimeType`**: `application/vnd.mcp-ui.remote-dom; framework={react | webcomponents}`
108109

109110
### UI Action
110111

@@ -151,14 +152,14 @@ You can use [GitMCP](https://gitmcp.io/idosal/mcp-ui) to give your IDE access to
151152
const htmlResource = createUIResource({
152153
uri: 'ui://greeting/1',
153154
content: { type: 'rawHtml', htmlString: '<p>Hello, MCP UI!</p>' },
154-
delivery: 'text',
155+
encoding: 'text',
155156
});
156157

157158
// External URL
158159
const externalUrlResource = createUIResource({
159160
uri: 'ui://greeting/1',
160161
content: { type: 'externalUrl', iframeUrl: 'https://example.com' },
161-
delivery: 'text',
162+
encoding: 'text',
162163
});
163164

164165
// remote-dom
@@ -174,9 +175,9 @@ You can use [GitMCP](https://gitmcp.io/idosal/mcp-ui) to give your IDE access to
174175
});
175176
root.appendChild(button);
176177
`,
177-
flavor: 'react', // or 'webcomponents'
178+
framework: 'react', // or 'webcomponents'
178179
},
179-
delivery: 'text',
180+
encoding: 'text',
180181
});
181182
```
182183

docs/src/.vitepress/config.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,28 @@ export default defineConfig({
127127
{ text: 'Overview', link: '/guide/client/overview' },
128128
{
129129
text: 'UIResourceRenderer',
130-
link: '/guide/client/resource-renderer',
131-
},
132-
{
133-
text: 'HTMLResourceRenderer',
134-
link: '/guide/client/html-resource',
135-
},
136-
{
137-
text: 'RemoteDOMResourceRenderer',
138-
link: '/guide/client/remote-dom-resource',
130+
items: [
131+
{
132+
text: 'Overview',
133+
link: '/guide/client/resource-renderer',
134+
},
135+
{
136+
text: 'Custom Component Libraries',
137+
link: '/guide/client/custom-component-libraries',
138+
},
139+
{
140+
text: 'Using a Proxy',
141+
link: '/guide/client/using-a-proxy',
142+
},
143+
{
144+
text: 'HTMLResourceRenderer',
145+
link: '/guide/client/html-resource',
146+
},
147+
{
148+
text: 'RemoteDOMResourceRenderer',
149+
link: '/guide/client/remote-dom-resource',
150+
},
151+
],
139152
},
140153
{ text: 'Usage & Examples', link: '/guide/client/usage-examples' },
141154
],

0 commit comments

Comments
 (0)