@mcp-use/inspector 20.0.0-beta.13 → 20.0.0-beta.15

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 (145) hide show
  1. package/README.md +4 -4
  2. package/dist/cdn/inspector.js +76858 -9272
  3. package/dist/cli.js +69 -24
  4. package/dist/server/asset-urls.d.ts +1 -4
  5. package/dist/server/asset-urls.d.ts.map +1 -1
  6. package/dist/server/asset-urls.js +3 -7
  7. package/dist/server/cdn-shell.d.ts.map +1 -1
  8. package/dist/server/cdn-shell.js +3 -3
  9. package/dist/server/{chunk-H6ZCIKBS.js → chunk-JZT7N2BJ.js} +10 -15
  10. package/dist/server/{chunk-YAYRN4DW.js → chunk-WNQGHIZ3.js} +61 -15
  11. package/dist/server/{chunk-QQP554HG.js → chunk-XKCUJ6ZJ.js} +1 -1
  12. package/dist/server/{chunk-2XQWLYOZ.js → chunk-ZPGABKXL.js} +1 -1
  13. package/dist/server/cli.js +3 -3
  14. package/dist/server/index.js +4 -4
  15. package/dist/server/middleware.js +4 -4
  16. package/dist/server/version.js +1 -1
  17. package/dist/web/assets/index-Bqfsh_Rp.js +643 -0
  18. package/dist/web/index.html +2 -10
  19. package/package.json +2 -2
  20. package/dist/cdn/AnimatePresence-D1bZ5_-l.js +0 -394
  21. package/dist/cdn/ChatTab-CokP5UlL.js +0 -6811
  22. package/dist/cdn/CheckboxIndicator-BjF73mGX.js +0 -252
  23. package/dist/cdn/ConnectionSettingsForm-CXCKdMZh.js +0 -929
  24. package/dist/cdn/ConnectionSettingsTab-Ag4WD55h.js +0 -151
  25. package/dist/cdn/ElicitationTab-PEmEDvC5.js +0 -655
  26. package/dist/cdn/FormContext-NtUiZclE.js +0 -135
  27. package/dist/cdn/InspectorContext-BBKCdfmK.js +0 -123
  28. package/dist/cdn/JSONDisplay-BJqMz7Ny.js +0 -324
  29. package/dist/cdn/ListTabHeader-DzmTtN1e.js +0 -89
  30. package/dist/cdn/MCPAppsDebugControls-C01DPDJv.js +0 -2174
  31. package/dist/cdn/ManufactOAuthCallback-ChbbjFIT.js +0 -31
  32. package/dist/cdn/MarkdownRenderer-CrG5JHAZ.js +0 -3610
  33. package/dist/cdn/McpAppsViewPanel-07_iHrne.js +0 -56
  34. package/dist/cdn/NotificationsTab-B7uebqMV.js +0 -290
  35. package/dist/cdn/OAuthCallback-Cku-R2uM.js +0 -58
  36. package/dist/cdn/PromptsTab-98ugje_q.js +0 -902
  37. package/dist/cdn/ResourcesTab-CxHilZjd.js +0 -566
  38. package/dist/cdn/SamplingTab-gOUjg7bt.js +0 -659
  39. package/dist/cdn/ServerMetadataTab-BM3VhSLf.js +0 -244
  40. package/dist/cdn/StatusIcon-Q3n3YRtE.js +0 -65
  41. package/dist/cdn/ToolsTab-Dm6n5OxE.js +0 -2045
  42. package/dist/cdn/ViewPreview-CCKWd8Qt.js +0 -238
  43. package/dist/cdn/WidgetDebugContext-B6yoOVVV.js +0 -314
  44. package/dist/cdn/WidgetWrapper-BlbQAh_X.js +0 -12
  45. package/dist/cdn/basePath-B8HuhIMu.js +0 -25
  46. package/dist/cdn/bell-GrTZcnD2.js +0 -10
  47. package/dist/cdn/browser-DG2Z8392.js +0 -42
  48. package/dist/cdn/brush-CelVvMGp.js +0 -17
  49. package/dist/cdn/button-CB4uOoUV.js +0 -2509
  50. package/dist/cdn/card-BA-DQk-G.js +0 -41
  51. package/dist/cdn/cfWorker-Bxcs9rNe.js +0 -10799
  52. package/dist/cdn/checkbox-kwVa4gRX.js +0 -20
  53. package/dist/cdn/chunk-QUQL4437-XnDcYQEx.js +0 -1508
  54. package/dist/cdn/clock-YMF8Gtw5.js +0 -12
  55. package/dist/cdn/code-C8sN2OGR.js +0 -10
  56. package/dist/cdn/createLucideIcon-BONxC1L5.js +0 -213
  57. package/dist/cdn/dialog-CJGnC5Ag.js +0 -1028
  58. package/dist/cdn/dist-C-AJLM5q.js +0 -2307
  59. package/dist/cdn/dist-CTJnCYmk.js +0 -616
  60. package/dist/cdn/external-link-Bo4lQxr1.js +0 -17
  61. package/dist/cdn/eye-pSGG7nvf.js +0 -29
  62. package/dist/cdn/folder-open-aM8CPtBO.js +0 -7
  63. package/dist/cdn/hash-DDs2vE1k.js +0 -33
  64. package/dist/cdn/history-BfUFpL1d.js +0 -17
  65. package/dist/cdn/index-browser-CCygKh3z.js +0 -1853
  66. package/dist/cdn/info-BMkB68mB.js +0 -19
  67. package/dist/cdn/input-BCpgLXU1.js +0 -9654
  68. package/dist/cdn/inspector-settings-layout-0VDsjeqb.js +0 -4
  69. package/dist/cdn/label-A0UGV8FE.js +0 -60
  70. package/dist/cdn/loader-circle-BKRHJEB7.js +0 -7
  71. package/dist/cdn/manufact-auth-BQMHhbLV.js +0 -423
  72. package/dist/cdn/maximize-2-DdrB_spi.js +0 -21
  73. package/dist/cdn/maximize-hSOCz133.js +0 -21
  74. package/dist/cdn/message-square-D3tKB3uJ.js +0 -7
  75. package/dist/cdn/not-found-BajFyZpp.js +0 -32
  76. package/dist/cdn/play-B1leulYf.js +0 -7
  77. package/dist/cdn/providerMeta-CjGU4rID.js +0 -436
  78. package/dist/cdn/react-BIs9pQ3H.js +0 -926
  79. package/dist/cdn/react-BiVEwoxA.js +0 -5421
  80. package/dist/cdn/refresh-cw-CyvXrS91.js +0 -21
  81. package/dist/cdn/save-CmdEPUAm.js +0 -34
  82. package/dist/cdn/schemaHelpers-DTV38jGq.js +0 -16
  83. package/dist/cdn/select-CCFHjOGk.js +0 -2595
  84. package/dist/cdn/servers-Dd0Vcp81.js +0 -30
  85. package/dist/cdn/shared-CJVHJhag.js +0 -1700
  86. package/dist/cdn/sheet-oyq1mIyg.js +0 -2078
  87. package/dist/cdn/sparkles-CxeZpVtX.js +0 -23
  88. package/dist/cdn/spinner-Be1GlSGX.js +0 -15
  89. package/dist/cdn/square-check-big-C_4wbfwF.js +0 -10
  90. package/dist/cdn/switch-DHXEA_N5.js +0 -665
  91. package/dist/cdn/tabs-subtle-Dubd6Kj8.js +0 -788
  92. package/dist/cdn/telemetry-DyrOzsAR.js +0 -208
  93. package/dist/cdn/textarea-CwmI8_uI.js +0 -14
  94. package/dist/cdn/trash-2-BhumJAFE.js +0 -25
  95. package/dist/cdn/useAriaLabelledBy-Cra6w3YY.js +0 -30
  96. package/dist/cdn/useCompositeItem-Dhnm-7el.js +0 -26
  97. package/dist/cdn/useConfig-BTDwEhra.js +0 -235
  98. package/dist/cdn/useSavedRequests-mSIsDd4c.js +0 -51
  99. package/dist/cdn/useViewHostProps-C5NRGTzJ.js +0 -364
  100. package/dist/cdn/wrench-DvK20LUT.js +0 -7
  101. package/dist/cdn/x-EilKPiCX.js +0 -10
  102. package/dist/cdn/zap-0Wr9QO7N.js +0 -10
  103. package/dist/web/assets/AnimatePresence-FfDQQNFJ.js +0 -9
  104. package/dist/web/assets/ChatTab-BEfFVccY.js +0 -18
  105. package/dist/web/assets/ConnectionSettingsTab-Bb_6a0Iv.js +0 -1
  106. package/dist/web/assets/ElicitationTab-BP4GKiyX.js +0 -1
  107. package/dist/web/assets/FormContext-sV-yByKz.js +0 -1
  108. package/dist/web/assets/ListTabHeader-CrGae306.js +0 -1
  109. package/dist/web/assets/MCPAppsDebugControls-BIyFdqol.js +0 -34
  110. package/dist/web/assets/ManufactOAuthCallback-C7FmBqhm.js +0 -1
  111. package/dist/web/assets/MarkdownRenderer-Dh79xxF3.js +0 -47
  112. package/dist/web/assets/McpAppsViewPanel-eC3j1-Vq.js +0 -1
  113. package/dist/web/assets/NotificationsTab-BiZcGnsE.js +0 -1
  114. package/dist/web/assets/OAuthCallback-0QMKMr_h.js +0 -1
  115. package/dist/web/assets/PromptsTab-DP25ApgP.js +0 -15
  116. package/dist/web/assets/ResourcesTab-CptaN3NT.js +0 -2
  117. package/dist/web/assets/SamplingTab-BcdnfiwQ.js +0 -1
  118. package/dist/web/assets/ServerMetadataTab-DfM-a-Kp.js +0 -1
  119. package/dist/web/assets/ToolsTab-hSGwy5-P.js +0 -8
  120. package/dist/web/assets/ViewPreview-r5Me72Dm.js +0 -1
  121. package/dist/web/assets/WidgetWrapper-cv_BM1bY.js +0 -1
  122. package/dist/web/assets/brush-DX0UZ_pI.js +0 -1
  123. package/dist/web/assets/button-C8Xa2k4x.js +0 -1
  124. package/dist/web/assets/checkbox-CiCqaf9B.js +0 -1
  125. package/dist/web/assets/code-B14rVdNt.js +0 -1
  126. package/dist/web/assets/createLucideIcon-BEHeJH0M.js +0 -1
  127. package/dist/web/assets/dist-igO5zKmw.js +0 -21
  128. package/dist/web/assets/index-lCF-0iyi.js +0 -499
  129. package/dist/web/assets/input-C0OQCUZy.js +0 -1
  130. package/dist/web/assets/inspector-settings-layout-yjKRJDai.js +0 -1
  131. package/dist/web/assets/label-CI7JWQOo.js +0 -1
  132. package/dist/web/assets/maximize-2-Br1WQzT2.js +0 -1
  133. package/dist/web/assets/maximize-CJNgRe6S.js +0 -1
  134. package/dist/web/assets/react-CU_d2d5K.js +0 -1
  135. package/dist/web/assets/refresh-cw-B5iaAZKn.js +0 -1
  136. package/dist/web/assets/save-TM6fvNrt.js +0 -1
  137. package/dist/web/assets/schemaHelpers-DLNTQr_6.js +0 -1
  138. package/dist/web/assets/select-D6jzbLJn.js +0 -1
  139. package/dist/web/assets/shared-ChslWC1c.js +0 -1
  140. package/dist/web/assets/sparkles-BGYTDThM.js +0 -1
  141. package/dist/web/assets/tabs-subtle-BqKfSXAk.js +0 -1
  142. package/dist/web/assets/textarea-CRTXuRmE.js +0 -1
  143. package/dist/web/assets/useConfig-BoaEj10z.js +0 -1
  144. package/dist/web/assets/useViewHostProps-BUcH84Z-.js +0 -1
  145. package/dist/web/assets/zap-BDWHCVHU.js +0 -1
package/dist/cli.js CHANGED
@@ -13,21 +13,14 @@ var DEFAULT_REMOTE_ASSETS_URL = `https://cdn.jsdelivr.net/npm/@mcp-use/inspector
13
13
  function inspectorStylesUrl(assetsUrl) {
14
14
  return assetsUrl.replace(/\.js(?=$|[?#])/, ".css");
15
15
  }
16
- function isDefaultJsdelivrInspectorUrl(url) {
17
- return url.startsWith("https://cdn.jsdelivr.net/npm/@mcp-use/inspector@");
18
- }
19
- function withInspectorCacheBust(assetsUrl) {
20
- if (!isDefaultJsdelivrInspectorUrl(assetsUrl)) return assetsUrl;
21
- const sep = assetsUrl.includes("?") ? "&" : "?";
22
- return `${assetsUrl}${sep}cb=${crypto.randomUUID()}`;
23
- }
24
16
  function resolveInspectorAssetUrls(inspectorMode2, basePath) {
25
17
  const envUrl = process.env.INSPECTOR_ASSETS_URL ?? process.env.MCP_USE_INSPECTOR_ASSETS_URL;
26
18
  if (envUrl) {
27
19
  return {
28
20
  jsUrl: envUrl,
29
21
  cssUrl: inspectorStylesUrl(envUrl),
30
- useLocal: false
22
+ useLocal: false,
23
+ resolveLatest: false
31
24
  };
32
25
  }
33
26
  const legacyBase = process.env.INSPECTOR_CDN_BASE;
@@ -37,13 +30,15 @@ function resolveInspectorAssetUrls(inspectorMode2, basePath) {
37
30
  return {
38
31
  jsUrl: base,
39
32
  cssUrl: inspectorStylesUrl(base),
40
- useLocal: false
33
+ useLocal: false,
34
+ resolveLatest: false
41
35
  };
42
36
  }
43
37
  return {
44
38
  jsUrl: `${base}/inspector.js`,
45
39
  cssUrl: `${base}/inspector.css`,
46
- useLocal: false
40
+ useLocal: false,
41
+ resolveLatest: false
47
42
  };
48
43
  }
49
44
  if (inspectorMode2 === "standalone") {
@@ -51,14 +46,16 @@ function resolveInspectorAssetUrls(inspectorMode2, basePath) {
51
46
  return {
52
47
  jsUrl: `${prefix}/dist/cdn/inspector.js`,
53
48
  cssUrl: `${prefix}/dist/cdn/inspector.css`,
54
- useLocal: true
49
+ useLocal: true,
50
+ resolveLatest: false
55
51
  };
56
52
  }
57
53
  const jsUrl = DEFAULT_REMOTE_ASSETS_URL;
58
54
  return {
59
55
  jsUrl,
60
56
  cssUrl: inspectorStylesUrl(jsUrl),
61
- useLocal: false
57
+ useLocal: false,
58
+ resolveLatest: true
62
59
  };
63
60
  }
64
61
 
@@ -182,7 +179,7 @@ function registerInspectorStaticAssets(app2, basePath = "") {
182
179
  var package_default = {
183
180
  name: "@mcp-use/inspector",
184
181
  type: "module",
185
- version: "20.0.0-beta.12",
182
+ version: "20.0.0-beta.14",
186
183
  description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
187
184
  author: "",
188
185
  license: "MIT",
@@ -330,11 +327,60 @@ function getInspectorVersion() {
330
327
 
331
328
  // src/server/cdn-shell.ts
332
329
  var INSPECTOR_VERSION = getInspectorVersion();
330
+ var INSPECTOR_VERSION_RESOLVER_URL = "https://data.jsdelivr.com/v1/packages/npm/@mcp-use/inspector/resolved?specifier=beta";
331
+ var INSPECTOR_CDN_PACKAGE_URL = "https://cdn.jsdelivr.net/npm/@mcp-use/inspector";
333
332
  var OAUTH_POPUP_CLOSED_HTML = `<!doctype html>
334
333
  <html lang="en"><head><meta charset="utf-8"><title>Signed in</title><meta name="robots" content="noindex"><style>html,body{margin:0;height:100%;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#4b5563;background:#fff}</style></head>
335
334
  <body><div>Signed in. You can close this window.</div>
336
335
  <script>try{if(window.opener&&!window.opener.closed)window.opener.postMessage({type:"manufact:oauth-complete"},"*")}catch(e){}try{window.close()}catch(e){}</script>
337
336
  </body></html>`;
337
+ function renderDefaultInspectorAssetLoader() {
338
+ return `<script type="module">
339
+ const resolverUrl = ${JSON.stringify(INSPECTOR_VERSION_RESOLVER_URL)};
340
+ const packageUrl = ${JSON.stringify(INSPECTOR_CDN_PACKAGE_URL)};
341
+ const versionPattern = /^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/;
342
+
343
+ try {
344
+ const controller = new AbortController();
345
+ const timeout = setTimeout(() => controller.abort(), 10_000);
346
+ let response;
347
+ try {
348
+ response = await fetch(resolverUrl, { signal: controller.signal });
349
+ } finally {
350
+ clearTimeout(timeout);
351
+ }
352
+ if (!response.ok) {
353
+ throw new Error(\`Inspector version resolver returned HTTP \${response.status}\`);
354
+ }
355
+
356
+ const resolved = await response.json();
357
+ if (
358
+ resolved?.name !== "@mcp-use/inspector" ||
359
+ typeof resolved.version !== "string" ||
360
+ !versionPattern.test(resolved.version)
361
+ ) {
362
+ throw new Error("Inspector version resolver returned an invalid release");
363
+ }
364
+
365
+ const version = resolved.version;
366
+ const assetBase = \`\${packageUrl}@\${version}/dist/cdn\`;
367
+ const stylesheet = document.createElement("link");
368
+ stylesheet.rel = "stylesheet";
369
+ stylesheet.href = \`\${assetBase}/inspector.css\`;
370
+ document.head.append(stylesheet);
371
+
372
+ window.__INSPECTOR_VERSION__ = version;
373
+ await import(\`\${assetBase}/inspector.js\`);
374
+ } catch (error) {
375
+ console.error("[Inspector] Failed to load the latest Inspector release:", error);
376
+ document.querySelector(".mcp-boot-spinner")?.remove();
377
+ const label = document.querySelector(".mcp-boot-label");
378
+ if (label) {
379
+ label.textContent = "Unable to load Inspector. Reload to try again.";
380
+ }
381
+ }
382
+ </script>`;
383
+ }
338
384
  function generateCdnShellHtml(config, basePath, assets) {
339
385
  const scripts = [];
340
386
  if (config?.basePath !== void 0) {
@@ -371,6 +417,10 @@ function generateCdnShellHtml(config, basePath, assets) {
371
417
  );
372
418
  }
373
419
  const runtimeScripts = scripts.join("\n ");
420
+ const assetPreconnects = assets.resolveLatest ? ` <link rel="preconnect" href="https://data.jsdelivr.com" crossorigin />
421
+ <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />` : "";
422
+ const stylesheetTag = assets.resolveLatest ? "" : ` <link rel="stylesheet" href="${assets.cssUrl}" />`;
423
+ const assetLoader = assets.resolveLatest ? renderDefaultInspectorAssetLoader() : `<script type="module" src="${assets.jsUrl}"></script>`;
374
424
  return `<!doctype html>
375
425
  <html lang="en">
376
426
  <head>
@@ -379,8 +429,9 @@ function generateCdnShellHtml(config, basePath, assets) {
379
429
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
380
430
  <link rel="preconnect" href="https://fonts.googleapis.com" />
381
431
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
432
+ ${assetPreconnects}
382
433
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet" />
383
- <link rel="stylesheet" href="${assets.cssUrl}" />
434
+ ${stylesheetTag}
384
435
  <title>Inspector | mcp-use</title>
385
436
  <meta name="description" content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser." />
386
437
  <style>
@@ -460,7 +511,7 @@ function generateCdnShellHtml(config, basePath, assets) {
460
511
  </div>
461
512
  </div>
462
513
  </div>
463
- <script type="module" src="${assets.jsUrl}"></script>
514
+ ${assetLoader}
464
515
  </body>
465
516
  </html>`;
466
517
  }
@@ -474,14 +525,8 @@ function registerInspectorCdnShell(app2, config, basePath = "") {
474
525
  disableTelemetry: config?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
475
526
  };
476
527
  const serveShell = (c) => {
477
- const base = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
478
- const jsUrl = withInspectorCacheBust(base.jsUrl);
479
- return c.html(
480
- generateCdnShellHtml(effectiveConfig, basePath, {
481
- jsUrl,
482
- cssUrl: inspectorStylesUrl(jsUrl)
483
- })
484
- );
528
+ const assets2 = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
529
+ return c.html(generateCdnShellHtml(effectiveConfig, basePath, assets2));
485
530
  };
486
531
  registerInspectorFaviconStatic(app2, basePath);
487
532
  app2.get(
@@ -5,14 +5,11 @@ export declare const JSDELIVR_INSPECTOR_TAG = "beta";
5
5
  export declare const DEFAULT_REMOTE_ASSETS_URL = "https://cdn.jsdelivr.net/npm/@mcp-use/inspector@beta/dist/cdn/inspector.js";
6
6
  /** Derive the stylesheet URL from a bundle script URL. */
7
7
  export declare function inspectorStylesUrl(assetsUrl: string): string;
8
- /** True for the default jsDelivr `@mcp-use/inspector@*` CDN bundle URL. */
9
- export declare function isDefaultJsdelivrInspectorUrl(url: string): boolean;
10
- /** Append a per-request cache-bust query param for the default jsDelivr CDN URL. */
11
- export declare function withInspectorCacheBust(assetsUrl: string): string;
12
8
  export type InspectorAssetUrls = {
13
9
  jsUrl: string;
14
10
  cssUrl: string;
15
11
  useLocal: boolean;
12
+ resolveLatest: boolean;
16
13
  };
17
14
  export declare function resolveInspectorAssetUrls(inspectorMode: InspectorMode | undefined, basePath: string): InspectorAssetUrls;
18
15
  //# sourceMappingURL=asset-urls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-urls.d.ts","sourceRoot":"","sources":["../../src/server/asset-urls.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,eAAO,MAAM,yBAAyB,+EAAoG,CAAC;AAE3I,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GACf,kBAAkB,CA6CpB"}
1
+ {"version":3,"file":"asset-urls.d.ts","sourceRoot":"","sources":["../../src/server/asset-urls.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,eAAO,MAAM,yBAAyB,+EAAoG,CAAC;AAE3I,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAkDpB"}
@@ -2,16 +2,12 @@ import {
2
2
  DEFAULT_REMOTE_ASSETS_URL,
3
3
  JSDELIVR_INSPECTOR_TAG,
4
4
  inspectorStylesUrl,
5
- isDefaultJsdelivrInspectorUrl,
6
- resolveInspectorAssetUrls,
7
- withInspectorCacheBust
8
- } from "./chunk-H6ZCIKBS.js";
5
+ resolveInspectorAssetUrls
6
+ } from "./chunk-JZT7N2BJ.js";
9
7
  import "./chunk-PKBMQBKP.js";
10
8
  export {
11
9
  DEFAULT_REMOTE_ASSETS_URL,
12
10
  JSDELIVR_INSPECTOR_TAG,
13
11
  inspectorStylesUrl,
14
- isDefaultJsdelivrInspectorUrl,
15
- resolveInspectorAssetUrls,
16
- withInspectorCacheBust
12
+ resolveInspectorAssetUrls
17
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cdn-shell.d.ts","sourceRoot":"","sources":["../../src/server/cdn-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAQzB,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA+IF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE,cAAc,EACvB,QAAQ,GAAE,MAAW,QA2DtB"}
1
+ {"version":3,"file":"cdn-shell.d.ts","sourceRoot":"","sources":["../../src/server/cdn-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhF,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA0MF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE,cAAc,EACvB,QAAQ,GAAE,MAAW,QAqDtB"}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerInspectorCdnShell
3
- } from "./chunk-YAYRN4DW.js";
3
+ } from "./chunk-WNQGHIZ3.js";
4
4
  import "./chunk-M5TZA42I.js";
5
- import "./chunk-QQP554HG.js";
6
- import "./chunk-H6ZCIKBS.js";
5
+ import "./chunk-XKCUJ6ZJ.js";
6
+ import "./chunk-JZT7N2BJ.js";
7
7
  import "./chunk-J4FNYLBF.js";
8
8
  import "./chunk-WFT4JHYI.js";
9
9
  import "./chunk-PKBMQBKP.js";
@@ -4,21 +4,14 @@ var DEFAULT_REMOTE_ASSETS_URL = `https://cdn.jsdelivr.net/npm/@mcp-use/inspector
4
4
  function inspectorStylesUrl(assetsUrl) {
5
5
  return assetsUrl.replace(/\.js(?=$|[?#])/, ".css");
6
6
  }
7
- function isDefaultJsdelivrInspectorUrl(url) {
8
- return url.startsWith("https://cdn.jsdelivr.net/npm/@mcp-use/inspector@");
9
- }
10
- function withInspectorCacheBust(assetsUrl) {
11
- if (!isDefaultJsdelivrInspectorUrl(assetsUrl)) return assetsUrl;
12
- const sep = assetsUrl.includes("?") ? "&" : "?";
13
- return `${assetsUrl}${sep}cb=${crypto.randomUUID()}`;
14
- }
15
7
  function resolveInspectorAssetUrls(inspectorMode, basePath) {
16
8
  const envUrl = process.env.INSPECTOR_ASSETS_URL ?? process.env.MCP_USE_INSPECTOR_ASSETS_URL;
17
9
  if (envUrl) {
18
10
  return {
19
11
  jsUrl: envUrl,
20
12
  cssUrl: inspectorStylesUrl(envUrl),
21
- useLocal: false
13
+ useLocal: false,
14
+ resolveLatest: false
22
15
  };
23
16
  }
24
17
  const legacyBase = process.env.INSPECTOR_CDN_BASE;
@@ -28,13 +21,15 @@ function resolveInspectorAssetUrls(inspectorMode, basePath) {
28
21
  return {
29
22
  jsUrl: base,
30
23
  cssUrl: inspectorStylesUrl(base),
31
- useLocal: false
24
+ useLocal: false,
25
+ resolveLatest: false
32
26
  };
33
27
  }
34
28
  return {
35
29
  jsUrl: `${base}/inspector.js`,
36
30
  cssUrl: `${base}/inspector.css`,
37
- useLocal: false
31
+ useLocal: false,
32
+ resolveLatest: false
38
33
  };
39
34
  }
40
35
  if (inspectorMode === "standalone") {
@@ -42,14 +37,16 @@ function resolveInspectorAssetUrls(inspectorMode, basePath) {
42
37
  return {
43
38
  jsUrl: `${prefix}/dist/cdn/inspector.js`,
44
39
  cssUrl: `${prefix}/dist/cdn/inspector.css`,
45
- useLocal: true
40
+ useLocal: true,
41
+ resolveLatest: false
46
42
  };
47
43
  }
48
44
  const jsUrl = DEFAULT_REMOTE_ASSETS_URL;
49
45
  return {
50
46
  jsUrl,
51
47
  cssUrl: inspectorStylesUrl(jsUrl),
52
- useLocal: false
48
+ useLocal: false,
49
+ resolveLatest: true
53
50
  };
54
51
  }
55
52
 
@@ -57,7 +54,5 @@ export {
57
54
  JSDELIVR_INSPECTOR_TAG,
58
55
  DEFAULT_REMOTE_ASSETS_URL,
59
56
  inspectorStylesUrl,
60
- isDefaultJsdelivrInspectorUrl,
61
- withInspectorCacheBust,
62
57
  resolveInspectorAssetUrls
63
58
  };
@@ -3,12 +3,10 @@ import {
3
3
  } from "./chunk-M5TZA42I.js";
4
4
  import {
5
5
  getInspectorVersion
6
- } from "./chunk-QQP554HG.js";
6
+ } from "./chunk-XKCUJ6ZJ.js";
7
7
  import {
8
- inspectorStylesUrl,
9
- resolveInspectorAssetUrls,
10
- withInspectorCacheBust
11
- } from "./chunk-H6ZCIKBS.js";
8
+ resolveInspectorAssetUrls
9
+ } from "./chunk-JZT7N2BJ.js";
12
10
  import {
13
11
  registerInspectorFaviconStatic
14
12
  } from "./chunk-J4FNYLBF.js";
@@ -18,11 +16,60 @@ import {
18
16
 
19
17
  // src/server/cdn-shell.ts
20
18
  var INSPECTOR_VERSION = getInspectorVersion();
19
+ var INSPECTOR_VERSION_RESOLVER_URL = "https://data.jsdelivr.com/v1/packages/npm/@mcp-use/inspector/resolved?specifier=beta";
20
+ var INSPECTOR_CDN_PACKAGE_URL = "https://cdn.jsdelivr.net/npm/@mcp-use/inspector";
21
21
  var OAUTH_POPUP_CLOSED_HTML = `<!doctype html>
22
22
  <html lang="en"><head><meta charset="utf-8"><title>Signed in</title><meta name="robots" content="noindex"><style>html,body{margin:0;height:100%;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#4b5563;background:#fff}</style></head>
23
23
  <body><div>Signed in. You can close this window.</div>
24
24
  <script>try{if(window.opener&&!window.opener.closed)window.opener.postMessage({type:"manufact:oauth-complete"},"*")}catch(e){}try{window.close()}catch(e){}</script>
25
25
  </body></html>`;
26
+ function renderDefaultInspectorAssetLoader() {
27
+ return `<script type="module">
28
+ const resolverUrl = ${JSON.stringify(INSPECTOR_VERSION_RESOLVER_URL)};
29
+ const packageUrl = ${JSON.stringify(INSPECTOR_CDN_PACKAGE_URL)};
30
+ const versionPattern = /^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/;
31
+
32
+ try {
33
+ const controller = new AbortController();
34
+ const timeout = setTimeout(() => controller.abort(), 10_000);
35
+ let response;
36
+ try {
37
+ response = await fetch(resolverUrl, { signal: controller.signal });
38
+ } finally {
39
+ clearTimeout(timeout);
40
+ }
41
+ if (!response.ok) {
42
+ throw new Error(\`Inspector version resolver returned HTTP \${response.status}\`);
43
+ }
44
+
45
+ const resolved = await response.json();
46
+ if (
47
+ resolved?.name !== "@mcp-use/inspector" ||
48
+ typeof resolved.version !== "string" ||
49
+ !versionPattern.test(resolved.version)
50
+ ) {
51
+ throw new Error("Inspector version resolver returned an invalid release");
52
+ }
53
+
54
+ const version = resolved.version;
55
+ const assetBase = \`\${packageUrl}@\${version}/dist/cdn\`;
56
+ const stylesheet = document.createElement("link");
57
+ stylesheet.rel = "stylesheet";
58
+ stylesheet.href = \`\${assetBase}/inspector.css\`;
59
+ document.head.append(stylesheet);
60
+
61
+ window.__INSPECTOR_VERSION__ = version;
62
+ await import(\`\${assetBase}/inspector.js\`);
63
+ } catch (error) {
64
+ console.error("[Inspector] Failed to load the latest Inspector release:", error);
65
+ document.querySelector(".mcp-boot-spinner")?.remove();
66
+ const label = document.querySelector(".mcp-boot-label");
67
+ if (label) {
68
+ label.textContent = "Unable to load Inspector. Reload to try again.";
69
+ }
70
+ }
71
+ </script>`;
72
+ }
26
73
  function generateCdnShellHtml(config, basePath, assets) {
27
74
  const scripts = [];
28
75
  if (config?.basePath !== void 0) {
@@ -59,6 +106,10 @@ function generateCdnShellHtml(config, basePath, assets) {
59
106
  );
60
107
  }
61
108
  const runtimeScripts = scripts.join("\n ");
109
+ const assetPreconnects = assets.resolveLatest ? ` <link rel="preconnect" href="https://data.jsdelivr.com" crossorigin />
110
+ <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />` : "";
111
+ const stylesheetTag = assets.resolveLatest ? "" : ` <link rel="stylesheet" href="${assets.cssUrl}" />`;
112
+ const assetLoader = assets.resolveLatest ? renderDefaultInspectorAssetLoader() : `<script type="module" src="${assets.jsUrl}"></script>`;
62
113
  return `<!doctype html>
63
114
  <html lang="en">
64
115
  <head>
@@ -67,8 +118,9 @@ function generateCdnShellHtml(config, basePath, assets) {
67
118
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
68
119
  <link rel="preconnect" href="https://fonts.googleapis.com" />
69
120
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
121
+ ${assetPreconnects}
70
122
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet" />
71
- <link rel="stylesheet" href="${assets.cssUrl}" />
123
+ ${stylesheetTag}
72
124
  <title>Inspector | mcp-use</title>
73
125
  <meta name="description" content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser." />
74
126
  <style>
@@ -148,7 +200,7 @@ function generateCdnShellHtml(config, basePath, assets) {
148
200
  </div>
149
201
  </div>
150
202
  </div>
151
- <script type="module" src="${assets.jsUrl}"></script>
203
+ ${assetLoader}
152
204
  </body>
153
205
  </html>`;
154
206
  }
@@ -162,14 +214,8 @@ function registerInspectorCdnShell(app, config, basePath = "") {
162
214
  disableTelemetry: config?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
163
215
  };
164
216
  const serveShell = (c) => {
165
- const base = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
166
- const jsUrl = withInspectorCacheBust(base.jsUrl);
167
- return c.html(
168
- generateCdnShellHtml(effectiveConfig, basePath, {
169
- jsUrl,
170
- cssUrl: inspectorStylesUrl(jsUrl)
171
- })
172
- );
217
+ const assets2 = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
218
+ return c.html(generateCdnShellHtml(effectiveConfig, basePath, assets2));
173
219
  };
174
220
  registerInspectorFaviconStatic(app, basePath);
175
221
  app.get(
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  name: "@mcp-use/inspector",
4
4
  type: "module",
5
- version: "20.0.0-beta.12",
5
+ version: "20.0.0-beta.14",
6
6
  description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
7
7
  author: "",
8
8
  license: "MIT",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerInspectorCdnShell
3
- } from "./chunk-YAYRN4DW.js";
3
+ } from "./chunk-WNQGHIZ3.js";
4
4
  import {
5
5
  registerInspectorProxyRoutes
6
6
  } from "./chunk-UJLXHNQP.js";
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-KD7K27XK.js";
6
6
  import {
7
7
  registerInspectorCdnShell
8
- } from "./chunk-YAYRN4DW.js";
8
+ } from "./chunk-WNQGHIZ3.js";
9
9
  import "./chunk-M5TZA42I.js";
10
10
  import {
11
11
  getInspectorVersion
12
- } from "./chunk-QQP554HG.js";
13
- import "./chunk-H6ZCIKBS.js";
12
+ } from "./chunk-XKCUJ6ZJ.js";
13
+ import "./chunk-JZT7N2BJ.js";
14
14
  import {
15
15
  registerInspectorProxyRoutes
16
16
  } from "./chunk-UJLXHNQP.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  mountInspector
3
- } from "./chunk-2XQWLYOZ.js";
3
+ } from "./chunk-ZPGABKXL.js";
4
4
  import {
5
5
  registerInspectorCdnShell
6
- } from "./chunk-YAYRN4DW.js";
6
+ } from "./chunk-WNQGHIZ3.js";
7
7
  import "./chunk-M5TZA42I.js";
8
- import "./chunk-QQP554HG.js";
9
- import "./chunk-H6ZCIKBS.js";
8
+ import "./chunk-XKCUJ6ZJ.js";
9
+ import "./chunk-JZT7N2BJ.js";
10
10
  import {
11
11
  registerInspectorProxyRoutes
12
12
  } from "./chunk-UJLXHNQP.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  mountInspector
3
- } from "./chunk-2XQWLYOZ.js";
4
- import "./chunk-YAYRN4DW.js";
3
+ } from "./chunk-ZPGABKXL.js";
4
+ import "./chunk-WNQGHIZ3.js";
5
5
  import "./chunk-M5TZA42I.js";
6
- import "./chunk-QQP554HG.js";
7
- import "./chunk-H6ZCIKBS.js";
6
+ import "./chunk-XKCUJ6ZJ.js";
7
+ import "./chunk-JZT7N2BJ.js";
8
8
  import "./chunk-UJLXHNQP.js";
9
9
  import "./chunk-IKTZUWSX.js";
10
10
  import "./chunk-XCNS5CIW.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  VERSION,
3
3
  getInspectorVersion
4
- } from "./chunk-QQP554HG.js";
4
+ } from "./chunk-XKCUJ6ZJ.js";
5
5
  import "./chunk-PKBMQBKP.js";
6
6
  export {
7
7
  VERSION,