@mcp-ts/sdk 1.3.10 → 1.5.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 +20 -27
- package/dist/adapters/agui-adapter.d.mts +16 -0
- package/dist/adapters/agui-adapter.d.ts +16 -0
- package/dist/adapters/agui-adapter.js +185 -0
- package/dist/adapters/agui-adapter.js.map +1 -1
- package/dist/adapters/agui-adapter.mjs +185 -0
- package/dist/adapters/agui-adapter.mjs.map +1 -1
- package/dist/adapters/agui-middleware.d.mts +2 -0
- package/dist/adapters/agui-middleware.d.ts +2 -0
- package/dist/adapters/agui-middleware.js.map +1 -1
- package/dist/adapters/agui-middleware.mjs.map +1 -1
- package/dist/adapters/ai-adapter.d.mts +21 -0
- package/dist/adapters/ai-adapter.d.ts +21 -0
- package/dist/adapters/ai-adapter.js +175 -0
- package/dist/adapters/ai-adapter.js.map +1 -1
- package/dist/adapters/ai-adapter.mjs +175 -0
- package/dist/adapters/ai-adapter.mjs.map +1 -1
- package/dist/adapters/langchain-adapter.d.mts +16 -0
- package/dist/adapters/langchain-adapter.d.ts +16 -0
- package/dist/adapters/langchain-adapter.js +179 -0
- package/dist/adapters/langchain-adapter.js.map +1 -1
- package/dist/adapters/langchain-adapter.mjs +179 -0
- package/dist/adapters/langchain-adapter.mjs.map +1 -1
- package/dist/client/index.d.mts +4 -190
- package/dist/client/index.d.ts +4 -190
- package/dist/client/index.js +218 -54
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +215 -55
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/react.d.mts +31 -17
- package/dist/client/react.d.ts +31 -17
- package/dist/client/react.js +447 -103
- package/dist/client/react.js.map +1 -1
- package/dist/client/react.mjs +443 -105
- package/dist/client/react.mjs.map +1 -1
- package/dist/client/vue.d.mts +5 -4
- package/dist/client/vue.d.ts +5 -4
- package/dist/client/vue.js +239 -63
- package/dist/client/vue.js.map +1 -1
- package/dist/client/vue.mjs +236 -64
- package/dist/client/vue.mjs.map +1 -1
- package/dist/index-DcYfpY3H.d.mts +295 -0
- package/dist/index-GfC_eNEv.d.ts +295 -0
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +1120 -59
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1097 -60
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +18 -5
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +18 -5
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/index.d.mts +86 -4
- package/dist/shared/index.d.ts +86 -4
- package/dist/shared/index.js +874 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +865 -1
- package/dist/shared/index.mjs.map +1 -1
- package/dist/tool-router-Bo8qZbsD.d.ts +325 -0
- package/dist/tool-router-XnWVxPzv.d.mts +325 -0
- package/dist/{types-CW6lghof.d.mts → types-CfCoIsWI.d.mts} +27 -1
- package/dist/{types-CW6lghof.d.ts → types-CfCoIsWI.d.ts} +27 -1
- package/package.json +15 -12
- package/src/adapters/agui-adapter.ts +79 -0
- package/src/adapters/ai-adapter.ts +75 -0
- package/src/adapters/langchain-adapter.ts +75 -1
- package/src/client/core/app-host.ts +252 -65
- package/src/client/core/constants.ts +30 -0
- package/src/client/index.ts +6 -1
- package/src/client/react/index.ts +3 -0
- package/src/client/react/use-app-host.ts +8 -15
- package/src/client/react/use-mcp-apps.tsx +262 -49
- package/src/client/react/use-mcp.ts +23 -12
- package/src/client/utils/app-host-utils.ts +62 -0
- package/src/client/vue/use-mcp.ts +23 -12
- package/src/server/index.ts +2 -0
- package/src/server/mcp/oauth-client.ts +34 -9
- package/src/shared/index.ts +36 -0
- package/src/shared/meta-tools.ts +387 -0
- package/src/shared/schema-compressor.ts +124 -0
- package/src/shared/tool-index.ts +499 -0
- package/src/shared/tool-router.ts +469 -0
- package/src/shared/types.ts +30 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from './events-CK3N--3g.mjs';
|
|
2
|
+
import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from './types-CfCoIsWI.mjs';
|
|
3
|
+
import { AppBridge } from '@modelcontextprotocol/ext-apps/app-bridge';
|
|
4
|
+
import { LoggingMessageNotification } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Stateless RPC-over-stream client for MCP connections.
|
|
8
|
+
*
|
|
9
|
+
* Uses single POST requests with `Accept: text/event-stream` for every RPC call.
|
|
10
|
+
* Progress events and the final rpc-response are delivered in the same response.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
interface SSEClientOptions {
|
|
14
|
+
/** MCP endpoint URL */
|
|
15
|
+
url: string;
|
|
16
|
+
/** User/Client identifier */
|
|
17
|
+
identity: string;
|
|
18
|
+
/** Optional auth token for authenticated requests */
|
|
19
|
+
authToken?: string;
|
|
20
|
+
/** Callback for MCP connection state changes */
|
|
21
|
+
onConnectionEvent?: (event: McpConnectionEvent) => void;
|
|
22
|
+
/** Callback for observability/logging events */
|
|
23
|
+
onObservabilityEvent?: (event: McpObservabilityEvent) => void;
|
|
24
|
+
/** Callback for connection status changes */
|
|
25
|
+
onStatusChange?: (status: ConnectionStatus) => void;
|
|
26
|
+
/** Callback for MCP App UI events */
|
|
27
|
+
onEvent?: (event: McpAppsUIEvent) => void;
|
|
28
|
+
/** Enable debug logging @default false */
|
|
29
|
+
debug?: boolean;
|
|
30
|
+
}
|
|
31
|
+
type ConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
|
|
32
|
+
declare class SSEClient {
|
|
33
|
+
private readonly options;
|
|
34
|
+
private resourceCache;
|
|
35
|
+
private connected;
|
|
36
|
+
constructor(options: SSEClientOptions);
|
|
37
|
+
connect(): void;
|
|
38
|
+
disconnect(): void;
|
|
39
|
+
isConnected(): boolean;
|
|
40
|
+
getSessions(): Promise<SessionListResult>;
|
|
41
|
+
connectToServer(params: ConnectParams): Promise<ConnectResult>;
|
|
42
|
+
disconnectFromServer(sessionId: string): Promise<DisconnectResult>;
|
|
43
|
+
listTools(sessionId: string): Promise<ListToolsRpcResult>;
|
|
44
|
+
callTool(sessionId: string, toolName: string, toolArgs: Record<string, unknown>): Promise<unknown>;
|
|
45
|
+
restoreSession(sessionId: string): Promise<RestoreSessionResult>;
|
|
46
|
+
finishAuth(sessionId: string, code: string): Promise<FinishAuthResult>;
|
|
47
|
+
listPrompts(sessionId: string): Promise<ListPromptsResult>;
|
|
48
|
+
getPrompt(sessionId: string, name: string, args?: Record<string, string>): Promise<unknown>;
|
|
49
|
+
listResources(sessionId: string): Promise<ListResourcesResult>;
|
|
50
|
+
readResource(sessionId: string, uri: string): Promise<unknown>;
|
|
51
|
+
preloadToolUiResources(sessionId: string, tools: Array<{
|
|
52
|
+
name: string;
|
|
53
|
+
_meta?: unknown;
|
|
54
|
+
}>): void;
|
|
55
|
+
getOrFetchResource(sessionId: string, uri: string): Promise<unknown>;
|
|
56
|
+
hasPreloadedResource(uri: string): boolean;
|
|
57
|
+
clearResourceCache(): void;
|
|
58
|
+
private sendRequest;
|
|
59
|
+
private readRpcResponseFromStream;
|
|
60
|
+
private sleep;
|
|
61
|
+
private parseRpcResponse;
|
|
62
|
+
private buildUrl;
|
|
63
|
+
private buildHeaders;
|
|
64
|
+
private extractUiResourceUri;
|
|
65
|
+
private emitUiEventIfPresent;
|
|
66
|
+
private log;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Abstraction layer for the AppHost's network communication.
|
|
71
|
+
*
|
|
72
|
+
* This interface decouples the `AppHost` from the concrete networking implementation (like `SSEClient`).
|
|
73
|
+
* Implementation can be:
|
|
74
|
+
* 1. `SSEClient`: Direct connection to MCP Server (Browser -> Server).
|
|
75
|
+
* 2. `ProxyClient`: Connection via an intermediary API (Browser -> Next.js API -> Server).
|
|
76
|
+
*/
|
|
77
|
+
interface AppHostClient {
|
|
78
|
+
/**
|
|
79
|
+
* Check if the client is connected
|
|
80
|
+
*/
|
|
81
|
+
isConnected(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Get list of active sessions
|
|
84
|
+
*/
|
|
85
|
+
getSessions(): Promise<SessionListResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Call a tool on a specific session
|
|
88
|
+
*/
|
|
89
|
+
callTool(sessionId: string, toolName: string, toolArgs: Record<string, unknown>): Promise<unknown>;
|
|
90
|
+
/**
|
|
91
|
+
* Read a resource from a specific session
|
|
92
|
+
*/
|
|
93
|
+
readResource(sessionId: string, uri: string): Promise<unknown>;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* MCP App Host
|
|
98
|
+
*
|
|
99
|
+
* Bridges the gap between an iframe (MCP App) and the SSEClient (MCP Server).
|
|
100
|
+
* Handles secure iframe sandboxing, resource loading, and bi-directional
|
|
101
|
+
* communication via the AppBridge protocol.
|
|
102
|
+
*
|
|
103
|
+
* Key features:
|
|
104
|
+
* - Secure iframe sandboxing with minimal permissions (proxy-based)
|
|
105
|
+
* - Resource preloading for instant MCP App UI loading
|
|
106
|
+
* - Cache-aware resource fetching (SSEClient cache → local cache → direct fetch)
|
|
107
|
+
* - Support for ui:// and mcp-app:// resource URIs
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
type McpUiResourceCsp = Record<string, string>;
|
|
111
|
+
type McpUiHostContext = Record<string, unknown>;
|
|
112
|
+
type OnMessageHandler = NonNullable<AppBridge['onmessage']>;
|
|
113
|
+
type McpUiMessageParams = Parameters<OnMessageHandler>[0];
|
|
114
|
+
type RequestHandlerExtra = Parameters<OnMessageHandler>[1];
|
|
115
|
+
type McpUiMessageResult = ReturnType<OnMessageHandler> extends Promise<infer R> ? R : never;
|
|
116
|
+
type OnOpenLinkHandler = NonNullable<AppBridge['onopenlink']>;
|
|
117
|
+
type McpUiOpenLinkParams = Parameters<OnOpenLinkHandler>[0];
|
|
118
|
+
type McpUiOpenLinkResult = ReturnType<OnOpenLinkHandler> extends Promise<infer R> ? R : never;
|
|
119
|
+
type OnSizeChangeHandler = NonNullable<AppBridge['onsizechange']>;
|
|
120
|
+
type McpUiSizeChangedParams = Parameters<OnSizeChangeHandler>[0];
|
|
121
|
+
type OnRequestDisplayModeHandler = NonNullable<AppBridge['onrequestdisplaymode']>;
|
|
122
|
+
type McpUiRequestDisplayModeParams = Parameters<OnRequestDisplayModeHandler>[0];
|
|
123
|
+
type McpUiRequestDisplayModeResult = ReturnType<OnRequestDisplayModeHandler> extends Promise<infer R> ? R : never;
|
|
124
|
+
interface SandboxConfig {
|
|
125
|
+
url: URL | string;
|
|
126
|
+
permissions?: string;
|
|
127
|
+
csp?: McpUiResourceCsp;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Default Content-Security-Policy for MCP App iframes.
|
|
131
|
+
*
|
|
132
|
+
* Allows inline scripts/styles (required by most MCP App frameworks),
|
|
133
|
+
* outbound network connections, and common asset sources, while blocking
|
|
134
|
+
* nested frames and plugin objects.
|
|
135
|
+
*
|
|
136
|
+
* Pass this (or a spread of it) as `sandbox.csp` to enforce it:
|
|
137
|
+
* @example
|
|
138
|
+
* sandbox={{ url: '/sandbox.html', csp: DEFAULT_MCP_APP_CSP }}
|
|
139
|
+
* // or to extend:
|
|
140
|
+
* sandbox={{ url: '/sandbox.html', csp: { ...DEFAULT_MCP_APP_CSP, 'connect-src': "'self' https://api.example.com" } }}
|
|
141
|
+
*/
|
|
142
|
+
declare const DEFAULT_MCP_APP_CSP: McpUiResourceCsp;
|
|
143
|
+
interface AppHostOptions {
|
|
144
|
+
/** Enable debug logging @default false */
|
|
145
|
+
debug?: boolean;
|
|
146
|
+
/** Sandbox proxy configuration */
|
|
147
|
+
sandbox?: SandboxConfig;
|
|
148
|
+
/** Host context for theming, viewport, locale */
|
|
149
|
+
hostContext?: McpUiHostContext;
|
|
150
|
+
/** Custom handler for call tool requests, overriding automatic client forwarding */
|
|
151
|
+
onCallTool?: (params: ToolCallParams) => Promise<unknown>;
|
|
152
|
+
/** Custom handler for resources/read */
|
|
153
|
+
onReadResource?: (uri: string) => Promise<ResourceResponse>;
|
|
154
|
+
/** Custom handler for fallback JSON-RPC requests */
|
|
155
|
+
onFallbackRequest?: (request: any) => Promise<any>;
|
|
156
|
+
/** Handler for open-link requests from the guest UI */
|
|
157
|
+
onOpenLink?: (params: McpUiOpenLinkParams, extra: RequestHandlerExtra) => Promise<McpUiOpenLinkResult>;
|
|
158
|
+
/** Handler for message requests from the guest UI */
|
|
159
|
+
onMessage?: (params: McpUiMessageParams, extra: RequestHandlerExtra) => Promise<McpUiMessageResult>;
|
|
160
|
+
/** Handler for logging messages from the guest UI */
|
|
161
|
+
onLoggingMessage?: (params: LoggingMessageNotification['params']) => void;
|
|
162
|
+
/** Handler for size change notifications from the guest UI */
|
|
163
|
+
onSizeChanged?: (params: McpUiSizeChangedParams) => void;
|
|
164
|
+
/** Callback invoked when an error occurs during setup or message handling */
|
|
165
|
+
onError?: (error: Error) => void;
|
|
166
|
+
/** Handler for display mode change requests from the guest UI */
|
|
167
|
+
onRequestDisplayMode?: (params: McpUiRequestDisplayModeParams, extra: RequestHandlerExtra) => Promise<McpUiRequestDisplayModeResult>;
|
|
168
|
+
}
|
|
169
|
+
interface AppMessageParams {
|
|
170
|
+
role: string;
|
|
171
|
+
content: unknown;
|
|
172
|
+
}
|
|
173
|
+
interface ToolCallParams {
|
|
174
|
+
name: string;
|
|
175
|
+
arguments?: Record<string, unknown>;
|
|
176
|
+
}
|
|
177
|
+
interface ResourceContent {
|
|
178
|
+
blob?: string;
|
|
179
|
+
text?: string;
|
|
180
|
+
}
|
|
181
|
+
interface ResourceResponse {
|
|
182
|
+
contents: ResourceContent[];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Host for MCP Apps embedded in iframes.
|
|
186
|
+
* Manages secure communication between the app and the MCP server.
|
|
187
|
+
*/
|
|
188
|
+
declare class AppHost {
|
|
189
|
+
private readonly client;
|
|
190
|
+
private readonly iframe;
|
|
191
|
+
private bridge;
|
|
192
|
+
private sessionId?;
|
|
193
|
+
private resourceCache;
|
|
194
|
+
private debug;
|
|
195
|
+
private sandboxConfig?;
|
|
196
|
+
private options;
|
|
197
|
+
onAppMessage?: (params: AppMessageParams) => void;
|
|
198
|
+
constructor(client: AppHostClient | null, iframe: HTMLIFrameElement, options?: AppHostOptions);
|
|
199
|
+
/**
|
|
200
|
+
* Start the host. This prepares the bridge handlers but doesn't connect yet.
|
|
201
|
+
* The actual connection happens in launch() after HTML is loaded.
|
|
202
|
+
* @returns Promise that resolves immediately (bridge connects during launch)
|
|
203
|
+
*/
|
|
204
|
+
start(): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Preload UI resources to enable instant app loading.
|
|
207
|
+
* Call this when tools are discovered to cache their UI resources.
|
|
208
|
+
*/
|
|
209
|
+
preload(tools: Array<{
|
|
210
|
+
_meta?: unknown;
|
|
211
|
+
}>): void;
|
|
212
|
+
/**
|
|
213
|
+
* Launch an MCP App from a URL, MCP resource URI, or RAW HTML.
|
|
214
|
+
* Loads the HTML first, then establishes bridge connection.
|
|
215
|
+
*/
|
|
216
|
+
launch(source: {
|
|
217
|
+
uri?: string;
|
|
218
|
+
html?: string;
|
|
219
|
+
}, sessionId?: string): Promise<void>;
|
|
220
|
+
setHostContext(context: McpUiHostContext): void;
|
|
221
|
+
sendToolInputPartial(params: any): void;
|
|
222
|
+
/**
|
|
223
|
+
* Wait for app to signal initialization complete
|
|
224
|
+
*/
|
|
225
|
+
private onAppReady;
|
|
226
|
+
/**
|
|
227
|
+
* Wait for iframe to finish loading
|
|
228
|
+
*/
|
|
229
|
+
private onIframeReady;
|
|
230
|
+
/**
|
|
231
|
+
* Send tool input arguments to the MCP App.
|
|
232
|
+
* Call this after launch() when tool input is available.
|
|
233
|
+
*/
|
|
234
|
+
sendToolInput(args: Record<string, unknown>): void;
|
|
235
|
+
/**
|
|
236
|
+
* Send tool result to the MCP App.
|
|
237
|
+
* Call this when the tool call completes.
|
|
238
|
+
*/
|
|
239
|
+
sendToolResult(result: unknown): void;
|
|
240
|
+
/**
|
|
241
|
+
* Send tool cancellation to the MCP App.
|
|
242
|
+
* Call this when the tool call is cancelled or fails.
|
|
243
|
+
*/
|
|
244
|
+
sendToolCancelled(reason: string): void;
|
|
245
|
+
/**
|
|
246
|
+
* Tell the guest UI the resource is being torn down (unload / cleanup).
|
|
247
|
+
* Forwards to {@link AppBridge.teardownResource} on `@modelcontextprotocol/ext-apps/app-bridge`.
|
|
248
|
+
*/
|
|
249
|
+
teardownResource(params?: Record<string, unknown>): void;
|
|
250
|
+
private initializeBridge;
|
|
251
|
+
private connectBridge;
|
|
252
|
+
private handleToolCall;
|
|
253
|
+
private handleOpenLink;
|
|
254
|
+
private handleMessage;
|
|
255
|
+
private launchSandboxedHtml;
|
|
256
|
+
private readMcpAppHtml;
|
|
257
|
+
private fetchResourceWithCache;
|
|
258
|
+
private preloadResource;
|
|
259
|
+
private getSessionId;
|
|
260
|
+
private isMcpUri;
|
|
261
|
+
private hasClientCache;
|
|
262
|
+
private extractUiResourceUri;
|
|
263
|
+
private decodeContent;
|
|
264
|
+
private log;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Default configuration values for the App Host.
|
|
269
|
+
*
|
|
270
|
+
* `SANDBOX_*_READY_METHOD` match `@modelcontextprotocol/ext-apps` (see
|
|
271
|
+
* https://github.com/modelcontextprotocol/ext-apps/blob/main/src/types.ts ).
|
|
272
|
+
* Duplicated here because the package root `app.d.ts` often omits these value exports under
|
|
273
|
+
* `moduleResolution: "NodeNext"`.
|
|
274
|
+
*/
|
|
275
|
+
declare const SANDBOX_PROXY_READY_METHOD: "ui/notifications/sandbox-proxy-ready";
|
|
276
|
+
declare const SANDBOX_RESOURCE_READY_METHOD: "ui/notifications/sandbox-resource-ready";
|
|
277
|
+
declare const APP_HOST_DEFAULTS: {
|
|
278
|
+
/** Default timeout for waiting for the sandbox proxy to be ready (ms). */
|
|
279
|
+
readonly SANDBOX_TIMEOUT_MS: 10000;
|
|
280
|
+
/** Default host info reported to guest apps. */
|
|
281
|
+
readonly HOST_INFO: {
|
|
282
|
+
readonly name: "mcp-ts-host";
|
|
283
|
+
readonly version: "1.0.0";
|
|
284
|
+
};
|
|
285
|
+
/** Supported MCP App URI schemes. */
|
|
286
|
+
readonly URI_SCHEMES: readonly ["ui://", "mcp-app://"];
|
|
287
|
+
/** Default theme for the host context. */
|
|
288
|
+
readonly THEME: "dark";
|
|
289
|
+
/** Default platform for the host context. */
|
|
290
|
+
readonly PLATFORM: "web";
|
|
291
|
+
/** Default max height for the iframe container (px). */
|
|
292
|
+
readonly MAX_HEIGHT: 6000;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
export { APP_HOST_DEFAULTS as A, DEFAULT_MCP_APP_CSP as D, SANDBOX_PROXY_READY_METHOD as S, AppHost as a, SANDBOX_RESOURCE_READY_METHOD as b, SSEClient as c, type SSEClientOptions as d, type AppHostOptions as e, type AppHostClient as f };
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from './events-CK3N--3g.js';
|
|
2
|
+
import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from './types-CfCoIsWI.js';
|
|
3
|
+
import { AppBridge } from '@modelcontextprotocol/ext-apps/app-bridge';
|
|
4
|
+
import { LoggingMessageNotification } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Stateless RPC-over-stream client for MCP connections.
|
|
8
|
+
*
|
|
9
|
+
* Uses single POST requests with `Accept: text/event-stream` for every RPC call.
|
|
10
|
+
* Progress events and the final rpc-response are delivered in the same response.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
interface SSEClientOptions {
|
|
14
|
+
/** MCP endpoint URL */
|
|
15
|
+
url: string;
|
|
16
|
+
/** User/Client identifier */
|
|
17
|
+
identity: string;
|
|
18
|
+
/** Optional auth token for authenticated requests */
|
|
19
|
+
authToken?: string;
|
|
20
|
+
/** Callback for MCP connection state changes */
|
|
21
|
+
onConnectionEvent?: (event: McpConnectionEvent) => void;
|
|
22
|
+
/** Callback for observability/logging events */
|
|
23
|
+
onObservabilityEvent?: (event: McpObservabilityEvent) => void;
|
|
24
|
+
/** Callback for connection status changes */
|
|
25
|
+
onStatusChange?: (status: ConnectionStatus) => void;
|
|
26
|
+
/** Callback for MCP App UI events */
|
|
27
|
+
onEvent?: (event: McpAppsUIEvent) => void;
|
|
28
|
+
/** Enable debug logging @default false */
|
|
29
|
+
debug?: boolean;
|
|
30
|
+
}
|
|
31
|
+
type ConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
|
|
32
|
+
declare class SSEClient {
|
|
33
|
+
private readonly options;
|
|
34
|
+
private resourceCache;
|
|
35
|
+
private connected;
|
|
36
|
+
constructor(options: SSEClientOptions);
|
|
37
|
+
connect(): void;
|
|
38
|
+
disconnect(): void;
|
|
39
|
+
isConnected(): boolean;
|
|
40
|
+
getSessions(): Promise<SessionListResult>;
|
|
41
|
+
connectToServer(params: ConnectParams): Promise<ConnectResult>;
|
|
42
|
+
disconnectFromServer(sessionId: string): Promise<DisconnectResult>;
|
|
43
|
+
listTools(sessionId: string): Promise<ListToolsRpcResult>;
|
|
44
|
+
callTool(sessionId: string, toolName: string, toolArgs: Record<string, unknown>): Promise<unknown>;
|
|
45
|
+
restoreSession(sessionId: string): Promise<RestoreSessionResult>;
|
|
46
|
+
finishAuth(sessionId: string, code: string): Promise<FinishAuthResult>;
|
|
47
|
+
listPrompts(sessionId: string): Promise<ListPromptsResult>;
|
|
48
|
+
getPrompt(sessionId: string, name: string, args?: Record<string, string>): Promise<unknown>;
|
|
49
|
+
listResources(sessionId: string): Promise<ListResourcesResult>;
|
|
50
|
+
readResource(sessionId: string, uri: string): Promise<unknown>;
|
|
51
|
+
preloadToolUiResources(sessionId: string, tools: Array<{
|
|
52
|
+
name: string;
|
|
53
|
+
_meta?: unknown;
|
|
54
|
+
}>): void;
|
|
55
|
+
getOrFetchResource(sessionId: string, uri: string): Promise<unknown>;
|
|
56
|
+
hasPreloadedResource(uri: string): boolean;
|
|
57
|
+
clearResourceCache(): void;
|
|
58
|
+
private sendRequest;
|
|
59
|
+
private readRpcResponseFromStream;
|
|
60
|
+
private sleep;
|
|
61
|
+
private parseRpcResponse;
|
|
62
|
+
private buildUrl;
|
|
63
|
+
private buildHeaders;
|
|
64
|
+
private extractUiResourceUri;
|
|
65
|
+
private emitUiEventIfPresent;
|
|
66
|
+
private log;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Abstraction layer for the AppHost's network communication.
|
|
71
|
+
*
|
|
72
|
+
* This interface decouples the `AppHost` from the concrete networking implementation (like `SSEClient`).
|
|
73
|
+
* Implementation can be:
|
|
74
|
+
* 1. `SSEClient`: Direct connection to MCP Server (Browser -> Server).
|
|
75
|
+
* 2. `ProxyClient`: Connection via an intermediary API (Browser -> Next.js API -> Server).
|
|
76
|
+
*/
|
|
77
|
+
interface AppHostClient {
|
|
78
|
+
/**
|
|
79
|
+
* Check if the client is connected
|
|
80
|
+
*/
|
|
81
|
+
isConnected(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Get list of active sessions
|
|
84
|
+
*/
|
|
85
|
+
getSessions(): Promise<SessionListResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Call a tool on a specific session
|
|
88
|
+
*/
|
|
89
|
+
callTool(sessionId: string, toolName: string, toolArgs: Record<string, unknown>): Promise<unknown>;
|
|
90
|
+
/**
|
|
91
|
+
* Read a resource from a specific session
|
|
92
|
+
*/
|
|
93
|
+
readResource(sessionId: string, uri: string): Promise<unknown>;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* MCP App Host
|
|
98
|
+
*
|
|
99
|
+
* Bridges the gap between an iframe (MCP App) and the SSEClient (MCP Server).
|
|
100
|
+
* Handles secure iframe sandboxing, resource loading, and bi-directional
|
|
101
|
+
* communication via the AppBridge protocol.
|
|
102
|
+
*
|
|
103
|
+
* Key features:
|
|
104
|
+
* - Secure iframe sandboxing with minimal permissions (proxy-based)
|
|
105
|
+
* - Resource preloading for instant MCP App UI loading
|
|
106
|
+
* - Cache-aware resource fetching (SSEClient cache → local cache → direct fetch)
|
|
107
|
+
* - Support for ui:// and mcp-app:// resource URIs
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
type McpUiResourceCsp = Record<string, string>;
|
|
111
|
+
type McpUiHostContext = Record<string, unknown>;
|
|
112
|
+
type OnMessageHandler = NonNullable<AppBridge['onmessage']>;
|
|
113
|
+
type McpUiMessageParams = Parameters<OnMessageHandler>[0];
|
|
114
|
+
type RequestHandlerExtra = Parameters<OnMessageHandler>[1];
|
|
115
|
+
type McpUiMessageResult = ReturnType<OnMessageHandler> extends Promise<infer R> ? R : never;
|
|
116
|
+
type OnOpenLinkHandler = NonNullable<AppBridge['onopenlink']>;
|
|
117
|
+
type McpUiOpenLinkParams = Parameters<OnOpenLinkHandler>[0];
|
|
118
|
+
type McpUiOpenLinkResult = ReturnType<OnOpenLinkHandler> extends Promise<infer R> ? R : never;
|
|
119
|
+
type OnSizeChangeHandler = NonNullable<AppBridge['onsizechange']>;
|
|
120
|
+
type McpUiSizeChangedParams = Parameters<OnSizeChangeHandler>[0];
|
|
121
|
+
type OnRequestDisplayModeHandler = NonNullable<AppBridge['onrequestdisplaymode']>;
|
|
122
|
+
type McpUiRequestDisplayModeParams = Parameters<OnRequestDisplayModeHandler>[0];
|
|
123
|
+
type McpUiRequestDisplayModeResult = ReturnType<OnRequestDisplayModeHandler> extends Promise<infer R> ? R : never;
|
|
124
|
+
interface SandboxConfig {
|
|
125
|
+
url: URL | string;
|
|
126
|
+
permissions?: string;
|
|
127
|
+
csp?: McpUiResourceCsp;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Default Content-Security-Policy for MCP App iframes.
|
|
131
|
+
*
|
|
132
|
+
* Allows inline scripts/styles (required by most MCP App frameworks),
|
|
133
|
+
* outbound network connections, and common asset sources, while blocking
|
|
134
|
+
* nested frames and plugin objects.
|
|
135
|
+
*
|
|
136
|
+
* Pass this (or a spread of it) as `sandbox.csp` to enforce it:
|
|
137
|
+
* @example
|
|
138
|
+
* sandbox={{ url: '/sandbox.html', csp: DEFAULT_MCP_APP_CSP }}
|
|
139
|
+
* // or to extend:
|
|
140
|
+
* sandbox={{ url: '/sandbox.html', csp: { ...DEFAULT_MCP_APP_CSP, 'connect-src': "'self' https://api.example.com" } }}
|
|
141
|
+
*/
|
|
142
|
+
declare const DEFAULT_MCP_APP_CSP: McpUiResourceCsp;
|
|
143
|
+
interface AppHostOptions {
|
|
144
|
+
/** Enable debug logging @default false */
|
|
145
|
+
debug?: boolean;
|
|
146
|
+
/** Sandbox proxy configuration */
|
|
147
|
+
sandbox?: SandboxConfig;
|
|
148
|
+
/** Host context for theming, viewport, locale */
|
|
149
|
+
hostContext?: McpUiHostContext;
|
|
150
|
+
/** Custom handler for call tool requests, overriding automatic client forwarding */
|
|
151
|
+
onCallTool?: (params: ToolCallParams) => Promise<unknown>;
|
|
152
|
+
/** Custom handler for resources/read */
|
|
153
|
+
onReadResource?: (uri: string) => Promise<ResourceResponse>;
|
|
154
|
+
/** Custom handler for fallback JSON-RPC requests */
|
|
155
|
+
onFallbackRequest?: (request: any) => Promise<any>;
|
|
156
|
+
/** Handler for open-link requests from the guest UI */
|
|
157
|
+
onOpenLink?: (params: McpUiOpenLinkParams, extra: RequestHandlerExtra) => Promise<McpUiOpenLinkResult>;
|
|
158
|
+
/** Handler for message requests from the guest UI */
|
|
159
|
+
onMessage?: (params: McpUiMessageParams, extra: RequestHandlerExtra) => Promise<McpUiMessageResult>;
|
|
160
|
+
/** Handler for logging messages from the guest UI */
|
|
161
|
+
onLoggingMessage?: (params: LoggingMessageNotification['params']) => void;
|
|
162
|
+
/** Handler for size change notifications from the guest UI */
|
|
163
|
+
onSizeChanged?: (params: McpUiSizeChangedParams) => void;
|
|
164
|
+
/** Callback invoked when an error occurs during setup or message handling */
|
|
165
|
+
onError?: (error: Error) => void;
|
|
166
|
+
/** Handler for display mode change requests from the guest UI */
|
|
167
|
+
onRequestDisplayMode?: (params: McpUiRequestDisplayModeParams, extra: RequestHandlerExtra) => Promise<McpUiRequestDisplayModeResult>;
|
|
168
|
+
}
|
|
169
|
+
interface AppMessageParams {
|
|
170
|
+
role: string;
|
|
171
|
+
content: unknown;
|
|
172
|
+
}
|
|
173
|
+
interface ToolCallParams {
|
|
174
|
+
name: string;
|
|
175
|
+
arguments?: Record<string, unknown>;
|
|
176
|
+
}
|
|
177
|
+
interface ResourceContent {
|
|
178
|
+
blob?: string;
|
|
179
|
+
text?: string;
|
|
180
|
+
}
|
|
181
|
+
interface ResourceResponse {
|
|
182
|
+
contents: ResourceContent[];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Host for MCP Apps embedded in iframes.
|
|
186
|
+
* Manages secure communication between the app and the MCP server.
|
|
187
|
+
*/
|
|
188
|
+
declare class AppHost {
|
|
189
|
+
private readonly client;
|
|
190
|
+
private readonly iframe;
|
|
191
|
+
private bridge;
|
|
192
|
+
private sessionId?;
|
|
193
|
+
private resourceCache;
|
|
194
|
+
private debug;
|
|
195
|
+
private sandboxConfig?;
|
|
196
|
+
private options;
|
|
197
|
+
onAppMessage?: (params: AppMessageParams) => void;
|
|
198
|
+
constructor(client: AppHostClient | null, iframe: HTMLIFrameElement, options?: AppHostOptions);
|
|
199
|
+
/**
|
|
200
|
+
* Start the host. This prepares the bridge handlers but doesn't connect yet.
|
|
201
|
+
* The actual connection happens in launch() after HTML is loaded.
|
|
202
|
+
* @returns Promise that resolves immediately (bridge connects during launch)
|
|
203
|
+
*/
|
|
204
|
+
start(): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Preload UI resources to enable instant app loading.
|
|
207
|
+
* Call this when tools are discovered to cache their UI resources.
|
|
208
|
+
*/
|
|
209
|
+
preload(tools: Array<{
|
|
210
|
+
_meta?: unknown;
|
|
211
|
+
}>): void;
|
|
212
|
+
/**
|
|
213
|
+
* Launch an MCP App from a URL, MCP resource URI, or RAW HTML.
|
|
214
|
+
* Loads the HTML first, then establishes bridge connection.
|
|
215
|
+
*/
|
|
216
|
+
launch(source: {
|
|
217
|
+
uri?: string;
|
|
218
|
+
html?: string;
|
|
219
|
+
}, sessionId?: string): Promise<void>;
|
|
220
|
+
setHostContext(context: McpUiHostContext): void;
|
|
221
|
+
sendToolInputPartial(params: any): void;
|
|
222
|
+
/**
|
|
223
|
+
* Wait for app to signal initialization complete
|
|
224
|
+
*/
|
|
225
|
+
private onAppReady;
|
|
226
|
+
/**
|
|
227
|
+
* Wait for iframe to finish loading
|
|
228
|
+
*/
|
|
229
|
+
private onIframeReady;
|
|
230
|
+
/**
|
|
231
|
+
* Send tool input arguments to the MCP App.
|
|
232
|
+
* Call this after launch() when tool input is available.
|
|
233
|
+
*/
|
|
234
|
+
sendToolInput(args: Record<string, unknown>): void;
|
|
235
|
+
/**
|
|
236
|
+
* Send tool result to the MCP App.
|
|
237
|
+
* Call this when the tool call completes.
|
|
238
|
+
*/
|
|
239
|
+
sendToolResult(result: unknown): void;
|
|
240
|
+
/**
|
|
241
|
+
* Send tool cancellation to the MCP App.
|
|
242
|
+
* Call this when the tool call is cancelled or fails.
|
|
243
|
+
*/
|
|
244
|
+
sendToolCancelled(reason: string): void;
|
|
245
|
+
/**
|
|
246
|
+
* Tell the guest UI the resource is being torn down (unload / cleanup).
|
|
247
|
+
* Forwards to {@link AppBridge.teardownResource} on `@modelcontextprotocol/ext-apps/app-bridge`.
|
|
248
|
+
*/
|
|
249
|
+
teardownResource(params?: Record<string, unknown>): void;
|
|
250
|
+
private initializeBridge;
|
|
251
|
+
private connectBridge;
|
|
252
|
+
private handleToolCall;
|
|
253
|
+
private handleOpenLink;
|
|
254
|
+
private handleMessage;
|
|
255
|
+
private launchSandboxedHtml;
|
|
256
|
+
private readMcpAppHtml;
|
|
257
|
+
private fetchResourceWithCache;
|
|
258
|
+
private preloadResource;
|
|
259
|
+
private getSessionId;
|
|
260
|
+
private isMcpUri;
|
|
261
|
+
private hasClientCache;
|
|
262
|
+
private extractUiResourceUri;
|
|
263
|
+
private decodeContent;
|
|
264
|
+
private log;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Default configuration values for the App Host.
|
|
269
|
+
*
|
|
270
|
+
* `SANDBOX_*_READY_METHOD` match `@modelcontextprotocol/ext-apps` (see
|
|
271
|
+
* https://github.com/modelcontextprotocol/ext-apps/blob/main/src/types.ts ).
|
|
272
|
+
* Duplicated here because the package root `app.d.ts` often omits these value exports under
|
|
273
|
+
* `moduleResolution: "NodeNext"`.
|
|
274
|
+
*/
|
|
275
|
+
declare const SANDBOX_PROXY_READY_METHOD: "ui/notifications/sandbox-proxy-ready";
|
|
276
|
+
declare const SANDBOX_RESOURCE_READY_METHOD: "ui/notifications/sandbox-resource-ready";
|
|
277
|
+
declare const APP_HOST_DEFAULTS: {
|
|
278
|
+
/** Default timeout for waiting for the sandbox proxy to be ready (ms). */
|
|
279
|
+
readonly SANDBOX_TIMEOUT_MS: 10000;
|
|
280
|
+
/** Default host info reported to guest apps. */
|
|
281
|
+
readonly HOST_INFO: {
|
|
282
|
+
readonly name: "mcp-ts-host";
|
|
283
|
+
readonly version: "1.0.0";
|
|
284
|
+
};
|
|
285
|
+
/** Supported MCP App URI schemes. */
|
|
286
|
+
readonly URI_SCHEMES: readonly ["ui://", "mcp-app://"];
|
|
287
|
+
/** Default theme for the host context. */
|
|
288
|
+
readonly THEME: "dark";
|
|
289
|
+
/** Default platform for the host context. */
|
|
290
|
+
readonly PLATFORM: "web";
|
|
291
|
+
/** Default max height for the iframe container (px). */
|
|
292
|
+
readonly MAX_HEIGHT: 6000;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
export { APP_HOST_DEFAULTS as A, DEFAULT_MCP_APP_CSP as D, SANDBOX_PROXY_READY_METHOD as S, AppHost as a, SANDBOX_RESOURCE_READY_METHOD as b, SSEClient as c, type SSEClientOptions as d, type AppHostOptions as e, type AppHostClient as f };
|
package/dist/index.d.mts
CHANGED
|
@@ -2,9 +2,11 @@ export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvide
|
|
|
2
2
|
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-0qmYrqoa.mjs';
|
|
3
3
|
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, StorageBackend, createNextMcpHandler, createSSEHandler, storage } from './server/index.mjs';
|
|
4
4
|
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-CK3N--3g.mjs';
|
|
5
|
-
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as
|
|
5
|
+
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolClient, u as ToolClientProvider, v as ToolInfo, w as TransportType, x as isCallToolSuccess, y as isConnectAuthRequired, z as isConnectError, A as isConnectSuccess, B as isListToolsSuccess } from './types-CfCoIsWI.mjs';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
7
|
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
-
export { AppHost, SSEClient, SSEClientOptions } from './
|
|
9
|
-
export { DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS, ToolUiConfig, findToolByName, getToolUiResourceUri } from './shared/index.mjs';
|
|
8
|
+
export { A as APP_HOST_DEFAULTS, a as AppHost, D as DEFAULT_MCP_APP_CSP, S as SANDBOX_PROXY_READY_METHOD, b as SANDBOX_RESOURCE_READY_METHOD, c as SSEClient, d as SSEClientOptions } from './index-DcYfpY3H.mjs';
|
|
9
|
+
export { CallToolFn, DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS, ToolUiConfig, createExecuteToolDefinition, createGetSchemaToolDefinition, createRegexSearchToolDefinition, createSearchToolDefinition, executeMetaTool, findToolByName, getToolUiResourceUri, isMetaTool, resolveMetaToolProxy } from './shared/index.mjs';
|
|
10
|
+
export { C as CompactTool, a as CompressionStats, E as EmbedFn, I as IndexedTool, S as SchemaCompressor, T as ToolGroupInfo, b as ToolIndex, c as ToolIndexOptions, d as ToolRouter, e as ToolRouterClientInput, f as ToolRouterOptions, g as ToolRouterStrategy, h as ToolSummary } from './tool-router-XnWVxPzv.mjs';
|
|
10
11
|
import '@modelcontextprotocol/sdk/client/auth.js';
|
|
12
|
+
import '@modelcontextprotocol/ext-apps/app-bridge';
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,11 @@ export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvide
|
|
|
2
2
|
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-0qmYrqoa.js';
|
|
3
3
|
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, StorageBackend, createNextMcpHandler, createSSEHandler, storage } from './server/index.js';
|
|
4
4
|
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-CK3N--3g.js';
|
|
5
|
-
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as
|
|
5
|
+
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, L as ListPromptsResult, l as ListResourcesResult, m as ListToolsResponse, n as ListToolsRpcResult, M as McpRpcMethod, o as McpRpcParams, p as McpRpcRequest, q as McpRpcResponse, R as ReadResourceParams, r as RestoreSessionResult, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolClient, u as ToolClientProvider, v as ToolInfo, w as TransportType, x as isCallToolSuccess, y as isConnectAuthRequired, z as isConnectError, A as isConnectSuccess, B as isListToolsSuccess } from './types-CfCoIsWI.js';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
7
7
|
export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
-
export { AppHost, SSEClient, SSEClientOptions } from './
|
|
9
|
-
export { DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS, ToolUiConfig, findToolByName, getToolUiResourceUri } from './shared/index.js';
|
|
8
|
+
export { A as APP_HOST_DEFAULTS, a as AppHost, D as DEFAULT_MCP_APP_CSP, S as SANDBOX_PROXY_READY_METHOD, b as SANDBOX_RESOURCE_READY_METHOD, c as SSEClient, d as SSEClientOptions } from './index-GfC_eNEv.js';
|
|
9
|
+
export { CallToolFn, DEFAULT_CLIENT_NAME, DEFAULT_CLIENT_URI, DEFAULT_HEARTBEAT_INTERVAL_MS, DEFAULT_LOGO_URI, DEFAULT_POLICY_URI, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, REDIS_KEY_PREFIX, SESSION_TTL_SECONDS, SOFTWARE_ID, SOFTWARE_VERSION, STATE_EXPIRATION_MS, TOKEN_EXPIRY_BUFFER_MS, ToolUiConfig, createExecuteToolDefinition, createGetSchemaToolDefinition, createRegexSearchToolDefinition, createSearchToolDefinition, executeMetaTool, findToolByName, getToolUiResourceUri, isMetaTool, resolveMetaToolProxy } from './shared/index.js';
|
|
10
|
+
export { C as CompactTool, a as CompressionStats, E as EmbedFn, I as IndexedTool, S as SchemaCompressor, T as ToolGroupInfo, b as ToolIndex, c as ToolIndexOptions, d as ToolRouter, e as ToolRouterClientInput, f as ToolRouterOptions, g as ToolRouterStrategy, h as ToolSummary } from './tool-router-Bo8qZbsD.js';
|
|
10
11
|
import '@modelcontextprotocol/sdk/client/auth.js';
|
|
12
|
+
import '@modelcontextprotocol/ext-apps/app-bridge';
|