@miragon/mcp-toolkit-ui 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app/host-bridge.d.ts +4 -4
- package/dist/app/host-bridge.js +2 -2
- package/package.json +5 -5
- package/src/app/host-bridge.tsx +4 -4
- package/ui-catalog.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Published to the public npm registry under the `@miragon` scope — no `.npmrc`
|
|
|
9
9
|
or token needed.
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
pnpm add @miragon/mcp-toolkit-ui @miragon/mcp-toolkit-core mcp-use@2.0
|
|
12
|
+
pnpm add @miragon/mcp-toolkit-ui @miragon/mcp-toolkit-core mcp-use@2.1.0 react@19.2.8 react-dom@19.2.8 tailwindcss@4.3.3
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Peer versions are pinned exactly — install the versions above.
|
|
@@ -4,7 +4,7 @@ import { type ReactNode } from "react";
|
|
|
4
4
|
* host runtime. A `HostBridge` is the single seam a portable widget talks to:
|
|
5
5
|
* write the widget against {@link useHostBridge} and it runs unchanged in our
|
|
6
6
|
* own `mcp-use` host, inside ChatGPT (OpenAI Apps SDK), or as a standalone web
|
|
7
|
-
* app driven directly by a `@modelcontextprotocol/
|
|
7
|
+
* app driven directly by a `@modelcontextprotocol/client` client — only the
|
|
8
8
|
* surrounding adapter changes.
|
|
9
9
|
*
|
|
10
10
|
* This is deliberately the *minimum* a deterministic UI needs, not a mirror of
|
|
@@ -164,7 +164,7 @@ export declare function createChatGptHostBridge(sdk?: OpenAiAppsSdk | null): Hos
|
|
|
164
164
|
export interface StandaloneHostBridgeOptions {
|
|
165
165
|
/**
|
|
166
166
|
* The only required capability: how to call a tool on the server. In a
|
|
167
|
-
* standalone web app this typically wraps a `@modelcontextprotocol/
|
|
167
|
+
* standalone web app this typically wraps a `@modelcontextprotocol/client`
|
|
168
168
|
* `Client.callTool({ name, arguments })`, but any function with this shape
|
|
169
169
|
* works — that injection is the whole point: hand-built widgets render
|
|
170
170
|
* against *any* existing MCP server without the toolkit's host runtime.
|
|
@@ -197,7 +197,7 @@ export interface StandaloneHostBridgeOptions {
|
|
|
197
197
|
/**
|
|
198
198
|
* Build a {@link HostBridge} for a standalone web app driven against an existing
|
|
199
199
|
* MCP server — no toolkit host, no `createFrameworkApp`. You inject `callTool`
|
|
200
|
-
* (usually a thin wrapper over a `@modelcontextprotocol/
|
|
200
|
+
* (usually a thin wrapper over a `@modelcontextprotocol/client` client); the
|
|
201
201
|
* conversation-shaped verbs (`sendFollowup`, `setModelContext`) are no-ops
|
|
202
202
|
* unless you wire handlers, and `openExternal` defaults to `window.open`.
|
|
203
203
|
*
|
|
@@ -207,7 +207,7 @@ export interface StandaloneHostBridgeOptions {
|
|
|
207
207
|
* harness also builds on this factory so host simulation has a single source.
|
|
208
208
|
*
|
|
209
209
|
* @example
|
|
210
|
-
* const client = new Client(…) // @modelcontextprotocol/
|
|
210
|
+
* const client = new Client(…) // @modelcontextprotocol/client
|
|
211
211
|
* const bridge = createStandaloneHostBridge({
|
|
212
212
|
* callTool: (name, args) => client.callTool({ name, arguments: args }),
|
|
213
213
|
* getData: () => currentRecord,
|
package/dist/app/host-bridge.js
CHANGED
|
@@ -173,7 +173,7 @@ export function createChatGptHostBridge(sdk) {
|
|
|
173
173
|
/**
|
|
174
174
|
* Build a {@link HostBridge} for a standalone web app driven against an existing
|
|
175
175
|
* MCP server — no toolkit host, no `createFrameworkApp`. You inject `callTool`
|
|
176
|
-
* (usually a thin wrapper over a `@modelcontextprotocol/
|
|
176
|
+
* (usually a thin wrapper over a `@modelcontextprotocol/client` client); the
|
|
177
177
|
* conversation-shaped verbs (`sendFollowup`, `setModelContext`) are no-ops
|
|
178
178
|
* unless you wire handlers, and `openExternal` defaults to `window.open`.
|
|
179
179
|
*
|
|
@@ -183,7 +183,7 @@ export function createChatGptHostBridge(sdk) {
|
|
|
183
183
|
* harness also builds on this factory so host simulation has a single source.
|
|
184
184
|
*
|
|
185
185
|
* @example
|
|
186
|
-
* const client = new Client(…) // @modelcontextprotocol/
|
|
186
|
+
* const client = new Client(…) // @modelcontextprotocol/client
|
|
187
187
|
* const bridge = createStandaloneHostBridge({
|
|
188
188
|
* callTool: (name, args) => client.callTool({ name, arguments: args }),
|
|
189
189
|
* getData: () => currentRecord,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miragon/mcp-toolkit-ui",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "React UI for MCP servers: shadcn primitives, composite components, TanStack Query hooks, and the MCP App shell (McpAppView + WidgetRenderer).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"mcp-use": "2.0
|
|
41
|
+
"mcp-use": "2.1.0",
|
|
42
42
|
"react": "19.2.8",
|
|
43
43
|
"react-dom": "19.2.8",
|
|
44
44
|
"tailwindcss": "4.3.3",
|
|
45
|
-
"@miragon/mcp-toolkit-core": "1.0
|
|
45
|
+
"@miragon/mcp-toolkit-core": "1.1.0"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@base-ui/react": "1.6.0",
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/react": "19.2.18",
|
|
60
60
|
"@types/react-dom": "19.2.4",
|
|
61
|
-
"mcp-use": "2.0
|
|
61
|
+
"mcp-use": "2.1.0",
|
|
62
62
|
"react": "19.2.8",
|
|
63
63
|
"react-dom": "19.2.8",
|
|
64
64
|
"tailwindcss": "4.3.3",
|
|
65
65
|
"typescript": "6.0.3",
|
|
66
66
|
"vitest": "4.1.10",
|
|
67
|
-
"@miragon/mcp-toolkit-core": "1.0
|
|
67
|
+
"@miragon/mcp-toolkit-core": "1.1.0"
|
|
68
68
|
},
|
|
69
69
|
"engines": {
|
|
70
70
|
"node": ">=22.22.2"
|
package/src/app/host-bridge.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import { createContext, useContext, type ReactNode } from "react"
|
|
|
5
5
|
* host runtime. A `HostBridge` is the single seam a portable widget talks to:
|
|
6
6
|
* write the widget against {@link useHostBridge} and it runs unchanged in our
|
|
7
7
|
* own `mcp-use` host, inside ChatGPT (OpenAI Apps SDK), or as a standalone web
|
|
8
|
-
* app driven directly by a `@modelcontextprotocol/
|
|
8
|
+
* app driven directly by a `@modelcontextprotocol/client` client — only the
|
|
9
9
|
* surrounding adapter changes.
|
|
10
10
|
*
|
|
11
11
|
* This is deliberately the *minimum* a deterministic UI needs, not a mirror of
|
|
@@ -288,7 +288,7 @@ export function createChatGptHostBridge(sdk?: OpenAiAppsSdk | null): HostBridge
|
|
|
288
288
|
export interface StandaloneHostBridgeOptions {
|
|
289
289
|
/**
|
|
290
290
|
* The only required capability: how to call a tool on the server. In a
|
|
291
|
-
* standalone web app this typically wraps a `@modelcontextprotocol/
|
|
291
|
+
* standalone web app this typically wraps a `@modelcontextprotocol/client`
|
|
292
292
|
* `Client.callTool({ name, arguments })`, but any function with this shape
|
|
293
293
|
* works — that injection is the whole point: hand-built widgets render
|
|
294
294
|
* against *any* existing MCP server without the toolkit's host runtime.
|
|
@@ -322,7 +322,7 @@ export interface StandaloneHostBridgeOptions {
|
|
|
322
322
|
/**
|
|
323
323
|
* Build a {@link HostBridge} for a standalone web app driven against an existing
|
|
324
324
|
* MCP server — no toolkit host, no `createFrameworkApp`. You inject `callTool`
|
|
325
|
-
* (usually a thin wrapper over a `@modelcontextprotocol/
|
|
325
|
+
* (usually a thin wrapper over a `@modelcontextprotocol/client` client); the
|
|
326
326
|
* conversation-shaped verbs (`sendFollowup`, `setModelContext`) are no-ops
|
|
327
327
|
* unless you wire handlers, and `openExternal` defaults to `window.open`.
|
|
328
328
|
*
|
|
@@ -332,7 +332,7 @@ export interface StandaloneHostBridgeOptions {
|
|
|
332
332
|
* harness also builds on this factory so host simulation has a single source.
|
|
333
333
|
*
|
|
334
334
|
* @example
|
|
335
|
-
* const client = new Client(…) // @modelcontextprotocol/
|
|
335
|
+
* const client = new Client(…) // @modelcontextprotocol/client
|
|
336
336
|
* const bridge = createStandaloneHostBridge({
|
|
337
337
|
* callTool: (name, args) => client.callTool({ name, arguments: args }),
|
|
338
338
|
* getData: () => currentRecord,
|
package/ui-catalog.json
CHANGED
|
@@ -948,7 +948,7 @@
|
|
|
948
948
|
"description": "{ callTool (required), getData?, onFollowup?, onOpenExternal?, onModelContext?, theme? }."
|
|
949
949
|
}
|
|
950
950
|
],
|
|
951
|
-
"whenToUse": "Build a HostBridge for a standalone web app against any MCP server (callTool usually wraps a @modelcontextprotocol/
|
|
951
|
+
"whenToUse": "Build a HostBridge for a standalone web app against any MCP server (callTool usually wraps a @modelcontextprotocol/client client). The WidgetFixtureHost builds on this too."
|
|
952
952
|
},
|
|
953
953
|
{
|
|
954
954
|
"name": "createChatGptHostBridge",
|