mcp-use 1.5.0-canary.4 → 1.5.0-canary.6

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.
Files changed (45) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{chunk-WERYJ6PF.js → chunk-2AOGMX4T.js} +1 -1
  3. package/dist/{chunk-DSBKVAWD.js → chunk-2JBWOW4S.js} +152 -0
  4. package/dist/{chunk-UT7O4SIJ.js → chunk-BWOTID2D.js} +209 -75
  5. package/dist/{chunk-GPAOZN2F.js → chunk-QRABML5H.js} +15 -3
  6. package/dist/index.cjs +395 -84
  7. package/dist/index.d.ts +4 -2
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +30 -10
  10. package/dist/src/agents/index.cjs +1 -0
  11. package/dist/src/agents/index.js +2 -2
  12. package/dist/src/browser.cjs +351 -72
  13. package/dist/src/browser.d.ts +2 -0
  14. package/dist/src/browser.d.ts.map +1 -1
  15. package/dist/src/browser.js +2 -2
  16. package/dist/src/client/browser.d.ts.map +1 -1
  17. package/dist/src/client/prompts.cjs +3 -0
  18. package/dist/src/client/prompts.js +2 -2
  19. package/dist/src/client.d.ts +8 -0
  20. package/dist/src/client.d.ts.map +1 -1
  21. package/dist/src/config.d.ts +2 -1
  22. package/dist/src/config.d.ts.map +1 -1
  23. package/dist/src/connectors/base.d.ts +79 -1
  24. package/dist/src/connectors/base.d.ts.map +1 -1
  25. package/dist/src/connectors/http.d.ts +1 -0
  26. package/dist/src/connectors/http.d.ts.map +1 -1
  27. package/dist/src/connectors/stdio.d.ts.map +1 -1
  28. package/dist/src/connectors/websocket.d.ts +6 -0
  29. package/dist/src/connectors/websocket.d.ts.map +1 -1
  30. package/dist/src/react/index.cjs +365 -73
  31. package/dist/src/react/index.js +3 -3
  32. package/dist/src/react/types.d.ts +9 -1
  33. package/dist/src/react/types.d.ts.map +1 -1
  34. package/dist/src/react/useMcp.d.ts.map +1 -1
  35. package/dist/src/server/adapters/mcp-ui-adapter.d.ts +1 -0
  36. package/dist/src/server/adapters/mcp-ui-adapter.d.ts.map +1 -1
  37. package/dist/src/server/index.cjs +432 -27
  38. package/dist/src/server/index.js +432 -27
  39. package/dist/src/server/mcp-server.d.ts +179 -2
  40. package/dist/src/server/mcp-server.d.ts.map +1 -1
  41. package/dist/src/server/types/common.d.ts +2 -0
  42. package/dist/src/server/types/common.d.ts.map +1 -1
  43. package/dist/src/session.d.ts +40 -1
  44. package/dist/src/session.d.ts.map +1 -1
  45. package/package.json +10 -4
@@ -1,3 +1,5 @@
1
+ import type { CreateMessageRequest, CreateMessageResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js";
1
3
  import { type Hono as HonoType } from "hono";
2
4
  import type { PromptDefinition, ResourceDefinition, ResourceTemplateDefinition, ServerConfig, ToolDefinition, UIResourceDefinition } from "./types/index.js";
3
5
  export declare class McpServer {
@@ -12,6 +14,9 @@ export declare class McpServer {
12
14
  private registeredTools;
13
15
  private registeredPrompts;
14
16
  private registeredResources;
17
+ private buildId?;
18
+ private sessions;
19
+ private idleCleanupInterval?;
15
20
  /**
16
21
  * Creates a new MCP server instance with Hono integration
17
22
  *
@@ -175,6 +180,43 @@ export declare class McpServer {
175
180
  * ```
176
181
  */
177
182
  prompt(promptDefinition: PromptDefinition): this;
183
+ /**
184
+ * Request LLM sampling from connected clients.
185
+ *
186
+ * This method allows server tools to request LLM completions from clients
187
+ * that support the sampling capability. The client will handle model selection,
188
+ * user approval (human-in-the-loop), and return the generated response.
189
+ *
190
+ * @param params - Sampling request parameters including messages, model preferences, etc.
191
+ * @param options - Optional request options (timeouts, cancellation, etc.)
192
+ * @returns Promise resolving to the generated message from the client's LLM
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * // In a tool callback
197
+ * server.tool({
198
+ * name: 'analyze-sentiment',
199
+ * description: 'Analyze sentiment using LLM',
200
+ * inputs: [{ name: 'text', type: 'string', required: true }],
201
+ * cb: async (params, ctx) => {
202
+ * const result = await ctx.sample({
203
+ * messages: [{
204
+ * role: 'user',
205
+ * content: { type: 'text', text: `Analyze sentiment: ${params.text}` }
206
+ * }],
207
+ * modelPreferences: {
208
+ * intelligencePriority: 0.8,
209
+ * speedPriority: 0.5
210
+ * }
211
+ * });
212
+ * return {
213
+ * content: [{ type: 'text', text: result.content.text }]
214
+ * };
215
+ * }
216
+ * })
217
+ * ```
218
+ */
219
+ createMessage(params: CreateMessageRequest["params"], options?: RequestOptions): Promise<CreateMessageResult>;
178
220
  /**
179
221
  * Register a UI widget as both a tool and a resource
180
222
  *
@@ -256,6 +298,16 @@ export declare class McpServer {
256
298
  * @returns UIResource object compatible with MCP-UI
257
299
  */
258
300
  private createWidgetUIResource;
301
+ /**
302
+ * Generate a widget URI with optional build ID for cache busting
303
+ *
304
+ * @private
305
+ * @param widgetName - Widget name/identifier
306
+ * @param extension - Optional file extension (e.g., '.html')
307
+ * @param suffix - Optional suffix (e.g., random ID for dynamic URIs)
308
+ * @returns Widget URI with build ID if available
309
+ */
310
+ private generateWidgetUri;
259
311
  /**
260
312
  * Build a complete URL for a widget including query parameters
261
313
  *
@@ -362,8 +414,7 @@ export declare class McpServer {
362
414
  *
363
415
  * Sets up the HTTP transport layer for the MCP server, creating endpoints for
364
416
  * Server-Sent Events (SSE) streaming, POST message handling, and DELETE session cleanup.
365
- * Each request gets its own transport instance to prevent state conflicts between
366
- * concurrent client connections.
417
+ * Transports are reused per session ID to maintain state across requests.
367
418
  *
368
419
  * This method is called automatically when the server starts listening and ensures
369
420
  * that MCP clients can communicate with the server over HTTP.
@@ -440,6 +491,132 @@ export declare class McpServer {
440
491
  getHandler(options?: {
441
492
  provider?: "supabase" | "cloudflare" | "deno-deploy";
442
493
  }): Promise<(req: Request) => Promise<Response>>;
494
+ /**
495
+ * Get array of active session IDs
496
+ *
497
+ * Returns an array of all currently active session IDs. This is useful for
498
+ * sending targeted notifications to specific clients or iterating over
499
+ * connected clients.
500
+ *
501
+ * Note: This only works in stateful mode. In stateless mode (edge environments),
502
+ * this will return an empty array.
503
+ *
504
+ * @returns Array of active session ID strings
505
+ *
506
+ * @example
507
+ * ```typescript
508
+ * const sessions = server.getActiveSessions();
509
+ * console.log(`${sessions.length} clients connected`);
510
+ *
511
+ * // Send notification to first connected client
512
+ * if (sessions.length > 0) {
513
+ * server.sendNotificationToSession(sessions[0], "custom/hello", { message: "Hi!" });
514
+ * }
515
+ * ```
516
+ */
517
+ getActiveSessions(): string[];
518
+ /**
519
+ * Send a notification to all connected clients
520
+ *
521
+ * Broadcasts a JSON-RPC notification to all active sessions. Notifications are
522
+ * one-way messages that do not expect a response from the client.
523
+ *
524
+ * Note: This only works in stateful mode with active sessions. If no sessions
525
+ * are connected, the notification is silently discarded (per MCP spec: "server MAY send").
526
+ *
527
+ * @param method - The notification method name (e.g., "custom/my-notification")
528
+ * @param params - Optional parameters to include in the notification
529
+ *
530
+ * @example
531
+ * ```typescript
532
+ * // Send a simple notification to all clients
533
+ * server.sendNotification("custom/server-status", {
534
+ * status: "ready",
535
+ * timestamp: new Date().toISOString()
536
+ * });
537
+ *
538
+ * // Notify all clients that resources have changed
539
+ * server.sendNotification("notifications/resources/list_changed");
540
+ * ```
541
+ */
542
+ sendNotification(method: string, params?: Record<string, unknown>): Promise<void>;
543
+ /**
544
+ * Send a notification to a specific client session
545
+ *
546
+ * Sends a JSON-RPC notification to a single client identified by their session ID.
547
+ * This allows sending customized notifications to individual clients.
548
+ *
549
+ * Note: This only works in stateful mode. If the session ID doesn't exist,
550
+ * the notification is silently discarded.
551
+ *
552
+ * @param sessionId - The target session ID (from getActiveSessions())
553
+ * @param method - The notification method name (e.g., "custom/my-notification")
554
+ * @param params - Optional parameters to include in the notification
555
+ * @returns true if the notification was sent, false if session not found
556
+ *
557
+ * @example
558
+ * ```typescript
559
+ * const sessions = server.getActiveSessions();
560
+ *
561
+ * // Send different messages to different clients
562
+ * sessions.forEach((sessionId, index) => {
563
+ * server.sendNotificationToSession(sessionId, "custom/welcome", {
564
+ * message: `Hello client #${index + 1}!`,
565
+ * clientNumber: index + 1
566
+ * });
567
+ * });
568
+ * ```
569
+ */
570
+ sendNotificationToSession(sessionId: string, method: string, params?: Record<string, unknown>): Promise<boolean>;
571
+ private onRootsChangedCallback?;
572
+ /**
573
+ * Register a callback for when a client's roots change
574
+ *
575
+ * When a client sends a `notifications/roots/list_changed` notification,
576
+ * the server will automatically request the updated roots list and call
577
+ * this callback with the new roots.
578
+ *
579
+ * @param callback - Function called with the updated roots array
580
+ *
581
+ * @example
582
+ * ```typescript
583
+ * server.onRootsChanged(async (roots) => {
584
+ * console.log("Client roots updated:", roots);
585
+ * roots.forEach(root => {
586
+ * console.log(` - ${root.name || "unnamed"}: ${root.uri}`);
587
+ * });
588
+ * });
589
+ * ```
590
+ */
591
+ onRootsChanged(callback: (roots: Array<{
592
+ uri: string;
593
+ name?: string;
594
+ }>) => void | Promise<void>): this;
595
+ /**
596
+ * Request the current roots list from a specific client session
597
+ *
598
+ * This sends a `roots/list` request to the client and returns
599
+ * the list of roots the client has configured.
600
+ *
601
+ * @param sessionId - The session ID of the client to query
602
+ * @returns Array of roots, or null if the session doesn't exist or request fails
603
+ *
604
+ * @example
605
+ * ```typescript
606
+ * const sessions = server.getActiveSessions();
607
+ * if (sessions.length > 0) {
608
+ * const roots = await server.listRoots(sessions[0]);
609
+ * if (roots) {
610
+ * console.log(`Client has ${roots.length} roots:`);
611
+ * roots.forEach(r => console.log(` - ${r.uri}`));
612
+ * }
613
+ * }
614
+ * ```
615
+ */
616
+ listRoots(sessionId: string): Promise<Array<{
617
+ uri: string;
618
+ name?: string;
619
+ }> | null>;
443
620
  /**
444
621
  * Mount MCP Inspector UI at /inspector
445
622
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface ServerConfig {
7
7
  description?: string;
8
8
  host?: string;
9
9
  baseUrl?: string;
10
+ allowedOrigins?: string[];
11
+ sessionIdleTimeoutMs?: number;
10
12
  }
11
13
  export interface InputDefinition {
12
14
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,4 +1,5 @@
1
- import type { BaseConnector } from "./connectors/base.js";
1
+ import type { Notification, Root } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { BaseConnector, NotificationHandler } from "./connectors/base.js";
2
3
  export declare class MCPSession {
3
4
  readonly connector: BaseConnector;
4
5
  private autoConnect;
@@ -7,5 +8,43 @@ export declare class MCPSession {
7
8
  disconnect(): Promise<void>;
8
9
  initialize(): Promise<void>;
9
10
  get isConnected(): boolean;
11
+ /**
12
+ * Register an event handler for session events
13
+ *
14
+ * @param event - The event type to listen for
15
+ * @param handler - The handler function to call when the event occurs
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * session.on("notification", async (notification) => {
20
+ * console.log(`Received: ${notification.method}`, notification.params);
21
+ *
22
+ * if (notification.method === "notifications/tools/list_changed") {
23
+ * // Refresh tools list
24
+ * }
25
+ * });
26
+ * ```
27
+ */
28
+ on(event: "notification", handler: NotificationHandler): void;
29
+ /**
30
+ * Set roots and notify the server.
31
+ * Roots represent directories or files that the client has access to.
32
+ *
33
+ * @param roots - Array of Root objects with `uri` (must start with "file://") and optional `name`
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * await session.setRoots([
38
+ * { uri: "file:///home/user/project", name: "My Project" },
39
+ * { uri: "file:///home/user/data" }
40
+ * ]);
41
+ * ```
42
+ */
43
+ setRoots(roots: Root[]): Promise<void>;
44
+ /**
45
+ * Get the current roots.
46
+ */
47
+ getRoots(): Root[];
10
48
  }
49
+ export type { Notification, Root };
11
50
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,UAAU;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,OAAO,CAAC,WAAW,CAAU;gBAEjB,SAAS,EAAE,aAAa,EAAE,WAAW,UAAO;IAKlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,UAAU;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,OAAO,CAAC,WAAW,CAAU;gBAEjB,SAAS,EAAE,aAAa,EAAE,WAAW,UAAO;IAKlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAM7D;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;CAGnB;AAGD,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mcp-use",
3
3
  "type": "module",
4
- "version": "1.5.0-canary.4",
4
+ "version": "1.5.0-canary.6",
5
5
  "description": "Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents and Clients + MCP Servers with support for MCP-UI.",
6
6
  "author": "mcp-use, Inc.",
7
7
  "license": "MIT",
@@ -115,8 +115,8 @@
115
115
  "ws": "^8.18.2",
116
116
  "zod": "^3.25.48",
117
117
  "zod-to-json-schema": "^3.24.6",
118
- "@mcp-use/cli": "2.3.0-canary.4",
119
- "@mcp-use/inspector": "0.7.0-canary.4"
118
+ "@mcp-use/cli": "2.3.0-canary.6",
119
+ "@mcp-use/inspector": "0.7.0-canary.6"
120
120
  },
121
121
  "optionalDependencies": {
122
122
  "@tailwindcss/vite": "^4.1.15",
@@ -193,6 +193,12 @@
193
193
  "example:structured": "tsx examples/client/structured_output.ts",
194
194
  "example:observability": "tsx examples/client/observability.ts",
195
195
  "example:code_mode": "tsx examples/client/code_mode_example.ts",
196
- "example:code_mode_e2b": "source .env 2>/dev/null || true && tsx examples/client/code_mode_e2b_example.ts"
196
+ "example:code_mode_e2b": "source .env 2>/dev/null || true && tsx examples/client/code_mode_e2b_example.ts",
197
+ "example:server:notification": "tsx examples/server/notification-example/src/server.ts",
198
+ "example:client:notification": "tsx examples/client/notification-client.ts",
199
+ "example:notifications": "lsof -ti:3000 | xargs kill -9 2>/dev/null; tsx examples/server/notification-example/src/server.ts & sleep 3 && tsx examples/client/notification-client.ts",
200
+ "example:server:sampling": "tsx examples/server/sampling/src/server.ts",
201
+ "example:client:sampling": "tsx examples/client/sampling-client.ts",
202
+ "example:sampling": "lsof -ti:3001 | xargs kill -9 2>/dev/null; tsx examples/server/sampling/src/server.ts & sleep 3 && tsx examples/client/sampling-client.ts"
197
203
  }
198
204
  }