mcp-use 1.5.0 → 1.5.1-canary.1
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/dist/.tsbuildinfo +1 -1
- package/dist/{chunk-WERYJ6PF.js → chunk-2AOGMX4T.js} +1 -1
- package/dist/{chunk-DSBKVAWD.js → chunk-2JBWOW4S.js} +152 -0
- package/dist/{chunk-UT7O4SIJ.js → chunk-BWOTID2D.js} +209 -75
- package/dist/{chunk-GPAOZN2F.js → chunk-QRABML5H.js} +15 -3
- package/dist/index.cjs +395 -84
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -10
- package/dist/src/agents/index.cjs +1 -0
- package/dist/src/agents/index.js +2 -2
- package/dist/src/browser.cjs +351 -72
- package/dist/src/browser.d.ts +2 -0
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +2 -2
- package/dist/src/client/browser.d.ts.map +1 -1
- package/dist/src/client/prompts.cjs +3 -0
- package/dist/src/client/prompts.js +2 -2
- package/dist/src/client.d.ts +8 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/config.d.ts +2 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/connectors/base.d.ts +79 -1
- package/dist/src/connectors/base.d.ts.map +1 -1
- package/dist/src/connectors/http.d.ts +1 -0
- package/dist/src/connectors/http.d.ts.map +1 -1
- package/dist/src/connectors/stdio.d.ts.map +1 -1
- package/dist/src/connectors/websocket.d.ts +6 -0
- package/dist/src/connectors/websocket.d.ts.map +1 -1
- package/dist/src/react/index.cjs +365 -73
- package/dist/src/react/index.d.ts +1 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/index.js +3 -3
- package/dist/src/react/types.d.ts +9 -1
- package/dist/src/react/types.d.ts.map +1 -1
- package/dist/src/react/useMcp.d.ts.map +1 -1
- package/dist/src/server/adapters/mcp-ui-adapter.d.ts +1 -0
- package/dist/src/server/adapters/mcp-ui-adapter.d.ts.map +1 -1
- package/dist/src/server/index.cjs +730 -192
- package/dist/src/server/index.js +730 -192
- package/dist/src/server/logging.d.ts +6 -0
- package/dist/src/server/logging.d.ts.map +1 -1
- package/dist/src/server/mcp-server.d.ts +201 -10
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/types/common.d.ts +59 -0
- package/dist/src/server/types/common.d.ts.map +1 -1
- package/dist/src/session.d.ts +40 -1
- package/dist/src/session.d.ts.map +1 -1
- package/package.json +10 -4
package/dist/src/react/index.cjs
CHANGED
|
@@ -51,7 +51,7 @@ var import_strict_url_sanitise2 = require("strict-url-sanitise");
|
|
|
51
51
|
|
|
52
52
|
// src/connectors/http.ts
|
|
53
53
|
var import_client = require("@modelcontextprotocol/sdk/client/index.js");
|
|
54
|
-
var
|
|
54
|
+
var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
55
55
|
|
|
56
56
|
// src/logging.ts
|
|
57
57
|
async function getNodeModules() {
|
|
@@ -487,71 +487,169 @@ var SseConnectionManager = class extends ConnectionManager {
|
|
|
487
487
|
}
|
|
488
488
|
};
|
|
489
489
|
|
|
490
|
-
// src/
|
|
491
|
-
var
|
|
492
|
-
var
|
|
490
|
+
// src/connectors/base.ts
|
|
491
|
+
var import_types = require("@modelcontextprotocol/sdk/types.js");
|
|
492
|
+
var BaseConnector = class {
|
|
493
493
|
static {
|
|
494
|
-
__name(this, "
|
|
494
|
+
__name(this, "BaseConnector");
|
|
495
495
|
}
|
|
496
|
-
|
|
496
|
+
client = null;
|
|
497
|
+
connectionManager = null;
|
|
498
|
+
toolsCache = null;
|
|
499
|
+
capabilitiesCache = null;
|
|
500
|
+
serverInfoCache = null;
|
|
501
|
+
connected = false;
|
|
497
502
|
opts;
|
|
498
|
-
|
|
503
|
+
notificationHandlers = [];
|
|
504
|
+
rootsCache = [];
|
|
505
|
+
constructor(opts = {}) {
|
|
506
|
+
this.opts = opts;
|
|
507
|
+
if (opts.roots) {
|
|
508
|
+
this.rootsCache = [...opts.roots];
|
|
509
|
+
}
|
|
510
|
+
}
|
|
499
511
|
/**
|
|
500
|
-
*
|
|
512
|
+
* Register a handler for server notifications
|
|
501
513
|
*
|
|
502
|
-
* @param
|
|
503
|
-
*
|
|
514
|
+
* @param handler - Function to call when a notification is received
|
|
515
|
+
*
|
|
516
|
+
* @example
|
|
517
|
+
* ```typescript
|
|
518
|
+
* connector.onNotification((notification) => {
|
|
519
|
+
* console.log(`Received: ${notification.method}`, notification.params);
|
|
520
|
+
* });
|
|
521
|
+
* ```
|
|
504
522
|
*/
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
this.
|
|
508
|
-
|
|
523
|
+
onNotification(handler) {
|
|
524
|
+
this.notificationHandlers.push(handler);
|
|
525
|
+
if (this.client) {
|
|
526
|
+
this.setupNotificationHandler();
|
|
527
|
+
}
|
|
509
528
|
}
|
|
510
529
|
/**
|
|
511
|
-
*
|
|
512
|
-
*
|
|
530
|
+
* Internal: wire notification handlers to the SDK client
|
|
531
|
+
* Includes automatic handling for list_changed notifications per MCP spec
|
|
513
532
|
*/
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
533
|
+
setupNotificationHandler() {
|
|
534
|
+
if (!this.client) return;
|
|
535
|
+
this.client.fallbackNotificationHandler = async (notification) => {
|
|
536
|
+
switch (notification.method) {
|
|
537
|
+
case "notifications/tools/list_changed":
|
|
538
|
+
await this.refreshToolsCache();
|
|
539
|
+
break;
|
|
540
|
+
case "notifications/resources/list_changed":
|
|
541
|
+
await this.onResourcesListChanged();
|
|
542
|
+
break;
|
|
543
|
+
case "notifications/prompts/list_changed":
|
|
544
|
+
await this.onPromptsListChanged();
|
|
545
|
+
break;
|
|
546
|
+
default:
|
|
547
|
+
break;
|
|
548
|
+
}
|
|
549
|
+
for (const handler of this.notificationHandlers) {
|
|
550
|
+
try {
|
|
551
|
+
await handler(notification);
|
|
552
|
+
} catch (err) {
|
|
553
|
+
logger.error("Error in notification handler:", err);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
};
|
|
518
557
|
}
|
|
519
558
|
/**
|
|
520
|
-
*
|
|
559
|
+
* Auto-refresh tools cache when server sends tools/list_changed notification
|
|
521
560
|
*/
|
|
522
|
-
async
|
|
523
|
-
if (this.
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
561
|
+
async refreshToolsCache() {
|
|
562
|
+
if (!this.client) return;
|
|
563
|
+
try {
|
|
564
|
+
logger.debug(
|
|
565
|
+
"[Auto] Refreshing tools cache due to list_changed notification"
|
|
566
|
+
);
|
|
567
|
+
const result = await this.client.listTools();
|
|
568
|
+
this.toolsCache = result.tools ?? [];
|
|
569
|
+
logger.debug(
|
|
570
|
+
`[Auto] Refreshed tools cache: ${this.toolsCache.length} tools`
|
|
571
|
+
);
|
|
572
|
+
} catch (err) {
|
|
573
|
+
logger.warn("[Auto] Failed to refresh tools cache:", err);
|
|
531
574
|
}
|
|
532
575
|
}
|
|
533
576
|
/**
|
|
534
|
-
*
|
|
577
|
+
* Called when server sends resources/list_changed notification
|
|
578
|
+
* Resources aren't cached by default, but we log for user awareness
|
|
535
579
|
*/
|
|
536
|
-
|
|
537
|
-
|
|
580
|
+
async onResourcesListChanged() {
|
|
581
|
+
logger.debug(
|
|
582
|
+
"[Auto] Resources list changed - clients should re-fetch if needed"
|
|
583
|
+
);
|
|
538
584
|
}
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
585
|
+
/**
|
|
586
|
+
* Called when server sends prompts/list_changed notification
|
|
587
|
+
* Prompts aren't cached by default, but we log for user awareness
|
|
588
|
+
*/
|
|
589
|
+
async onPromptsListChanged() {
|
|
590
|
+
logger.debug(
|
|
591
|
+
"[Auto] Prompts list changed - clients should re-fetch if needed"
|
|
592
|
+
);
|
|
545
593
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
594
|
+
/**
|
|
595
|
+
* Set roots and notify the server.
|
|
596
|
+
* Roots represent directories or files that the client has access to.
|
|
597
|
+
*
|
|
598
|
+
* @param roots - Array of Root objects with `uri` (must start with "file://") and optional `name`
|
|
599
|
+
*
|
|
600
|
+
* @example
|
|
601
|
+
* ```typescript
|
|
602
|
+
* await connector.setRoots([
|
|
603
|
+
* { uri: "file:///home/user/project", name: "My Project" },
|
|
604
|
+
* { uri: "file:///home/user/data" }
|
|
605
|
+
* ]);
|
|
606
|
+
* ```
|
|
607
|
+
*/
|
|
608
|
+
async setRoots(roots) {
|
|
609
|
+
this.rootsCache = [...roots];
|
|
610
|
+
if (this.client) {
|
|
611
|
+
logger.debug(
|
|
612
|
+
`Sending roots/list_changed notification with ${roots.length} root(s)`
|
|
613
|
+
);
|
|
614
|
+
await this.client.sendRootsListChanged();
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
/**
|
|
618
|
+
* Get the current roots.
|
|
619
|
+
*/
|
|
620
|
+
getRoots() {
|
|
621
|
+
return [...this.rootsCache];
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Internal: set up roots/list request handler.
|
|
625
|
+
* This is called after the client connects to register the handler for server requests.
|
|
626
|
+
*/
|
|
627
|
+
setupRootsHandler() {
|
|
628
|
+
if (!this.client) return;
|
|
629
|
+
this.client.setRequestHandler(
|
|
630
|
+
import_types.ListRootsRequestSchema,
|
|
631
|
+
async (_request, _extra) => {
|
|
632
|
+
logger.debug(
|
|
633
|
+
`Server requested roots list, returning ${this.rootsCache.length} root(s)`
|
|
634
|
+
);
|
|
635
|
+
return { roots: this.rootsCache };
|
|
636
|
+
}
|
|
637
|
+
);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Internal: set up sampling/createMessage request handler.
|
|
641
|
+
* This is called after the client connects to register the handler for sampling requests.
|
|
642
|
+
*/
|
|
643
|
+
setupSamplingHandler() {
|
|
644
|
+
if (!this.client) return;
|
|
645
|
+
if (!this.opts.samplingCallback) return;
|
|
646
|
+
this.client.setRequestHandler(
|
|
647
|
+
import_types.CreateMessageRequestSchema,
|
|
648
|
+
async (request, _extra) => {
|
|
649
|
+
logger.debug("Server requested sampling, forwarding to callback");
|
|
650
|
+
return await this.opts.samplingCallback(request.params);
|
|
651
|
+
}
|
|
652
|
+
);
|
|
555
653
|
}
|
|
556
654
|
/** Disconnect and release resources. */
|
|
557
655
|
async disconnect() {
|
|
@@ -803,6 +901,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
803
901
|
clientInfo;
|
|
804
902
|
preferSse;
|
|
805
903
|
transportType = null;
|
|
904
|
+
streamableTransport = null;
|
|
806
905
|
constructor(baseUrl, opts = {}) {
|
|
807
906
|
super(opts);
|
|
808
907
|
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
@@ -838,7 +937,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
838
937
|
} catch (err) {
|
|
839
938
|
let fallbackReason = "Unknown error";
|
|
840
939
|
let is401Error = false;
|
|
841
|
-
if (err instanceof
|
|
940
|
+
if (err instanceof import_streamableHttp.StreamableHTTPError) {
|
|
842
941
|
is401Error = err.code === 401;
|
|
843
942
|
if (err.code === 400 && err.message.includes("Missing session ID")) {
|
|
844
943
|
fallbackReason = "Server requires session ID (FastMCP compatibility) - using SSE transport";
|
|
@@ -894,34 +993,67 @@ var HttpConnector = class extends BaseConnector {
|
|
|
894
993
|
}
|
|
895
994
|
async connectWithStreamableHttp(baseUrl) {
|
|
896
995
|
try {
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
996
|
+
const streamableTransport = new import_streamableHttp.StreamableHTTPClientTransport(
|
|
997
|
+
new URL(baseUrl),
|
|
998
|
+
{
|
|
999
|
+
authProvider: this.opts.authProvider,
|
|
1000
|
+
// ← Pass OAuth provider to SDK
|
|
1001
|
+
requestInit: {
|
|
1002
|
+
headers: this.headers
|
|
1003
|
+
},
|
|
1004
|
+
// Pass through reconnection options
|
|
1005
|
+
reconnectionOptions: {
|
|
1006
|
+
maxReconnectionDelay: 3e4,
|
|
1007
|
+
initialReconnectionDelay: 1e3,
|
|
1008
|
+
reconnectionDelayGrowFactor: 1.5,
|
|
1009
|
+
maxRetries: 2
|
|
1010
|
+
}
|
|
1011
|
+
// Don't pass sessionId - let the SDK generate it automatically during connect()
|
|
909
1012
|
}
|
|
910
|
-
|
|
911
|
-
let transport =
|
|
1013
|
+
);
|
|
1014
|
+
let transport = streamableTransport;
|
|
912
1015
|
if (this.opts.wrapTransport) {
|
|
913
1016
|
const serverId = this.baseUrl;
|
|
914
|
-
transport = this.opts.wrapTransport(
|
|
1017
|
+
transport = this.opts.wrapTransport(
|
|
1018
|
+
transport,
|
|
1019
|
+
serverId
|
|
1020
|
+
);
|
|
915
1021
|
}
|
|
916
|
-
|
|
1022
|
+
const clientOptions = {
|
|
1023
|
+
...this.opts.clientOptions || {},
|
|
1024
|
+
capabilities: {
|
|
1025
|
+
...this.opts.clientOptions?.capabilities || {},
|
|
1026
|
+
roots: { listChanged: true },
|
|
1027
|
+
// Always advertise roots capability
|
|
1028
|
+
// Add sampling capability if callback is provided
|
|
1029
|
+
...this.opts.samplingCallback ? { sampling: {} } : {}
|
|
1030
|
+
}
|
|
1031
|
+
};
|
|
1032
|
+
logger.debug(
|
|
1033
|
+
`Creating Client with capabilities:`,
|
|
1034
|
+
JSON.stringify(clientOptions.capabilities, null, 2)
|
|
1035
|
+
);
|
|
1036
|
+
this.client = new import_client.Client(this.clientInfo, clientOptions);
|
|
1037
|
+
this.setupRootsHandler();
|
|
1038
|
+
logger.debug("Roots handler registered before connect");
|
|
917
1039
|
try {
|
|
918
|
-
await this.client.connect(transport
|
|
1040
|
+
await this.client.connect(transport, {
|
|
1041
|
+
timeout: Math.min(this.timeout, 3e3)
|
|
1042
|
+
});
|
|
1043
|
+
const sessionId = streamableTransport.sessionId;
|
|
1044
|
+
if (sessionId) {
|
|
1045
|
+
logger.debug(`Session ID obtained: ${sessionId}`);
|
|
1046
|
+
} else {
|
|
1047
|
+
logger.warn(
|
|
1048
|
+
"Session ID not available after connect - this may cause issues with SSE stream"
|
|
1049
|
+
);
|
|
1050
|
+
}
|
|
919
1051
|
} catch (connectErr) {
|
|
920
1052
|
if (connectErr instanceof Error) {
|
|
921
1053
|
const errMsg = connectErr.message || connectErr.toString();
|
|
922
|
-
if (errMsg.includes("Missing session ID") || errMsg.includes("Bad Request: Missing session ID")) {
|
|
1054
|
+
if (errMsg.includes("Missing session ID") || errMsg.includes("Bad Request: Missing session ID") || errMsg.includes("Mcp-Session-Id header is required")) {
|
|
923
1055
|
const wrappedError = new Error(
|
|
924
|
-
`
|
|
1056
|
+
`Session ID error: ${errMsg}. The SDK should automatically extract session ID from initialize response.`
|
|
925
1057
|
);
|
|
926
1058
|
wrappedError.cause = connectErr;
|
|
927
1059
|
throw wrappedError;
|
|
@@ -929,8 +1061,24 @@ var HttpConnector = class extends BaseConnector {
|
|
|
929
1061
|
}
|
|
930
1062
|
throw connectErr;
|
|
931
1063
|
}
|
|
1064
|
+
this.streamableTransport = streamableTransport;
|
|
1065
|
+
this.connectionManager = {
|
|
1066
|
+
stop: /* @__PURE__ */ __name(async () => {
|
|
1067
|
+
if (this.streamableTransport) {
|
|
1068
|
+
try {
|
|
1069
|
+
await this.streamableTransport.close();
|
|
1070
|
+
} catch (e) {
|
|
1071
|
+
logger.warn(`Error closing Streamable HTTP transport: ${e}`);
|
|
1072
|
+
} finally {
|
|
1073
|
+
this.streamableTransport = null;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
}, "stop")
|
|
1077
|
+
};
|
|
932
1078
|
this.connected = true;
|
|
933
1079
|
this.transportType = "streamable-http";
|
|
1080
|
+
this.setupNotificationHandler();
|
|
1081
|
+
this.setupSamplingHandler();
|
|
934
1082
|
logger.debug(
|
|
935
1083
|
`Successfully connected to MCP implementation via streamable HTTP: ${baseUrl}`
|
|
936
1084
|
);
|
|
@@ -951,10 +1099,28 @@ var HttpConnector = class extends BaseConnector {
|
|
|
951
1099
|
const serverId = this.baseUrl;
|
|
952
1100
|
transport = this.opts.wrapTransport(transport, serverId);
|
|
953
1101
|
}
|
|
954
|
-
|
|
1102
|
+
const clientOptions = {
|
|
1103
|
+
...this.opts.clientOptions || {},
|
|
1104
|
+
capabilities: {
|
|
1105
|
+
...this.opts.clientOptions?.capabilities || {},
|
|
1106
|
+
roots: { listChanged: true },
|
|
1107
|
+
// Always advertise roots capability
|
|
1108
|
+
// Add sampling capability if callback is provided
|
|
1109
|
+
...this.opts.samplingCallback ? { sampling: {} } : {}
|
|
1110
|
+
}
|
|
1111
|
+
};
|
|
1112
|
+
logger.debug(
|
|
1113
|
+
`Creating Client with capabilities (SSE):`,
|
|
1114
|
+
JSON.stringify(clientOptions.capabilities, null, 2)
|
|
1115
|
+
);
|
|
1116
|
+
this.client = new import_client.Client(this.clientInfo, clientOptions);
|
|
1117
|
+
this.setupRootsHandler();
|
|
1118
|
+
logger.debug("Roots handler registered before connect (SSE)");
|
|
955
1119
|
await this.client.connect(transport);
|
|
956
1120
|
this.connected = true;
|
|
957
1121
|
this.transportType = "sse";
|
|
1122
|
+
this.setupNotificationHandler();
|
|
1123
|
+
this.setupSamplingHandler();
|
|
958
1124
|
logger.debug(
|
|
959
1125
|
`Successfully connected to MCP implementation via HTTP/SSE: ${baseUrl}`
|
|
960
1126
|
);
|
|
@@ -1128,6 +1294,9 @@ var WebSocketConnector = class extends BaseConnector {
|
|
|
1128
1294
|
this.pending.delete(id);
|
|
1129
1295
|
if ("result" in data) resolve(data.result);
|
|
1130
1296
|
else if ("error" in data) reject(data.error);
|
|
1297
|
+
} else if (data.method && !data.id) {
|
|
1298
|
+
logger.debug("Received notification", data.method, data.params);
|
|
1299
|
+
this.handleNotification(data);
|
|
1131
1300
|
} else {
|
|
1132
1301
|
logger.debug("Received unsolicited message", data);
|
|
1133
1302
|
}
|
|
@@ -1158,6 +1327,49 @@ var WebSocketConnector = class extends BaseConnector {
|
|
|
1158
1327
|
for (const { reject } of this.pending.values()) reject(err);
|
|
1159
1328
|
this.pending.clear();
|
|
1160
1329
|
}
|
|
1330
|
+
async handleNotification(data) {
|
|
1331
|
+
switch (data.method) {
|
|
1332
|
+
case "notifications/tools/list_changed":
|
|
1333
|
+
await this.refreshToolsCache();
|
|
1334
|
+
break;
|
|
1335
|
+
case "notifications/resources/list_changed":
|
|
1336
|
+
await this.onResourcesListChanged();
|
|
1337
|
+
break;
|
|
1338
|
+
case "notifications/prompts/list_changed":
|
|
1339
|
+
await this.onPromptsListChanged();
|
|
1340
|
+
break;
|
|
1341
|
+
default:
|
|
1342
|
+
break;
|
|
1343
|
+
}
|
|
1344
|
+
for (const handler of this.notificationHandlers) {
|
|
1345
|
+
try {
|
|
1346
|
+
await handler({
|
|
1347
|
+
method: data.method,
|
|
1348
|
+
params: data.params
|
|
1349
|
+
});
|
|
1350
|
+
} catch (err) {
|
|
1351
|
+
logger.error("Error in notification handler:", err);
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
/**
|
|
1356
|
+
* Auto-refresh tools cache when server sends tools/list_changed notification
|
|
1357
|
+
* Override to use WebSocket-specific listTools method
|
|
1358
|
+
*/
|
|
1359
|
+
async refreshToolsCache() {
|
|
1360
|
+
try {
|
|
1361
|
+
logger.debug(
|
|
1362
|
+
"[Auto] Refreshing tools cache due to list_changed notification"
|
|
1363
|
+
);
|
|
1364
|
+
const tools = await this.listTools();
|
|
1365
|
+
this.toolsCache = tools.map((t) => t);
|
|
1366
|
+
logger.debug(
|
|
1367
|
+
`[Auto] Refreshed tools cache: ${this.toolsCache.length} tools`
|
|
1368
|
+
);
|
|
1369
|
+
} catch (err) {
|
|
1370
|
+
logger.warn("[Auto] Failed to refresh tools cache:", err);
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1161
1373
|
async initialize() {
|
|
1162
1374
|
logger.debug("Initializing MCP session over WebSocket");
|
|
1163
1375
|
const result = await this.sendRequest("initialize");
|
|
@@ -1234,6 +1446,51 @@ var MCPSession = class {
|
|
|
1234
1446
|
get isConnected() {
|
|
1235
1447
|
return this.connector && this.connector.isClientConnected;
|
|
1236
1448
|
}
|
|
1449
|
+
/**
|
|
1450
|
+
* Register an event handler for session events
|
|
1451
|
+
*
|
|
1452
|
+
* @param event - The event type to listen for
|
|
1453
|
+
* @param handler - The handler function to call when the event occurs
|
|
1454
|
+
*
|
|
1455
|
+
* @example
|
|
1456
|
+
* ```typescript
|
|
1457
|
+
* session.on("notification", async (notification) => {
|
|
1458
|
+
* console.log(`Received: ${notification.method}`, notification.params);
|
|
1459
|
+
*
|
|
1460
|
+
* if (notification.method === "notifications/tools/list_changed") {
|
|
1461
|
+
* // Refresh tools list
|
|
1462
|
+
* }
|
|
1463
|
+
* });
|
|
1464
|
+
* ```
|
|
1465
|
+
*/
|
|
1466
|
+
on(event, handler) {
|
|
1467
|
+
if (event === "notification") {
|
|
1468
|
+
this.connector.onNotification(handler);
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
/**
|
|
1472
|
+
* Set roots and notify the server.
|
|
1473
|
+
* Roots represent directories or files that the client has access to.
|
|
1474
|
+
*
|
|
1475
|
+
* @param roots - Array of Root objects with `uri` (must start with "file://") and optional `name`
|
|
1476
|
+
*
|
|
1477
|
+
* @example
|
|
1478
|
+
* ```typescript
|
|
1479
|
+
* await session.setRoots([
|
|
1480
|
+
* { uri: "file:///home/user/project", name: "My Project" },
|
|
1481
|
+
* { uri: "file:///home/user/data" }
|
|
1482
|
+
* ]);
|
|
1483
|
+
* ```
|
|
1484
|
+
*/
|
|
1485
|
+
async setRoots(roots) {
|
|
1486
|
+
return this.connector.setRoots(roots);
|
|
1487
|
+
}
|
|
1488
|
+
/**
|
|
1489
|
+
* Get the current roots.
|
|
1490
|
+
*/
|
|
1491
|
+
getRoots() {
|
|
1492
|
+
return this.connector.getRoots();
|
|
1493
|
+
}
|
|
1237
1494
|
};
|
|
1238
1495
|
|
|
1239
1496
|
// src/client/base.ts
|
|
@@ -1369,7 +1626,16 @@ var BrowserMCPClient = class _BrowserMCPClient extends BaseMCPClient {
|
|
|
1369
1626
|
* Supports HTTP and WebSocket connectors only
|
|
1370
1627
|
*/
|
|
1371
1628
|
createConnectorFromConfig(serverConfig) {
|
|
1372
|
-
const {
|
|
1629
|
+
const {
|
|
1630
|
+
url,
|
|
1631
|
+
transport,
|
|
1632
|
+
headers,
|
|
1633
|
+
authToken,
|
|
1634
|
+
authProvider,
|
|
1635
|
+
wrapTransport,
|
|
1636
|
+
clientOptions,
|
|
1637
|
+
samplingCallback
|
|
1638
|
+
} = serverConfig;
|
|
1373
1639
|
if (!url) {
|
|
1374
1640
|
throw new Error("Server URL is required");
|
|
1375
1641
|
}
|
|
@@ -1378,9 +1644,23 @@ var BrowserMCPClient = class _BrowserMCPClient extends BaseMCPClient {
|
|
|
1378
1644
|
authToken,
|
|
1379
1645
|
authProvider,
|
|
1380
1646
|
// ← Pass OAuth provider to connector
|
|
1381
|
-
wrapTransport
|
|
1647
|
+
wrapTransport,
|
|
1382
1648
|
// ← Pass transport wrapper if provided
|
|
1649
|
+
clientOptions,
|
|
1650
|
+
// ← Pass client options (capabilities, etc.) to connector
|
|
1651
|
+
samplingCallback
|
|
1652
|
+
// ← Pass sampling callback to connector
|
|
1383
1653
|
};
|
|
1654
|
+
if (clientOptions) {
|
|
1655
|
+
console.log(
|
|
1656
|
+
"[BrowserMCPClient] Passing clientOptions to connector:",
|
|
1657
|
+
JSON.stringify(clientOptions, null, 2)
|
|
1658
|
+
);
|
|
1659
|
+
} else {
|
|
1660
|
+
console.warn(
|
|
1661
|
+
"[BrowserMCPClient] No clientOptions provided to connector!"
|
|
1662
|
+
);
|
|
1663
|
+
}
|
|
1384
1664
|
if (transport === "websocket" || url.startsWith("ws://") || url.startsWith("wss://")) {
|
|
1385
1665
|
return new WebSocketConnector(url, connectorOptions);
|
|
1386
1666
|
} else if (transport === "http" || url.startsWith("http://") || url.startsWith("https://")) {
|
|
@@ -1640,7 +1920,9 @@ function useMcp(options) {
|
|
|
1640
1920
|
// 30 seconds default for connection timeout
|
|
1641
1921
|
sseReadTimeout = 3e5,
|
|
1642
1922
|
// 5 minutes default for SSE read timeout
|
|
1643
|
-
wrapTransport
|
|
1923
|
+
wrapTransport,
|
|
1924
|
+
onNotification,
|
|
1925
|
+
samplingCallback
|
|
1644
1926
|
} = options;
|
|
1645
1927
|
const [state, setState] = (0, import_react.useState)("discovering");
|
|
1646
1928
|
const [tools, setTools] = (0, import_react.useState)([]);
|
|
@@ -1793,6 +2075,10 @@ function useMcp(options) {
|
|
|
1793
2075
|
...serverConfig,
|
|
1794
2076
|
authProvider: authProviderRef.current,
|
|
1795
2077
|
// ← SDK handles OAuth automatically!
|
|
2078
|
+
clientOptions: clientConfig,
|
|
2079
|
+
// ← Pass client config to connector
|
|
2080
|
+
samplingCallback,
|
|
2081
|
+
// ← Pass sampling callback to connector
|
|
1796
2082
|
wrapTransport: wrapTransport ? (transport) => {
|
|
1797
2083
|
console.log(
|
|
1798
2084
|
"[useMcp] Applying transport wrapper for server:",
|
|
@@ -1803,7 +2089,13 @@ function useMcp(options) {
|
|
|
1803
2089
|
return wrapTransport(transport, url);
|
|
1804
2090
|
} : void 0
|
|
1805
2091
|
});
|
|
1806
|
-
const session = await clientRef.current.createSession(
|
|
2092
|
+
const session = await clientRef.current.createSession(
|
|
2093
|
+
serverName,
|
|
2094
|
+
false
|
|
2095
|
+
);
|
|
2096
|
+
if (onNotification) {
|
|
2097
|
+
session.on("notification", onNotification);
|
|
2098
|
+
}
|
|
1807
2099
|
await session.initialize();
|
|
1808
2100
|
addLog("info", "\u2705 Successfully connected to MCP server");
|
|
1809
2101
|
addLog("info", "Server info:", session.connector.serverInfo);
|
|
@@ -13,4 +13,5 @@ export { useWidget, useWidgetProps, useWidgetState, useWidgetTheme, } from "./us
|
|
|
13
13
|
export type { API, CallToolResponse, DeviceType, DisplayMode, OpenAiGlobals, SafeArea, SafeAreaInsets, Theme, UnknownObject, UserAgent, UseWidgetResult, } from "./widget-types.js";
|
|
14
14
|
export { WidgetControls } from "./WidgetControls.js";
|
|
15
15
|
export { McpUseProvider } from "./McpUseProvider.js";
|
|
16
|
+
export type { WidgetMetadata } from "../server/types/widget.js";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,YAAY,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,IAAI,GACL,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,GAAG,EACH,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,cAAc,EACd,KAAK,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,YAAY,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,IAAI,GACL,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,GAAG,EACH,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,cAAc,EACd,KAAK,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/src/react/index.js
CHANGED
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
useWidgetProps,
|
|
10
10
|
useWidgetState,
|
|
11
11
|
useWidgetTheme
|
|
12
|
-
} from "../../chunk-
|
|
12
|
+
} from "../../chunk-QRABML5H.js";
|
|
13
13
|
import {
|
|
14
14
|
onMcpAuthorization
|
|
15
|
-
} from "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
15
|
+
} from "../../chunk-BWOTID2D.js";
|
|
16
|
+
import "../../chunk-2JBWOW4S.js";
|
|
17
17
|
import "../../chunk-34R6SIER.js";
|
|
18
18
|
import "../../chunk-3GQAWCBQ.js";
|
|
19
19
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Prompt, Resource, ResourceTemplate, Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
1
|
+
import type { CreateMessageRequest, CreateMessageResult, Notification, Prompt, Resource, ResourceTemplate, Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
import type { BrowserMCPClient } from "../client/browser.js";
|
|
3
3
|
export type UseMcpOptions = {
|
|
4
4
|
/** The /sse URL of your remote MCP server */
|
|
@@ -44,6 +44,14 @@ export type UseMcpOptions = {
|
|
|
44
44
|
sseReadTimeout?: number;
|
|
45
45
|
/** Optional callback to wrap the transport before passing it to the Client. Useful for logging, monitoring, or other transport-level interceptors. */
|
|
46
46
|
wrapTransport?: (transport: any, serverId: string) => any;
|
|
47
|
+
/** Callback function that is invoked when a notification is received from the MCP server */
|
|
48
|
+
onNotification?: (notification: Notification) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Optional callback function to handle sampling requests from servers.
|
|
51
|
+
* When provided, the client will declare sampling capability and handle
|
|
52
|
+
* `sampling/createMessage` requests by calling this callback.
|
|
53
|
+
*/
|
|
54
|
+
samplingCallback?: (params: CreateMessageRequest["params"]) => Promise<CreateMessageResult>;
|
|
47
55
|
};
|
|
48
56
|
export type UseMcpResult = {
|
|
49
57
|
/** List of tools available from the connected MCP server */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,IAAI,EACL,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6HAA6H;IAC7H,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACxC,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,KAC7B,IAAI,CAAC;IACV,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sJAAsJ;IACtJ,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMcp.d.ts","sourceRoot":"","sources":["../../../src/react/useMcp.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"useMcp.d.ts","sourceRoot":"","sources":["../../../src/react/useMcp.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CA22B3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui-adapter.d.ts","sourceRoot":"","sources":["../../../../src/server/adapters/mcp-ui-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-ui-adapter.d.ts","sourceRoot":"","sources":["../../../../src/server/adapters/mcp-ui-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACtC,MAAM,EAAE,SAAS,GAChB,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,UAAmB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,iBAAiB,CAQnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,UAAmB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,iBAAiB,CAQnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,GAAG,eAAyB,EAC9C,QAAQ,GAAE,UAAmB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,QAAQ,CAAC,EAAE,eAAe,GACzB,iBAAiB,CAQnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,eAAe,GACzB,iBAAiB,CAkBnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,oBAAoB,EAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,SAAS,GAChB,iBAAiB,CAyDnB"}
|