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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{chunk-QREDNTLS.js → chunk-F5MMLHUR.js} +1 -1
- package/dist/{chunk-Q3PFK7Y4.js → chunk-L6P6GBCW.js} +3 -2
- package/dist/{chunk-ZQUCGISK.js → chunk-LTA4LQTH.js} +6 -4
- package/dist/{chunk-HRWL2M2I.js → chunk-QBTQXCAI.js} +1 -1
- package/dist/{chunk-BFFS67JY.js → chunk-VPHP7ERH.js} +18 -9
- package/dist/{chunk-U5BX3ISQ.js → chunk-YMJL66MY.js} +10 -6
- package/dist/index.cjs +36 -20
- package/dist/index.js +13 -12
- package/dist/src/agents/index.cjs +10 -6
- package/dist/src/agents/index.js +3 -3
- package/dist/src/agents/mcp_agent.d.ts.map +1 -1
- package/dist/src/browser.cjs +16 -10
- package/dist/src/browser.js +7 -7
- package/dist/src/client/prompts.js +2 -2
- package/dist/src/connectors/base.d.ts +2 -2
- package/dist/src/connectors/base.d.ts.map +1 -1
- package/dist/src/oauth-helper.d.ts.map +1 -1
- package/dist/src/react/WidgetControls.d.ts.map +1 -1
- package/dist/src/react/index.cjs +23 -12
- package/dist/src/react/index.js +4 -4
- package/dist/src/react/useMcp.d.ts.map +1 -1
- package/dist/src/server/endpoints/mount-mcp.d.ts +4 -1
- package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -1
- package/dist/src/server/index.cjs +118 -81
- package/dist/src/server/index.js +119 -83
- package/dist/src/server/mcp-server.d.ts +2 -1
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/oauth/middleware.d.ts.map +1 -1
- package/dist/src/server/oauth/providers/auth0.d.ts +1 -1
- package/dist/src/server/oauth/providers/auth0.d.ts.map +1 -1
- package/dist/src/server/oauth/providers/custom.d.ts +4 -2
- package/dist/src/server/oauth/providers/custom.d.ts.map +1 -1
- package/dist/src/server/oauth/providers/keycloak.d.ts +1 -1
- package/dist/src/server/oauth/providers/keycloak.d.ts.map +1 -1
- package/dist/src/server/oauth/providers/supabase.d.ts +1 -1
- package/dist/src/server/oauth/providers/supabase.d.ts.map +1 -1
- package/dist/src/server/oauth/providers/types.d.ts +9 -5
- package/dist/src/server/oauth/providers/types.d.ts.map +1 -1
- package/dist/src/server/oauth/setup.d.ts +5 -4
- package/dist/src/server/oauth/setup.d.ts.map +1 -1
- package/dist/src/server/oauth/utils.d.ts +3 -2
- package/dist/src/server/oauth/utils.d.ts.map +1 -1
- package/dist/src/server/prompts/index.d.ts +5 -4
- package/dist/src/server/prompts/index.d.ts.map +1 -1
- package/dist/src/server/resources/index.d.ts +1 -1
- package/dist/src/server/resources/index.d.ts.map +1 -1
- package/dist/src/server/sessions/session-manager.d.ts +10 -6
- package/dist/src/server/sessions/session-manager.d.ts.map +1 -1
- package/dist/src/server/tools/tool-execution-helpers.d.ts +30 -7
- package/dist/src/server/tools/tool-execution-helpers.d.ts.map +1 -1
- package/dist/src/server/tools/tool-registration.d.ts +21 -7
- package/dist/src/server/tools/tool-registration.d.ts.map +1 -1
- package/dist/src/server/types/common.d.ts +1 -1
- package/dist/src/server/types/common.d.ts.map +1 -1
- package/dist/src/server/types/resource.d.ts +1 -1
- package/dist/src/server/types/resource.d.ts.map +1 -1
- package/dist/src/server/types/widget.d.ts +2 -1
- package/dist/src/server/types/widget.d.ts.map +1 -1
- package/dist/src/server/widgets/index.d.ts +1 -1
- package/dist/src/server/widgets/index.d.ts.map +1 -1
- package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -1
- package/dist/src/server/widgets/ui-resource-registration.d.ts +11 -25
- package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -1
- package/dist/src/server/widgets/widget-helpers.d.ts +11 -6
- package/dist/src/server/widgets/widget-helpers.d.ts.map +1 -1
- package/dist/src/server/widgets/widget-types.d.ts +3 -3
- package/dist/src/server/widgets/widget-types.d.ts.map +1 -1
- package/dist/src/session.d.ts +1 -1
- package/dist/src/session.d.ts.map +1 -1
- package/dist/{tool-execution-helpers-RRMGLAHR.js → tool-execution-helpers-2LGVSS7L.js} +1 -1
- package/package.json +3 -3
package/dist/src/server/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
createEnhancedContext,
|
|
8
8
|
findSessionContext,
|
|
9
9
|
isValidLogLevel
|
|
10
|
-
} from "../../chunk-
|
|
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,
|
|
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,
|
|
1600
|
+
resourceUri = generateWidgetUri(definition.name, server.buildId);
|
|
1601
1601
|
mimeType = "text/html";
|
|
1602
1602
|
break;
|
|
1603
1603
|
case "remoteDom":
|
|
1604
|
-
resourceUri = generateWidgetUri(definition.name,
|
|
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,
|
|
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:
|
|
1618
|
-
serverPort:
|
|
1619
|
-
serverBaseUrl:
|
|
1620
|
-
buildId:
|
|
1617
|
+
serverHost: server.serverHost,
|
|
1618
|
+
serverPort: server.serverPort || 3e3,
|
|
1619
|
+
serverBaseUrl: server.serverBaseUrl,
|
|
1620
|
+
buildId: server.buildId
|
|
1621
1621
|
};
|
|
1622
|
-
|
|
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 =
|
|
1644
|
+
const buildIdPart = server.buildId ? `-${server.buildId}` : "";
|
|
1645
1645
|
const uriTemplate = `ui://widget/${definition.name}${buildIdPart}-{id}.html`;
|
|
1646
|
-
|
|
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
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
1733
|
-
|
|
1734
|
-
return
|
|
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-
|
|
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-
|
|
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-
|
|
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:
|
|
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
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
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 =
|
|
2954
|
+
this.prompt = ((promptDefinition, callback) => {
|
|
2950
2955
|
const actualCallback = callback || promptDefinition.cb;
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
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
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
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 =
|
|
2978
|
+
});
|
|
2979
|
+
this.resourceTemplate = ((templateDefinition, callback) => {
|
|
2967
2980
|
const actualCallback = callback || templateDefinition.readCallback;
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
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
|
-
|
|
3056
|
+
error2.message,
|
|
3034
3057
|
"Code:",
|
|
3035
|
-
|
|
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(
|
|
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 =
|
|
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:
|
|
3552
|
-
username:
|
|
3553
|
-
picture:
|
|
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:
|
|
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
|
|
3711
|
-
const
|
|
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:
|
|
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
|
|
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:
|
|
3881
|
-
permissions:
|
|
3882
|
-
scopes:
|
|
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:
|
|
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":"AAAA,OAAO,EACL,SAAS,IAAI,iBAAiB,EAE/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
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;;
|
|
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:
|
|
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,
|
|
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<
|
|
12
|
-
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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,
|
|
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<
|
|
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:
|
|
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]:
|
|
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<
|
|
132
|
-
|
|
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":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,OAAO,CAAC;AAEZ;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
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?:
|
|
12
|
-
middleware?:
|
|
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:
|
|
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;
|
|
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"}
|