mcp-use 1.2.2-canary.0 → 1.2.2-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.
Files changed (152) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{chunk-VPPILX7B.js → chunk-3RJENWH4.js} +15 -6
  3. package/dist/{chunk-UVUM35MV.js → chunk-7UX634PO.js} +307 -112
  4. package/dist/{chunk-CPV4QNHD.js → chunk-KLIBVJ3Z.js} +145 -79
  5. package/dist/{chunk-EYAIJPBH.js → chunk-MZLETWQQ.js} +55 -17
  6. package/dist/{chunk-C3SRZK7H.js → chunk-RSGKBEHH.js} +144 -72
  7. package/dist/index.cjs +719 -300
  8. package/dist/index.d.ts +24 -24
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +86 -28
  11. package/dist/{langfuse-MO3AMDBE.js → langfuse-LCJ6VJEP.js} +2 -2
  12. package/dist/src/adapters/base.d.ts +2 -2
  13. package/dist/src/adapters/base.d.ts.map +1 -1
  14. package/dist/src/adapters/index.d.ts +2 -2
  15. package/dist/src/adapters/index.d.ts.map +1 -1
  16. package/dist/src/adapters/langchain_adapter.d.ts +4 -4
  17. package/dist/src/adapters/langchain_adapter.d.ts.map +1 -1
  18. package/dist/src/agents/base.d.ts +1 -1
  19. package/dist/src/agents/base.d.ts.map +1 -1
  20. package/dist/src/agents/index.d.ts +3 -3
  21. package/dist/src/agents/index.d.ts.map +1 -1
  22. package/dist/src/agents/mcp_agent.d.ts +12 -12
  23. package/dist/src/agents/mcp_agent.d.ts.map +1 -1
  24. package/dist/src/agents/prompts/system_prompt_builder.d.ts +2 -2
  25. package/dist/src/agents/prompts/system_prompt_builder.d.ts.map +1 -1
  26. package/dist/src/agents/prompts/templates.d.ts.map +1 -1
  27. package/dist/src/agents/remote.d.ts +2 -2
  28. package/dist/src/agents/remote.d.ts.map +1 -1
  29. package/dist/src/agents/types.d.ts +1 -1
  30. package/dist/src/agents/types.d.ts.map +1 -1
  31. package/dist/src/agents/utils/ai_sdk.d.ts +1 -1
  32. package/dist/src/agents/utils/ai_sdk.d.ts.map +1 -1
  33. package/dist/src/agents/utils/index.d.ts +1 -1
  34. package/dist/src/agents/utils/index.d.ts.map +1 -1
  35. package/dist/src/auth/browser-provider.d.ts +2 -2
  36. package/dist/src/auth/browser-provider.d.ts.map +1 -1
  37. package/dist/src/auth/callback.d.ts.map +1 -1
  38. package/dist/src/auth/index.d.ts +3 -3
  39. package/dist/src/auth/index.d.ts.map +1 -1
  40. package/dist/src/auth/types.d.ts +1 -1
  41. package/dist/src/auth/types.d.ts.map +1 -1
  42. package/dist/src/browser.cjs +508 -201
  43. package/dist/src/browser.d.ts +17 -17
  44. package/dist/src/browser.d.ts.map +1 -1
  45. package/dist/src/browser.js +11 -5
  46. package/dist/src/client/base.d.ts +2 -2
  47. package/dist/src/client/base.d.ts.map +1 -1
  48. package/dist/src/client/browser.d.ts +2 -2
  49. package/dist/src/client/browser.d.ts.map +1 -1
  50. package/dist/src/client.d.ts +2 -2
  51. package/dist/src/client.d.ts.map +1 -1
  52. package/dist/src/config.d.ts +1 -1
  53. package/dist/src/config.d.ts.map +1 -1
  54. package/dist/src/connectors/base.d.ts +5 -5
  55. package/dist/src/connectors/base.d.ts.map +1 -1
  56. package/dist/src/connectors/http.d.ts +3 -3
  57. package/dist/src/connectors/http.d.ts.map +1 -1
  58. package/dist/src/connectors/index.d.ts +4 -4
  59. package/dist/src/connectors/index.d.ts.map +1 -1
  60. package/dist/src/connectors/stdio.d.ts +3 -3
  61. package/dist/src/connectors/stdio.d.ts.map +1 -1
  62. package/dist/src/connectors/websocket.d.ts +3 -3
  63. package/dist/src/connectors/websocket.d.ts.map +1 -1
  64. package/dist/src/logging.d.ts +4 -4
  65. package/dist/src/logging.d.ts.map +1 -1
  66. package/dist/src/managers/index.d.ts +2 -2
  67. package/dist/src/managers/index.d.ts.map +1 -1
  68. package/dist/src/managers/server_manager.d.ts +4 -4
  69. package/dist/src/managers/server_manager.d.ts.map +1 -1
  70. package/dist/src/managers/tools/acquire_active_mcp_server.d.ts +3 -3
  71. package/dist/src/managers/tools/acquire_active_mcp_server.d.ts.map +1 -1
  72. package/dist/src/managers/tools/add_server_from_config.d.ts +3 -3
  73. package/dist/src/managers/tools/add_server_from_config.d.ts.map +1 -1
  74. package/dist/src/managers/tools/base.d.ts +6 -6
  75. package/dist/src/managers/tools/base.d.ts.map +1 -1
  76. package/dist/src/managers/tools/connect_mcp_server.d.ts +4 -4
  77. package/dist/src/managers/tools/connect_mcp_server.d.ts.map +1 -1
  78. package/dist/src/managers/tools/index.d.ts +5 -5
  79. package/dist/src/managers/tools/index.d.ts.map +1 -1
  80. package/dist/src/managers/tools/list_mcp_servers.d.ts +3 -3
  81. package/dist/src/managers/tools/list_mcp_servers.d.ts.map +1 -1
  82. package/dist/src/managers/tools/release_mcp_server_connection.d.ts +3 -3
  83. package/dist/src/managers/tools/release_mcp_server_connection.d.ts.map +1 -1
  84. package/dist/src/managers/types.d.ts +3 -3
  85. package/dist/src/managers/types.d.ts.map +1 -1
  86. package/dist/src/oauth-helper.d.ts.map +1 -1
  87. package/dist/src/observability/index.d.ts +3 -3
  88. package/dist/src/observability/index.d.ts.map +1 -1
  89. package/dist/src/observability/langfuse.d.ts +1 -1
  90. package/dist/src/observability/langfuse.d.ts.map +1 -1
  91. package/dist/src/observability/manager.d.ts +1 -1
  92. package/dist/src/observability/manager.d.ts.map +1 -1
  93. package/dist/src/observability/types.d.ts +1 -1
  94. package/dist/src/observability/types.d.ts.map +1 -1
  95. package/dist/src/react/index.cjs +295 -154
  96. package/dist/src/react/index.d.ts +6 -6
  97. package/dist/src/react/index.d.ts.map +1 -1
  98. package/dist/src/react/index.js +3 -3
  99. package/dist/src/react/types.d.ts +6 -6
  100. package/dist/src/react/types.d.ts.map +1 -1
  101. package/dist/src/react/useMcp.d.ts +1 -1
  102. package/dist/src/react/useMcp.d.ts.map +1 -1
  103. package/dist/src/react/useWidget.d.ts +5 -2
  104. package/dist/src/react/useWidget.d.ts.map +1 -1
  105. package/dist/src/react/widget-types.d.ts +3 -3
  106. package/dist/src/react/widget-types.d.ts.map +1 -1
  107. package/dist/src/server/adapters/mcp-ui-adapter.d.ts +3 -3
  108. package/dist/src/server/adapters/mcp-ui-adapter.d.ts.map +1 -1
  109. package/dist/src/server/index.cjs +170 -50
  110. package/dist/src/server/index.d.ts +4 -4
  111. package/dist/src/server/index.d.ts.map +1 -1
  112. package/dist/src/server/index.js +174 -51
  113. package/dist/src/server/logging.d.ts +1 -1
  114. package/dist/src/server/logging.d.ts.map +1 -1
  115. package/dist/src/server/mcp-server.d.ts +29 -29
  116. package/dist/src/server/mcp-server.d.ts.map +1 -1
  117. package/dist/src/server/types/common.d.ts +2 -2
  118. package/dist/src/server/types/common.d.ts.map +1 -1
  119. package/dist/src/server/types/index.d.ts +4 -4
  120. package/dist/src/server/types/index.d.ts.map +1 -1
  121. package/dist/src/server/types/prompt.d.ts +2 -2
  122. package/dist/src/server/types/prompt.d.ts.map +1 -1
  123. package/dist/src/server/types/resource.d.ts +24 -24
  124. package/dist/src/server/types/resource.d.ts.map +1 -1
  125. package/dist/src/server/types/tool.d.ts +3 -3
  126. package/dist/src/server/types/tool.d.ts.map +1 -1
  127. package/dist/src/server/types/widget.d.ts +1 -1
  128. package/dist/src/server/types.d.ts +1 -1
  129. package/dist/src/server/types.d.ts.map +1 -1
  130. package/dist/src/session.d.ts +1 -1
  131. package/dist/src/session.d.ts.map +1 -1
  132. package/dist/src/task_managers/base.d.ts.map +1 -1
  133. package/dist/src/task_managers/index.d.ts +5 -5
  134. package/dist/src/task_managers/index.d.ts.map +1 -1
  135. package/dist/src/task_managers/sse.d.ts +3 -3
  136. package/dist/src/task_managers/sse.d.ts.map +1 -1
  137. package/dist/src/task_managers/stdio.d.ts +4 -4
  138. package/dist/src/task_managers/stdio.d.ts.map +1 -1
  139. package/dist/src/task_managers/streamable_http.d.ts +3 -3
  140. package/dist/src/task_managers/streamable_http.d.ts.map +1 -1
  141. package/dist/src/task_managers/websocket.d.ts +2 -2
  142. package/dist/src/task_managers/websocket.d.ts.map +1 -1
  143. package/dist/src/telemetry/events.d.ts.map +1 -1
  144. package/dist/src/telemetry/index.d.ts +4 -4
  145. package/dist/src/telemetry/index.d.ts.map +1 -1
  146. package/dist/src/telemetry/telemetry.d.ts +1 -1
  147. package/dist/src/telemetry/telemetry.d.ts.map +1 -1
  148. package/dist/src/telemetry/utils.d.ts +1 -1
  149. package/dist/src/telemetry/utils.d.ts.map +1 -1
  150. package/dist/tsup.config.d.ts.map +1 -1
  151. package/dist/vitest.config.d.ts.map +1 -1
  152. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-VPPILX7B.js";
3
+ } from "./chunk-3RJENWH4.js";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-SHUYVCID.js";
@@ -76,7 +76,10 @@ var BaseConnector = class {
76
76
  logger.debug("Caching server capabilities & tools");
77
77
  const capabilities = this.client.getServerCapabilities();
78
78
  this.capabilitiesCache = capabilities;
79
- const listToolsRes = await this.client.listTools(void 0, defaultRequestOptions);
79
+ const listToolsRes = await this.client.listTools(
80
+ void 0,
81
+ defaultRequestOptions
82
+ );
80
83
  this.toolsCache = listToolsRes.tools ?? [];
81
84
  logger.debug(`Fetched ${this.toolsCache.length} tools from server`);
82
85
  logger.debug("Server capabilities:", capabilities);
@@ -95,7 +98,11 @@ var BaseConnector = class {
95
98
  throw new Error("MCP client is not connected");
96
99
  }
97
100
  logger.debug(`Calling tool '${name}' with args`, args);
98
- const res = await this.client.callTool({ name, arguments: args }, void 0, options);
101
+ const res = await this.client.callTool(
102
+ { name, arguments: args },
103
+ void 0,
104
+ options
105
+ );
99
106
  logger.debug(`Tool '${name}' returned`, res);
100
107
  return res;
101
108
  }
@@ -225,7 +232,11 @@ var BaseConnector = class {
225
232
  throw new Error("MCP client is not connected");
226
233
  }
227
234
  logger.debug(`Sending raw request '${method}' with params`, params);
228
- return await this.client.request({ method, params: params ?? {} }, void 0, options);
235
+ return await this.client.request(
236
+ { method, params: params ?? {} },
237
+ void 0,
238
+ options
239
+ );
229
240
  }
230
241
  /**
231
242
  * Helper to tear down the client & connection manager safely.
@@ -356,7 +367,9 @@ var ConnectionManager = class {
356
367
  try {
357
368
  await this.closeConnection(this._connection);
358
369
  } catch (closeErr) {
359
- logger.warn(`Error closing connection in ${this.constructor.name}: ${closeErr}`);
370
+ logger.warn(
371
+ `Error closing connection in ${this.constructor.name}: ${closeErr}`
372
+ );
360
373
  }
361
374
  this._connection = null;
362
375
  }
@@ -500,7 +513,10 @@ var HttpConnector = class extends BaseConnector {
500
513
  }
501
514
  this.timeout = opts.timeout ?? 3e4;
502
515
  this.sseReadTimeout = opts.sseReadTimeout ?? 3e5;
503
- this.clientInfo = opts.clientInfo ?? { name: "http-connector", version: "1.0.0" };
516
+ this.clientInfo = opts.clientInfo ?? {
517
+ name: "http-connector",
518
+ version: "1.0.0"
519
+ };
504
520
  this.preferSse = opts.preferSse ?? false;
505
521
  }
506
522
  /** Establish connection to the MCP implementation via HTTP (streamable or SSE). */
@@ -571,29 +587,28 @@ var HttpConnector = class extends BaseConnector {
571
587
  authError.code = 401;
572
588
  throw authError;
573
589
  }
574
- throw new Error("Could not connect to server with any available transport");
590
+ throw new Error(
591
+ "Could not connect to server with any available transport"
592
+ );
575
593
  }
576
594
  }
577
595
  }
578
596
  async connectWithStreamableHttp(baseUrl) {
579
597
  try {
580
- this.connectionManager = new StreamableHttpConnectionManager(
581
- baseUrl,
582
- {
583
- authProvider: this.opts.authProvider,
584
- // ← Pass OAuth provider to SDK
585
- requestInit: {
586
- headers: this.headers
587
- },
588
- // Pass through timeout and other options
589
- reconnectionOptions: {
590
- maxReconnectionDelay: 3e4,
591
- initialReconnectionDelay: 1e3,
592
- reconnectionDelayGrowFactor: 1.5,
593
- maxRetries: 2
594
- }
598
+ this.connectionManager = new StreamableHttpConnectionManager(baseUrl, {
599
+ authProvider: this.opts.authProvider,
600
+ // ← Pass OAuth provider to SDK
601
+ requestInit: {
602
+ headers: this.headers
603
+ },
604
+ // Pass through timeout and other options
605
+ reconnectionOptions: {
606
+ maxReconnectionDelay: 3e4,
607
+ initialReconnectionDelay: 1e3,
608
+ reconnectionDelayGrowFactor: 1.5,
609
+ maxRetries: 2
595
610
  }
596
- );
611
+ });
597
612
  const transport = await this.connectionManager.start();
598
613
  this.client = new Client(this.clientInfo, this.opts.clientOptions);
599
614
  try {
@@ -602,7 +617,9 @@ var HttpConnector = class extends BaseConnector {
602
617
  if (connectErr instanceof Error) {
603
618
  const errMsg = connectErr.message || connectErr.toString();
604
619
  if (errMsg.includes("Missing session ID") || errMsg.includes("Bad Request: Missing session ID")) {
605
- const wrappedError = new Error(`FastMCP session ID error: ${errMsg}`);
620
+ const wrappedError = new Error(
621
+ `FastMCP session ID error: ${errMsg}`
622
+ );
606
623
  wrappedError.cause = connectErr;
607
624
  throw wrappedError;
608
625
  }
@@ -611,7 +628,9 @@ var HttpConnector = class extends BaseConnector {
611
628
  }
612
629
  this.connected = true;
613
630
  this.transportType = "streamable-http";
614
- logger.debug(`Successfully connected to MCP implementation via streamable HTTP: ${baseUrl}`);
631
+ logger.debug(
632
+ `Successfully connected to MCP implementation via streamable HTTP: ${baseUrl}`
633
+ );
615
634
  } catch (err) {
616
635
  await this.cleanupResources();
617
636
  throw err;
@@ -619,20 +638,19 @@ var HttpConnector = class extends BaseConnector {
619
638
  }
620
639
  async connectWithSse(baseUrl) {
621
640
  try {
622
- this.connectionManager = new SseConnectionManager(
623
- baseUrl,
624
- {
625
- requestInit: {
626
- headers: this.headers
627
- }
641
+ this.connectionManager = new SseConnectionManager(baseUrl, {
642
+ requestInit: {
643
+ headers: this.headers
628
644
  }
629
- );
645
+ });
630
646
  const transport = await this.connectionManager.start();
631
647
  this.client = new Client(this.clientInfo, this.opts.clientOptions);
632
648
  await this.client.connect(transport);
633
649
  this.connected = true;
634
650
  this.transportType = "sse";
635
- logger.debug(`Successfully connected to MCP implementation via HTTP/SSE: ${baseUrl}`);
651
+ logger.debug(
652
+ `Successfully connected to MCP implementation via HTTP/SSE: ${baseUrl}`
653
+ );
636
654
  } catch (err) {
637
655
  await this.cleanupResources();
638
656
  throw err;
@@ -678,7 +696,9 @@ var WebSocketConnectionManager = class extends ConnectionManager {
678
696
  async establishConnection() {
679
697
  logger.debug(`Connecting to WebSocket: ${this.url}`);
680
698
  return new Promise((resolve, reject) => {
681
- const ws = new WS(this.url, { headers: this.headers });
699
+ const ws = new WS(this.url, {
700
+ headers: this.headers
701
+ });
682
702
  this._ws = ws;
683
703
  const onOpen = /* @__PURE__ */ __name(() => {
684
704
  cleanup();
@@ -738,8 +758,7 @@ var WebSocketConnector = class extends BaseConnector {
738
758
  super();
739
759
  this.url = url;
740
760
  this.headers = { ...opts.headers ?? {} };
741
- if (opts.authToken)
742
- this.headers.Authorization = `Bearer ${opts.authToken}`;
761
+ if (opts.authToken) this.headers.Authorization = `Bearer ${opts.authToken}`;
743
762
  }
744
763
  async connect() {
745
764
  if (this.connected) {
@@ -748,7 +767,10 @@ var WebSocketConnector = class extends BaseConnector {
748
767
  }
749
768
  logger.debug(`Connecting via WebSocket: ${this.url}`);
750
769
  try {
751
- this.connectionManager = new WebSocketConnectionManager(this.url, this.headers);
770
+ this.connectionManager = new WebSocketConnectionManager(
771
+ this.url,
772
+ this.headers
773
+ );
752
774
  this.ws = await this.connectionManager.start();
753
775
  this.receiverTask = this.receiveLoop();
754
776
  this.connected = true;
@@ -769,8 +791,7 @@ var WebSocketConnector = class extends BaseConnector {
769
791
  this.connected = false;
770
792
  }
771
793
  sendRequest(method, params = null) {
772
- if (!this.ws)
773
- throw new Error("WebSocket is not connected");
794
+ if (!this.ws) throw new Error("WebSocket is not connected");
774
795
  const id = uuidv4();
775
796
  const payload = JSON.stringify({ id, method, params: params ?? {} });
776
797
  return new Promise((resolve, reject) => {
@@ -784,8 +805,7 @@ var WebSocketConnector = class extends BaseConnector {
784
805
  });
785
806
  }
786
807
  async receiveLoop() {
787
- if (!this.ws)
788
- return;
808
+ if (!this.ws) return;
789
809
  const socket = this.ws;
790
810
  const onMessage = /* @__PURE__ */ __name((msg) => {
791
811
  let data;
@@ -799,10 +819,8 @@ var WebSocketConnector = class extends BaseConnector {
799
819
  if (id && this.pending.has(id)) {
800
820
  const { resolve, reject } = this.pending.get(id);
801
821
  this.pending.delete(id);
802
- if ("result" in data)
803
- resolve(data.result);
804
- else if ("error" in data)
805
- reject(data.error);
822
+ if ("result" in data) resolve(data.result);
823
+ else if ("error" in data) reject(data.error);
806
824
  } else {
807
825
  logger.debug("Received unsolicited message", data);
808
826
  }
@@ -860,14 +878,12 @@ var WebSocketConnector = class extends BaseConnector {
860
878
  return await this.sendRequest(method, params);
861
879
  }
862
880
  get tools() {
863
- if (!this.toolsCache)
864
- throw new Error("MCP client is not initialized");
881
+ if (!this.toolsCache) throw new Error("MCP client is not initialized");
865
882
  return this.toolsCache;
866
883
  }
867
884
  async cleanupResources() {
868
- if (this.receiverTask)
869
- await this.receiverTask.catch(() => {
870
- });
885
+ if (this.receiverTask) await this.receiverTask.catch(() => {
886
+ });
871
887
  this.receiverTask = null;
872
888
  this.rejectAll(new Error("WebSocket disconnected"));
873
889
  if (this.connectionManager) {
@@ -934,7 +950,10 @@ var BrowserOAuthClientProvider = class {
934
950
  try {
935
951
  return JSON.parse(data);
936
952
  } catch (e) {
937
- console.warn(`[${this.storageKeyPrefix}] Failed to parse client information:`, e);
953
+ console.warn(
954
+ `[${this.storageKeyPrefix}] Failed to parse client information:`,
955
+ e
956
+ );
938
957
  localStorage.removeItem(key);
939
958
  return void 0;
940
959
  }
@@ -1016,7 +1035,11 @@ var BrowserOAuthClientProvider = class {
1016
1035
  const sanitizedAuthUrl = await this.prepareAuthorizationUrl(authorizationUrl);
1017
1036
  const popupFeatures = "width=600,height=700,resizable=yes,scrollbars=yes,status=yes";
1018
1037
  try {
1019
- const popup = window.open(sanitizedAuthUrl, `mcp_auth_${this.serverUrlHash}`, popupFeatures);
1038
+ const popup = window.open(
1039
+ sanitizedAuthUrl,
1040
+ `mcp_auth_${this.serverUrlHash}`,
1041
+ popupFeatures
1042
+ );
1020
1043
  if (this.onPopupWindow) {
1021
1044
  this.onPopupWindow(sanitizedAuthUrl, popupFeatures, popup);
1022
1045
  }
@@ -1026,10 +1049,15 @@ var BrowserOAuthClientProvider = class {
1026
1049
  );
1027
1050
  } else {
1028
1051
  popup.focus();
1029
- console.info(`[${this.storageKeyPrefix}] Redirecting to authorization URL in popup.`);
1052
+ console.info(
1053
+ `[${this.storageKeyPrefix}] Redirecting to authorization URL in popup.`
1054
+ );
1030
1055
  }
1031
1056
  } catch (e) {
1032
- console.error(`[${this.storageKeyPrefix}] Error opening popup window:`, e);
1057
+ console.error(
1058
+ `[${this.storageKeyPrefix}] Error opening popup window:`,
1059
+ e
1060
+ );
1033
1061
  }
1034
1062
  }
1035
1063
  // --- Helper Methods ---
@@ -1060,7 +1088,10 @@ var BrowserOAuthClientProvider = class {
1060
1088
  }
1061
1089
  }
1062
1090
  } catch (e) {
1063
- console.warn(`[${this.storageKeyPrefix}] Error parsing state key ${key} during clearStorage:`, e);
1091
+ console.warn(
1092
+ `[${this.storageKeyPrefix}] Error parsing state key ${key} during clearStorage:`,
1093
+ e
1094
+ );
1064
1095
  }
1065
1096
  }
1066
1097
  }
@@ -1094,23 +1125,36 @@ async function onMcpAuthorization() {
1094
1125
  const error = queryParams.get("error");
1095
1126
  const errorDescription = queryParams.get("error_description");
1096
1127
  const logPrefix = "[mcp-callback]";
1097
- console.log(`${logPrefix} Handling callback...`, { code, state, error, errorDescription });
1128
+ console.log(`${logPrefix} Handling callback...`, {
1129
+ code,
1130
+ state,
1131
+ error,
1132
+ errorDescription
1133
+ });
1098
1134
  let provider = null;
1099
1135
  let storedStateData = null;
1100
1136
  const stateKey = state ? `mcp:auth:state_${state}` : null;
1101
1137
  try {
1102
1138
  if (error) {
1103
- throw new Error(`OAuth error: ${error} - ${errorDescription || "No description provided."}`);
1139
+ throw new Error(
1140
+ `OAuth error: ${error} - ${errorDescription || "No description provided."}`
1141
+ );
1104
1142
  }
1105
1143
  if (!code) {
1106
- throw new Error("Authorization code not found in callback query parameters.");
1144
+ throw new Error(
1145
+ "Authorization code not found in callback query parameters."
1146
+ );
1107
1147
  }
1108
1148
  if (!state || !stateKey) {
1109
- throw new Error("State parameter not found or invalid in callback query parameters.");
1149
+ throw new Error(
1150
+ "State parameter not found or invalid in callback query parameters."
1151
+ );
1110
1152
  }
1111
1153
  const storedStateJSON = localStorage.getItem(stateKey);
1112
1154
  if (!storedStateJSON) {
1113
- throw new Error(`Invalid or expired state parameter "${state}". No matching state found in storage.`);
1155
+ throw new Error(
1156
+ `Invalid or expired state parameter "${state}". No matching state found in storage.`
1157
+ );
1114
1158
  }
1115
1159
  try {
1116
1160
  storedStateData = JSON.parse(storedStateJSON);
@@ -1119,38 +1163,59 @@ async function onMcpAuthorization() {
1119
1163
  }
1120
1164
  if (!storedStateData.expiry || storedStateData.expiry < Date.now()) {
1121
1165
  localStorage.removeItem(stateKey);
1122
- throw new Error("OAuth state has expired. Please try initiating authentication again.");
1166
+ throw new Error(
1167
+ "OAuth state has expired. Please try initiating authentication again."
1168
+ );
1123
1169
  }
1124
1170
  if (!storedStateData.providerOptions) {
1125
1171
  throw new Error("Stored state is missing required provider options.");
1126
1172
  }
1127
1173
  const { serverUrl, ...providerOptions } = storedStateData.providerOptions;
1128
- console.log(`${logPrefix} Re-instantiating provider for server: ${serverUrl}`);
1174
+ console.log(
1175
+ `${logPrefix} Re-instantiating provider for server: ${serverUrl}`
1176
+ );
1129
1177
  provider = new BrowserOAuthClientProvider(serverUrl, providerOptions);
1130
1178
  console.log(`${logPrefix} Calling SDK auth() to exchange code...`);
1131
1179
  const baseUrl = new URL(serverUrl).origin;
1132
- const authResult = await auth(provider, { serverUrl: baseUrl, authorizationCode: code });
1180
+ const authResult = await auth(provider, {
1181
+ serverUrl: baseUrl,
1182
+ authorizationCode: code
1183
+ });
1133
1184
  if (authResult === "AUTHORIZED") {
1134
- console.log(`${logPrefix} Authorization successful via SDK auth(). Notifying opener...`);
1185
+ console.log(
1186
+ `${logPrefix} Authorization successful via SDK auth(). Notifying opener...`
1187
+ );
1135
1188
  if (window.opener && !window.opener.closed) {
1136
- window.opener.postMessage({ type: "mcp_auth_callback", success: true }, window.location.origin);
1189
+ window.opener.postMessage(
1190
+ { type: "mcp_auth_callback", success: true },
1191
+ window.location.origin
1192
+ );
1137
1193
  window.close();
1138
1194
  } else {
1139
- console.warn(`${logPrefix} No opener window detected. Redirecting to root.`);
1195
+ console.warn(
1196
+ `${logPrefix} No opener window detected. Redirecting to root.`
1197
+ );
1140
1198
  const pathParts = window.location.pathname.split("/").filter(Boolean);
1141
1199
  const basePath = pathParts.length > 0 && pathParts[pathParts.length - 1] === "callback" ? "/" + pathParts.slice(0, -2).join("/") : "/";
1142
1200
  window.location.href = basePath || "/";
1143
1201
  }
1144
1202
  localStorage.removeItem(stateKey);
1145
1203
  } else {
1146
- console.warn(`${logPrefix} SDK auth() returned unexpected status: ${authResult}`);
1147
- throw new Error(`Unexpected result from authentication library: ${authResult}`);
1204
+ console.warn(
1205
+ `${logPrefix} SDK auth() returned unexpected status: ${authResult}`
1206
+ );
1207
+ throw new Error(
1208
+ `Unexpected result from authentication library: ${authResult}`
1209
+ );
1148
1210
  }
1149
1211
  } catch (err) {
1150
1212
  console.error(`${logPrefix} Error during OAuth callback handling:`, err);
1151
1213
  const errorMessage = err instanceof Error ? err.message : String(err);
1152
1214
  if (window.opener && !window.opener.closed) {
1153
- window.opener.postMessage({ type: "mcp_auth_callback", success: false, error: errorMessage }, window.location.origin);
1215
+ window.opener.postMessage(
1216
+ { type: "mcp_auth_callback", success: false, error: errorMessage },
1217
+ window.location.origin
1218
+ );
1154
1219
  }
1155
1220
  try {
1156
1221
  document.body.innerHTML = `
@@ -1164,7 +1229,10 @@ async function onMcpAuthorization() {
1164
1229
  </div>
1165
1230
  `;
1166
1231
  } catch (displayError) {
1167
- console.error(`${logPrefix} Could not display error in callback window:`, displayError);
1232
+ console.error(
1233
+ `${logPrefix} Could not display error in callback window:`,
1234
+ displayError
1235
+ );
1168
1236
  }
1169
1237
  if (stateKey) {
1170
1238
  localStorage.removeItem(stateKey);
@@ -1256,7 +1324,9 @@ var BaseMCPClient = class {
1256
1324
  async closeSession(serverName) {
1257
1325
  const session = this.sessions[serverName];
1258
1326
  if (!session) {
1259
- logger.warn(`No session exists for server ${serverName}, nothing to close`);
1327
+ logger.warn(
1328
+ `No session exists for server ${serverName}, nothing to close`
1329
+ );
1260
1330
  return;
1261
1331
  }
1262
1332
  try {
@@ -1283,7 +1353,9 @@ var BaseMCPClient = class {
1283
1353
  }
1284
1354
  }
1285
1355
  if (errors.length) {
1286
- logger.error(`Encountered ${errors.length} errors while closing sessions`);
1356
+ logger.error(
1357
+ `Encountered ${errors.length} errors while closing sessions`
1358
+ );
1287
1359
  } else {
1288
1360
  logger.debug("All sessions closed successfully");
1289
1361
  }