mcp-use 1.10.0-canary.2 → 1.10.0-canary.3

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 (72) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{chunk-QREDNTLS.js → chunk-F5MMLHUR.js} +1 -1
  3. package/dist/{chunk-Q3PFK7Y4.js → chunk-L6P6GBCW.js} +3 -2
  4. package/dist/{chunk-ZQUCGISK.js → chunk-LTA4LQTH.js} +6 -4
  5. package/dist/{chunk-HRWL2M2I.js → chunk-QBTQXCAI.js} +1 -1
  6. package/dist/{chunk-BFFS67JY.js → chunk-VPHP7ERH.js} +18 -9
  7. package/dist/{chunk-U5BX3ISQ.js → chunk-YMJL66MY.js} +10 -6
  8. package/dist/index.cjs +36 -20
  9. package/dist/index.js +13 -12
  10. package/dist/src/agents/index.cjs +10 -6
  11. package/dist/src/agents/index.js +3 -3
  12. package/dist/src/agents/mcp_agent.d.ts.map +1 -1
  13. package/dist/src/browser.cjs +16 -10
  14. package/dist/src/browser.js +7 -7
  15. package/dist/src/client/prompts.js +2 -2
  16. package/dist/src/connectors/base.d.ts +2 -2
  17. package/dist/src/connectors/base.d.ts.map +1 -1
  18. package/dist/src/oauth-helper.d.ts.map +1 -1
  19. package/dist/src/react/WidgetControls.d.ts.map +1 -1
  20. package/dist/src/react/index.cjs +23 -12
  21. package/dist/src/react/index.js +4 -4
  22. package/dist/src/react/useMcp.d.ts.map +1 -1
  23. package/dist/src/server/endpoints/mount-mcp.d.ts +4 -1
  24. package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -1
  25. package/dist/src/server/index.cjs +118 -81
  26. package/dist/src/server/index.js +119 -83
  27. package/dist/src/server/mcp-server.d.ts +2 -1
  28. package/dist/src/server/mcp-server.d.ts.map +1 -1
  29. package/dist/src/server/oauth/middleware.d.ts.map +1 -1
  30. package/dist/src/server/oauth/providers/auth0.d.ts +1 -1
  31. package/dist/src/server/oauth/providers/auth0.d.ts.map +1 -1
  32. package/dist/src/server/oauth/providers/custom.d.ts +4 -2
  33. package/dist/src/server/oauth/providers/custom.d.ts.map +1 -1
  34. package/dist/src/server/oauth/providers/keycloak.d.ts +1 -1
  35. package/dist/src/server/oauth/providers/keycloak.d.ts.map +1 -1
  36. package/dist/src/server/oauth/providers/supabase.d.ts +1 -1
  37. package/dist/src/server/oauth/providers/supabase.d.ts.map +1 -1
  38. package/dist/src/server/oauth/providers/types.d.ts +9 -5
  39. package/dist/src/server/oauth/providers/types.d.ts.map +1 -1
  40. package/dist/src/server/oauth/setup.d.ts +5 -4
  41. package/dist/src/server/oauth/setup.d.ts.map +1 -1
  42. package/dist/src/server/oauth/utils.d.ts +3 -2
  43. package/dist/src/server/oauth/utils.d.ts.map +1 -1
  44. package/dist/src/server/prompts/index.d.ts +5 -4
  45. package/dist/src/server/prompts/index.d.ts.map +1 -1
  46. package/dist/src/server/resources/index.d.ts +1 -1
  47. package/dist/src/server/resources/index.d.ts.map +1 -1
  48. package/dist/src/server/sessions/session-manager.d.ts +10 -6
  49. package/dist/src/server/sessions/session-manager.d.ts.map +1 -1
  50. package/dist/src/server/tools/tool-execution-helpers.d.ts +30 -7
  51. package/dist/src/server/tools/tool-execution-helpers.d.ts.map +1 -1
  52. package/dist/src/server/tools/tool-registration.d.ts +21 -7
  53. package/dist/src/server/tools/tool-registration.d.ts.map +1 -1
  54. package/dist/src/server/types/common.d.ts +1 -1
  55. package/dist/src/server/types/common.d.ts.map +1 -1
  56. package/dist/src/server/types/resource.d.ts +1 -1
  57. package/dist/src/server/types/resource.d.ts.map +1 -1
  58. package/dist/src/server/types/widget.d.ts +2 -1
  59. package/dist/src/server/types/widget.d.ts.map +1 -1
  60. package/dist/src/server/widgets/index.d.ts +1 -1
  61. package/dist/src/server/widgets/index.d.ts.map +1 -1
  62. package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -1
  63. package/dist/src/server/widgets/ui-resource-registration.d.ts +11 -25
  64. package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -1
  65. package/dist/src/server/widgets/widget-helpers.d.ts +11 -6
  66. package/dist/src/server/widgets/widget-helpers.d.ts.map +1 -1
  67. package/dist/src/server/widgets/widget-types.d.ts +3 -3
  68. package/dist/src/server/widgets/widget-types.d.ts.map +1 -1
  69. package/dist/src/session.d.ts +1 -1
  70. package/dist/src/session.d.ts.map +1 -1
  71. package/dist/{tool-execution-helpers-RRMGLAHR.js → tool-execution-helpers-2LGVSS7L.js} +1 -1
  72. package/package.json +3 -3
@@ -7,7 +7,7 @@ import {
7
7
  createEnhancedContext,
8
8
  findSessionContext,
9
9
  isValidLogLevel
10
- } from "../../chunk-Q3PFK7Y4.js";
10
+ } from "../../chunk-L6P6GBCW.js";
11
11
  import {
12
12
  convertToolResultToResourceResult
13
13
  } from "../../chunk-362PI25Z.js";
@@ -1587,25 +1587,25 @@ function setupWidgetRoutes(app, serverConfig) {
1587
1587
  __name(setupWidgetRoutes, "setupWidgetRoutes");
1588
1588
 
1589
1589
  // src/server/widgets/ui-resource-registration.ts
1590
- function uiResourceRegistration(definition) {
1590
+ function uiResourceRegistration(server, definition) {
1591
1591
  const displayName = definition.title || definition.name;
1592
1592
  let resourceUri;
1593
1593
  let mimeType;
1594
1594
  switch (definition.type) {
1595
1595
  case "externalUrl":
1596
- resourceUri = generateWidgetUri(definition.widget, this.buildId);
1596
+ resourceUri = generateWidgetUri(definition.widget, server.buildId);
1597
1597
  mimeType = "text/uri-list";
1598
1598
  break;
1599
1599
  case "rawHtml":
1600
- resourceUri = generateWidgetUri(definition.name, this.buildId);
1600
+ resourceUri = generateWidgetUri(definition.name, server.buildId);
1601
1601
  mimeType = "text/html";
1602
1602
  break;
1603
1603
  case "remoteDom":
1604
- resourceUri = generateWidgetUri(definition.name, this.buildId);
1604
+ resourceUri = generateWidgetUri(definition.name, server.buildId);
1605
1605
  mimeType = "application/vnd.mcp-ui.remote-dom+javascript";
1606
1606
  break;
1607
1607
  case "appsSdk":
1608
- resourceUri = generateWidgetUri(definition.name, this.buildId, ".html");
1608
+ resourceUri = generateWidgetUri(definition.name, server.buildId, ".html");
1609
1609
  mimeType = "text/html+skybridge";
1610
1610
  break;
1611
1611
  default:
@@ -1614,12 +1614,12 @@ function uiResourceRegistration(definition) {
1614
1614
  );
1615
1615
  }
1616
1616
  const serverConfig = {
1617
- serverHost: this.serverHost,
1618
- serverPort: this.serverPort || 3e3,
1619
- serverBaseUrl: this.serverBaseUrl,
1620
- buildId: this.buildId
1617
+ serverHost: server.serverHost,
1618
+ serverPort: server.serverPort || 3e3,
1619
+ serverBaseUrl: server.serverBaseUrl,
1620
+ buildId: server.buildId
1621
1621
  };
1622
- this.resource({
1622
+ server.resource({
1623
1623
  name: definition.name,
1624
1624
  uri: resourceUri,
1625
1625
  title: definition.title,
@@ -1641,9 +1641,9 @@ function uiResourceRegistration(definition) {
1641
1641
  }, "readCallback")
1642
1642
  });
1643
1643
  if (definition.type === "appsSdk") {
1644
- const buildIdPart = this.buildId ? `-${this.buildId}` : "";
1644
+ const buildIdPart = server.buildId ? `-${server.buildId}` : "";
1645
1645
  const uriTemplate = `ui://widget/${definition.name}${buildIdPart}-{id}.html`;
1646
- this.resourceTemplate({
1646
+ server.resourceTemplate({
1647
1647
  name: `${definition.name}-dynamic`,
1648
1648
  resourceTemplate: {
1649
1649
  uriTemplate,
@@ -1683,13 +1683,15 @@ function uiResourceRegistration(definition) {
1683
1683
  }
1684
1684
  }
1685
1685
  }
1686
- this.tool({
1687
- name: definition.name,
1688
- title: definition.title,
1689
- description: definition.description,
1690
- inputs: convertPropsToInputs(definition.props),
1691
- _meta: Object.keys(toolMetadata).length > 0 ? toolMetadata : void 0,
1692
- cb: /* @__PURE__ */ __name(async (params) => {
1686
+ server.tool(
1687
+ {
1688
+ name: definition.name,
1689
+ title: definition.title,
1690
+ description: definition.description,
1691
+ inputs: convertPropsToInputs(definition.props),
1692
+ _meta: Object.keys(toolMetadata).length > 0 ? toolMetadata : void 0
1693
+ },
1694
+ async (params) => {
1693
1695
  const uiResource = await createWidgetUIResource(
1694
1696
  definition,
1695
1697
  params,
@@ -1699,7 +1701,7 @@ function uiResourceRegistration(definition) {
1699
1701
  const randomId = Math.random().toString(36).substring(2, 15);
1700
1702
  const uniqueUri = generateWidgetUri(
1701
1703
  definition.name,
1702
- this.buildId,
1704
+ server.buildId,
1703
1705
  ".html",
1704
1706
  randomId
1705
1707
  );
@@ -1729,9 +1731,9 @@ function uiResourceRegistration(definition) {
1729
1731
  uiResource
1730
1732
  ]
1731
1733
  };
1732
- }, "cb")
1733
- });
1734
- return this;
1734
+ }
1735
+ );
1736
+ return server;
1735
1737
  }
1736
1738
  __name(uiResourceRegistration, "uiResourceRegistration");
1737
1739
 
@@ -2059,7 +2061,7 @@ function registerResource(resourceDefinition, callback) {
2059
2061
  const explicitMimeType = resourceDefinition.mimeType;
2060
2062
  const wrappedCallback = /* @__PURE__ */ __name(async () => {
2061
2063
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2062
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-RRMGLAHR.js");
2064
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-2LGVSS7L.js");
2063
2065
  const initialRequestContext = getRequestContext2();
2064
2066
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2065
2067
  const { requestContext } = findSessionContext2(
@@ -2137,7 +2139,7 @@ function registerResourceTemplate(resourceTemplateDefinition, callback) {
2137
2139
  async (uri) => {
2138
2140
  const params = this.parseTemplateUri(uriTemplate, uri.toString());
2139
2141
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2140
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-RRMGLAHR.js");
2142
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-2LGVSS7L.js");
2141
2143
  const initialRequestContext = getRequestContext2();
2142
2144
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2143
2145
  const { requestContext } = findSessionContext2(
@@ -2192,7 +2194,7 @@ function registerPrompt(promptDefinition, callback) {
2192
2194
  }
2193
2195
  const wrappedCallback = /* @__PURE__ */ __name(async (params, extra) => {
2194
2196
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2195
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-RRMGLAHR.js");
2197
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-2LGVSS7L.js");
2196
2198
  const initialRequestContext = getRequestContext2();
2197
2199
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2198
2200
  const { requestContext } = findSessionContext2(
@@ -2780,12 +2782,13 @@ function createBearerAuthMiddleware(provider, baseUrl) {
2780
2782
  const result = await provider.verifyToken(token);
2781
2783
  const payload = result.payload;
2782
2784
  const user = provider.getUserInfo(payload);
2785
+ const scope = payload.scope;
2783
2786
  const authInfo = {
2784
2787
  user,
2785
2788
  payload,
2786
2789
  accessToken: token,
2787
2790
  // Extract scopes from scope claim (OAuth standard)
2788
- scopes: payload.scope ? payload.scope.split(" ") : [],
2791
+ scopes: scope ? scope.split(" ") : [],
2789
2792
  // Extract permissions (Auth0 style, or custom)
2790
2793
  permissions: payload.permissions || []
2791
2794
  };
@@ -2940,37 +2943,56 @@ var MCPServer = class {
2940
2943
  const self = this;
2941
2944
  this.tool = ((toolDefinition, callback) => {
2942
2945
  const actualCallback = callback || toolDefinition.cb;
2943
- self.registrationRecipes.tools.set(toolDefinition.name, {
2944
- config: toolDefinition,
2945
- handler: actualCallback
2946
- });
2946
+ if (actualCallback) {
2947
+ self.registrationRecipes.tools.set(toolDefinition.name, {
2948
+ config: toolDefinition,
2949
+ handler: actualCallback
2950
+ });
2951
+ }
2947
2952
  return originalTool.call(self, toolDefinition, callback);
2948
2953
  });
2949
- this.prompt = function(promptDefinition, callback) {
2954
+ this.prompt = ((promptDefinition, callback) => {
2950
2955
  const actualCallback = callback || promptDefinition.cb;
2951
- self.registrationRecipes.prompts.set(promptDefinition.name, {
2952
- config: promptDefinition,
2953
- handler: actualCallback
2954
- });
2955
- return originalPrompt.call(self, promptDefinition, callback);
2956
- };
2957
- this.resource = function(resourceDefinition, callback) {
2956
+ if (actualCallback) {
2957
+ self.registrationRecipes.prompts.set(promptDefinition.name, {
2958
+ config: promptDefinition,
2959
+ handler: actualCallback
2960
+ });
2961
+ }
2962
+ return originalPrompt.call(
2963
+ self,
2964
+ promptDefinition,
2965
+ callback
2966
+ );
2967
+ });
2968
+ this.resource = ((resourceDefinition, callback) => {
2958
2969
  const actualCallback = callback || resourceDefinition.readCallback;
2959
- const resourceKey = `${resourceDefinition.name}:${resourceDefinition.uri}`;
2960
- self.registrationRecipes.resources.set(resourceKey, {
2961
- config: resourceDefinition,
2962
- handler: actualCallback
2963
- });
2970
+ if (actualCallback) {
2971
+ const resourceKey = `${resourceDefinition.name}:${resourceDefinition.uri}`;
2972
+ self.registrationRecipes.resources.set(resourceKey, {
2973
+ config: resourceDefinition,
2974
+ handler: actualCallback
2975
+ });
2976
+ }
2964
2977
  return originalResource.call(self, resourceDefinition, callback);
2965
- };
2966
- this.resourceTemplate = function(templateDefinition, callback) {
2978
+ });
2979
+ this.resourceTemplate = ((templateDefinition, callback) => {
2967
2980
  const actualCallback = callback || templateDefinition.readCallback;
2968
- self.registrationRecipes.resourceTemplates.set(templateDefinition.name, {
2969
- config: templateDefinition,
2970
- handler: actualCallback
2971
- });
2972
- return originalResourceTemplate.call(self, templateDefinition, callback);
2973
- };
2981
+ if (actualCallback) {
2982
+ self.registrationRecipes.resourceTemplates.set(
2983
+ templateDefinition.name,
2984
+ {
2985
+ config: templateDefinition,
2986
+ handler: actualCallback
2987
+ }
2988
+ );
2989
+ }
2990
+ return originalResourceTemplate.call(
2991
+ self,
2992
+ templateDefinition,
2993
+ callback
2994
+ );
2995
+ });
2974
2996
  }
2975
2997
  /**
2976
2998
  * Create a new server instance for a session following official SDK pattern.
@@ -3028,11 +3050,12 @@ var MCPServer = class {
3028
3050
  console.log("[createMessage] Got result successfully");
3029
3051
  return result;
3030
3052
  } catch (err) {
3053
+ const error2 = err;
3031
3054
  console.error(
3032
3055
  "[createMessage] Error:",
3033
- err.message,
3056
+ error2.message,
3034
3057
  "Code:",
3035
- err.code
3058
+ error2.code
3036
3059
  );
3037
3060
  throw err;
3038
3061
  }
@@ -3081,8 +3104,8 @@ var MCPServer = class {
3081
3104
  } else {
3082
3105
  argsSchema = void 0;
3083
3106
  }
3084
- const wrappedHandler = /* @__PURE__ */ __name(async (params) => {
3085
- const result = await handler(params);
3107
+ const wrappedHandler = /* @__PURE__ */ __name(async (params, extra) => {
3108
+ const result = await handler(params, extra);
3086
3109
  if ("messages" in result && Array.isArray(result.messages)) {
3087
3110
  return result;
3088
3111
  }
@@ -3101,8 +3124,8 @@ var MCPServer = class {
3101
3124
  }
3102
3125
  for (const [_key, recipe] of this.registrationRecipes.resources) {
3103
3126
  const { config, handler } = recipe;
3104
- const wrappedHandler = /* @__PURE__ */ __name(async () => {
3105
- const result = await handler();
3127
+ const wrappedHandler = /* @__PURE__ */ __name(async (extra) => {
3128
+ const result = await handler(extra);
3106
3129
  if ("contents" in result && Array.isArray(result.contents)) {
3107
3130
  return result;
3108
3131
  }
@@ -3147,20 +3170,23 @@ var MCPServer = class {
3147
3170
  config.name,
3148
3171
  template,
3149
3172
  metadata,
3150
- async (uri) => {
3173
+ async (uri, extra) => {
3151
3174
  const params = this.parseTemplateUri(uriTemplate, uri.toString());
3152
- const result = await handler(uri, params);
3175
+ const result = await handler(uri, params, extra);
3153
3176
  if ("contents" in result && Array.isArray(result.contents)) {
3154
3177
  return result;
3155
3178
  }
3156
3179
  const { convertToolResultToResourceResult: convertToolResultToResourceResult2 } = await import("../../conversion-5MA4VY3B.js");
3157
- return convertToolResultToResourceResult2(uri.toString(), result);
3180
+ return convertToolResultToResourceResult2(
3181
+ uri.toString(),
3182
+ result
3183
+ );
3158
3184
  }
3159
3185
  );
3160
3186
  }
3161
3187
  newServer.server.setRequestHandler(
3162
3188
  z2.object({ method: z2.literal("logging/setLevel") }).passthrough(),
3163
- async (request) => {
3189
+ (async (request, extra) => {
3164
3190
  const level = request.params?.level;
3165
3191
  if (!level) {
3166
3192
  throw new McpError(
@@ -3199,7 +3225,7 @@ var MCPServer = class {
3199
3225
  "[MCP] Could not find session for logging/setLevel request"
3200
3226
  );
3201
3227
  throw new McpError(ErrorCode.InternalError, "Could not find session");
3202
- }
3228
+ })
3203
3229
  );
3204
3230
  this.subscriptionManager.registerHandlers(newServer, this.sessions);
3205
3231
  return newServer;
@@ -3249,7 +3275,9 @@ var MCPServer = class {
3249
3275
  async notifyResourceUpdated(uri) {
3250
3276
  return this.subscriptionManager.notifyResourceUpdated(uri, this.sessions);
3251
3277
  }
3252
- uiResource = uiResourceRegistration;
3278
+ uiResource = /* @__PURE__ */ __name((definition) => {
3279
+ return uiResourceRegistration(this, definition);
3280
+ }, "uiResource");
3253
3281
  /**
3254
3282
  * Mount MCP server endpoints at /mcp and /sse
3255
3283
  *
@@ -3337,7 +3365,7 @@ var MCPServer = class {
3337
3365
  this.serverHost,
3338
3366
  this.serverPort
3339
3367
  );
3340
- if (this.oauthConfig && !this.oauthSetupState.complete) {
3368
+ if (this.oauthConfig && !this.oauthSetupState.complete && this.oauthProvider) {
3341
3369
  await setupOAuthForServer(
3342
3370
  this.app,
3343
3371
  this.oauthProvider,
@@ -3390,7 +3418,7 @@ var MCPServer = class {
3390
3418
  * ```
3391
3419
  */
3392
3420
  async getHandler(options) {
3393
- if (this.oauthConfig && !this.oauthSetupState.complete) {
3421
+ if (this.oauthConfig && !this.oauthSetupState.complete && this.oauthProvider) {
3394
3422
  await setupOAuthForServer(
3395
3423
  this.app,
3396
3424
  this.oauthProvider,
@@ -3545,12 +3573,13 @@ var SupabaseOAuthProvider = class {
3545
3573
  }
3546
3574
  }
3547
3575
  getUserInfo(payload) {
3576
+ const userMetadata = payload.user_metadata;
3548
3577
  return {
3549
3578
  userId: payload.sub || payload.user_id,
3550
3579
  email: payload.email,
3551
- name: payload.user_metadata?.name || payload.user_metadata?.full_name,
3552
- username: payload.user_metadata?.username,
3553
- picture: payload.user_metadata?.avatar_url,
3580
+ name: userMetadata?.name || userMetadata?.full_name,
3581
+ username: userMetadata?.username,
3582
+ picture: userMetadata?.avatar_url,
3554
3583
  roles: payload.role ? [payload.role] : [],
3555
3584
  permissions: payload.aal ? [`aal:${payload.aal}`] : [],
3556
3585
  // Include Supabase-specific claims
@@ -3623,6 +3652,7 @@ var Auth0OAuthProvider = class {
3623
3652
  }
3624
3653
  }
3625
3654
  getUserInfo(payload) {
3655
+ const scope = payload.scope;
3626
3656
  return {
3627
3657
  userId: payload.sub,
3628
3658
  email: payload.email,
@@ -3635,7 +3665,7 @@ var Auth0OAuthProvider = class {
3635
3665
  // Auth0 can include roles (if configured)
3636
3666
  roles: payload.roles || payload["https://your-app.com/roles"] || [],
3637
3667
  // Include scope as well
3638
- scopes: payload.scope ? payload.scope.split(" ") : [],
3668
+ scopes: scope ? scope.split(" ") : [],
3639
3669
  // Additional Auth0-specific claims
3640
3670
  email_verified: payload.email_verified,
3641
3671
  updated_at: payload.updated_at
@@ -3707,8 +3737,10 @@ var KeycloakOAuthProvider = class {
3707
3737
  }
3708
3738
  }
3709
3739
  getUserInfo(payload) {
3710
- const realmRoles = payload.realm_access?.roles || [];
3711
- const clientRoles = this.config.clientId && payload.resource_access?.[this.config.clientId]?.roles || [];
3740
+ const realmAccess = payload.realm_access;
3741
+ const realmRoles = realmAccess?.roles || [];
3742
+ const resourceAccess = payload.resource_access;
3743
+ const clientRoles = this.config.clientId && (resourceAccess?.[this.config.clientId]?.roles || []) || [];
3712
3744
  const allRoles = [...realmRoles, ...clientRoles];
3713
3745
  const permissions = [];
3714
3746
  if (payload.resource_access) {
@@ -3722,6 +3754,7 @@ var KeycloakOAuthProvider = class {
3722
3754
  }
3723
3755
  );
3724
3756
  }
3757
+ const scope = payload.scope;
3725
3758
  return {
3726
3759
  userId: payload.sub,
3727
3760
  email: payload.email,
@@ -3732,7 +3765,7 @@ var KeycloakOAuthProvider = class {
3732
3765
  roles: allRoles,
3733
3766
  permissions,
3734
3767
  // Include scope as well
3735
- scopes: payload.scope ? payload.scope.split(" ") : [],
3768
+ scopes: scope ? scope.split(" ") : [],
3736
3769
  // Keycloak-specific claims
3737
3770
  email_verified: payload.email_verified,
3738
3771
  given_name: payload.given_name,
@@ -3861,7 +3894,7 @@ var CustomOAuthProvider = class {
3861
3894
  async verifyToken(token) {
3862
3895
  try {
3863
3896
  const result = await this.config.verifyToken(token);
3864
- return { payload: result };
3897
+ return result;
3865
3898
  } catch (error2) {
3866
3899
  throw new Error(`Custom OAuth verification failed: ${error2}`);
3867
3900
  }
@@ -3870,16 +3903,19 @@ var CustomOAuthProvider = class {
3870
3903
  if (this.config.getUserInfo) {
3871
3904
  return this.config.getUserInfo(payload);
3872
3905
  }
3906
+ const scope = payload.scope;
3907
+ const roles = payload.roles;
3908
+ const permissions = payload.permissions;
3873
3909
  return {
3874
3910
  userId: payload.sub || payload.user_id || payload.id,
3875
- email: payload.email,
3876
- name: payload.name,
3877
- username: payload.username || payload.preferred_username,
3878
- nickname: payload.nickname,
3879
- picture: payload.picture || payload.avatar_url,
3880
- roles: payload.roles || [],
3881
- permissions: payload.permissions || [],
3882
- scopes: payload.scope ? payload.scope.split(" ") : []
3911
+ email: payload.email ? payload.email : void 0,
3912
+ name: payload.name ? payload.name : void 0,
3913
+ username: payload.username || payload.preferred_username ? payload.username || payload.preferred_username : void 0,
3914
+ nickname: payload.nickname ? payload.nickname : void 0,
3915
+ picture: payload.picture || payload.avatar_url ? payload.picture || payload.avatar_url : void 0,
3916
+ roles: Array.isArray(roles) ? roles : [],
3917
+ permissions: Array.isArray(permissions) ? permissions : [],
3918
+ scopes: scope ? scope.split(" ") : []
3883
3919
  };
3884
3920
  }
3885
3921
  getIssuer() {
@@ -1,6 +1,7 @@
1
1
  import { McpServer as OfficialMcpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { CreateMessageRequest, CreateMessageResult } from "@modelcontextprotocol/sdk/types.js";
3
3
  import type { Hono as HonoType } from "hono";
4
+ import { uiResourceRegistration } from "./widgets/index.js";
4
5
  import { toolRegistration, convertZodSchemaToParams, createParamsSchema } from "./tools/index.js";
5
6
  import { registerResource, registerResourceTemplate } from "./resources/index.js";
6
7
  import { registerPrompt } from "./prompts/index.js";
@@ -107,7 +108,7 @@ export declare class MCPServer {
107
108
  * ```
108
109
  */
109
110
  notifyResourceUpdated(uri: string): Promise<void>;
110
- uiResource: any;
111
+ uiResource: (definition: Parameters<typeof uiResourceRegistration>[1]) => this;
111
112
  /**
112
113
  * Mount MCP server endpoints at /mcp and /sse
113
114
  *
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/server/oauth/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,MAAM,IAEF,GAAG,OAAO,EAAE,MAAM,IAAI;;8BAyErC"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/server/oauth/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,MAAM,IAEF,GAAG,OAAO,EAAE,MAAM,IAAI;;8BA0ErC"}
@@ -12,7 +12,7 @@ export declare class Auth0OAuthProvider implements OAuthProvider {
12
12
  constructor(config: Auth0OAuthConfig);
13
13
  private getJWKS;
14
14
  verifyToken(token: string): Promise<any>;
15
- getUserInfo(payload: any): UserInfo;
15
+ getUserInfo(payload: Record<string, unknown>): UserInfo;
16
16
  getIssuer(): string;
17
17
  getAuthEndpoint(): string;
18
18
  getTokenEndpoint(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth0.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/auth0.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5E,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,gBAAgB;IAKpC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA4B9C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;IAoBnC,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
1
+ {"version":3,"file":"auth0.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/auth0.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5E,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,gBAAgB;IAKpC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA4B9C,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAwBvD,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
@@ -8,8 +8,10 @@ import type { OAuthProvider, UserInfo, CustomOAuthConfig } from "./types.js";
8
8
  export declare class CustomOAuthProvider implements OAuthProvider {
9
9
  private config;
10
10
  constructor(config: CustomOAuthConfig);
11
- verifyToken(token: string): Promise<any>;
12
- getUserInfo(payload: any): UserInfo;
11
+ verifyToken(token: string): Promise<{
12
+ payload: Record<string, unknown>;
13
+ }>;
14
+ getUserInfo(payload: Record<string, unknown>): UserInfo;
13
15
  getIssuer(): string;
14
16
  getAuthEndpoint(): string;
15
17
  getTokenEndpoint(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/custom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7E,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;IAoBnC,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAKnC"}
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/custom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7E,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,WAAW,CACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAShD,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IA6BvD,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAKnC"}
@@ -12,7 +12,7 @@ export declare class KeycloakOAuthProvider implements OAuthProvider {
12
12
  constructor(config: KeycloakOAuthConfig);
13
13
  private getJWKS;
14
14
  verifyToken(token: string): Promise<any>;
15
- getUserInfo(payload: any): UserInfo;
15
+ getUserInfo(payload: Record<string, unknown>): UserInfo;
16
16
  getIssuer(): string;
17
17
  getAuthEndpoint(): string;
18
18
  getTokenEndpoint(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"keycloak.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/keycloak.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,mBAAmB;IAOvC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgC9C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;IA+CnC,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
1
+ {"version":3,"file":"keycloak.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/keycloak.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,mBAAmB;IAOvC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgC9C,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAsDvD,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
@@ -14,7 +14,7 @@ export declare class SupabaseOAuthProvider implements OAuthProvider {
14
14
  constructor(config: SupabaseOAuthConfig);
15
15
  private getJWKS;
16
16
  verifyToken(token: string): Promise<any>;
17
- getUserInfo(payload: any): UserInfo;
17
+ getUserInfo(payload: Record<string, unknown>): UserInfo;
18
18
  getIssuer(): string;
19
19
  getAuthEndpoint(): string;
20
20
  getTokenEndpoint(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,mBAAmB;IAOvC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+C9C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;IAgBnC,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/E,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAsD;gBAEtD,MAAM,EAAE,mBAAmB;IAOvC,OAAO,CAAC,OAAO;IAST,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+C9C,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAqBvD,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
@@ -15,13 +15,15 @@ export interface OAuthProvider {
15
15
  * @returns The decoded and verified token payload
16
16
  * @throws Error if token is invalid or verification fails
17
17
  */
18
- verifyToken(token: string): Promise<any>;
18
+ verifyToken(token: string): Promise<{
19
+ payload: Record<string, unknown>;
20
+ }>;
19
21
  /**
20
22
  * Extract user information from a verified token payload
21
23
  * @param payload - The verified JWT payload
22
24
  * @returns User information object
23
25
  */
24
- getUserInfo(payload: any): UserInfo;
26
+ getUserInfo(payload: Record<string, unknown>): UserInfo;
25
27
  /**
26
28
  * Get the OAuth issuer URL
27
29
  * @returns The issuer URL for this provider
@@ -71,7 +73,7 @@ export interface UserInfo {
71
73
  picture?: string;
72
74
  roles?: string[];
73
75
  permissions?: string[];
74
- [key: string]: any;
76
+ [key: string]: unknown;
75
77
  }
76
78
  /**
77
79
  * Base configuration for all OAuth providers
@@ -128,8 +130,10 @@ export interface CustomOAuthConfig extends BaseOAuthConfig {
128
130
  tokenEndpoint: string;
129
131
  scopesSupported?: string[];
130
132
  grantTypesSupported?: string[];
131
- verifyToken: (token: string) => Promise<any>;
132
- getUserInfo?: (payload: any) => UserInfo;
133
+ verifyToken: (token: string) => Promise<{
134
+ payload: Record<string, unknown>;
135
+ }>;
136
+ getUserInfo?: (payload: Record<string, unknown>) => UserInfo;
133
137
  }
134
138
  /**
135
139
  * Union type of all OAuth provider configurations
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/oauth/providers/types.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,14 @@
3
3
  *
4
4
  * Handles OAuth provider initialization and configuration for MCP servers.
5
5
  */
6
- import type { Hono as HonoType } from "hono";
6
+ import type { Hono as HonoType, Context, Next } from "hono";
7
+ import type { OAuthProvider } from "./providers/types.js";
7
8
  /**
8
9
  * OAuth setup state
9
10
  */
10
11
  export interface OAuthSetupState {
11
- provider?: any;
12
- middleware?: any;
12
+ provider?: OAuthProvider;
13
+ middleware?: (c: Context, next: Next) => Promise<Response | void>;
13
14
  complete: boolean;
14
15
  }
15
16
  /**
@@ -24,5 +25,5 @@ export interface OAuthSetupState {
24
25
  * @param state - OAuth setup state to track completion
25
26
  * @returns Updated OAuth setup state with provider and middleware
26
27
  */
27
- export declare function setupOAuthForServer(app: HonoType, oauthProvider: any, baseUrl: string, state: OAuthSetupState): Promise<OAuthSetupState>;
28
+ export declare function setupOAuthForServer(app: HonoType, oauthProvider: OAuthProvider, baseUrl: string, state: OAuthSetupState): Promise<OAuthSetupState>;
28
29
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/server/oauth/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,eAAe,CAAC,CAkC1B"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/server/oauth/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAClE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,eAAe,CAAC,CAkC1B"}