@modelcontextprotocol/sdk 1.8.0 → 1.10.0
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/README.md +339 -38
- package/dist/cjs/client/auth.d.ts +2 -1
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +3 -1
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +49 -1
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +9 -4
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/streamableHttp.d.ts +124 -0
- package/dist/cjs/client/streamableHttp.d.ts.map +1 -0
- package/dist/cjs/client/streamableHttp.js +353 -0
- package/dist/cjs/client/streamableHttp.js.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js +448 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +168 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +139 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/server/simpleSseServer.d.ts +2 -0
- package/dist/cjs/examples/server/simpleSseServer.d.ts.map +1 -0
- package/dist/cjs/examples/server/simpleSseServer.js +148 -0
- package/dist/cjs/examples/server/simpleSseServer.js.map +1 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.js +250 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +229 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +112 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.d.ts +31 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.d.ts.map +1 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.js +69 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.js.map +1 -0
- package/dist/cjs/inMemory.d.ts +13 -3
- package/dist/cjs/inMemory.d.ts.map +1 -1
- package/dist/cjs/inMemory.js +9 -7
- package/dist/cjs/inMemory.js.map +1 -1
- package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
- package/dist/cjs/server/auth/handlers/token.js +10 -5
- package/dist/cjs/server/auth/handlers/token.js.map +1 -1
- package/dist/cjs/server/auth/provider.d.ts +9 -1
- package/dist/cjs/server/auth/provider.d.ts.map +1 -1
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts +43 -0
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -0
- package/dist/cjs/server/auth/providers/proxyProvider.js +145 -0
- package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -0
- package/dist/cjs/server/auth/router.d.ts +6 -0
- package/dist/cjs/server/auth/router.d.ts.map +1 -1
- package/dist/cjs/server/auth/router.js +5 -4
- package/dist/cjs/server/auth/router.js.map +1 -1
- package/dist/cjs/server/auth/types.d.ts +5 -0
- package/dist/cjs/server/auth/types.d.ts.map +1 -1
- package/dist/cjs/server/index.d.ts +12 -0
- package/dist/cjs/server/index.d.ts.map +1 -1
- package/dist/cjs/server/mcp.d.ts +100 -19
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +154 -12
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/server/sse.d.ts +10 -3
- package/dist/cjs/server/sse.d.ts.map +1 -1
- package/dist/cjs/server/sse.js +14 -5
- package/dist/cjs/server/sse.js.map +1 -1
- package/dist/cjs/server/streamableHttp.d.ts +146 -0
- package/dist/cjs/server/streamableHttp.d.ts.map +1 -0
- package/dist/cjs/server/streamableHttp.js +538 -0
- package/dist/cjs/server/streamableHttp.js.map +1 -0
- package/dist/cjs/shared/protocol.d.ts +31 -5
- package/dist/cjs/shared/protocol.d.ts.map +1 -1
- package/dist/cjs/shared/protocol.js +29 -19
- package/dist/cjs/shared/protocol.js.map +1 -1
- package/dist/cjs/shared/stdio.js +1 -1
- package/dist/cjs/shared/stdio.js.map +1 -1
- package/dist/cjs/shared/transport.d.ts +32 -3
- package/dist/cjs/shared/transport.d.ts.map +1 -1
- package/dist/cjs/shared/uriTemplate.d.ts +1 -0
- package/dist/cjs/shared/uriTemplate.d.ts.map +1 -1
- package/dist/cjs/shared/uriTemplate.js +3 -0
- package/dist/cjs/shared/uriTemplate.js.map +1 -1
- package/dist/cjs/types.d.ts +1990 -35
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +38 -4
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/auth.d.ts +2 -1
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +3 -1
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +49 -1
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +9 -4
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/streamableHttp.d.ts +124 -0
- package/dist/esm/client/streamableHttp.d.ts.map +1 -0
- package/dist/esm/client/streamableHttp.js +348 -0
- package/dist/esm/client/streamableHttp.js.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/client/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js +446 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +166 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js +134 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -0
- package/dist/esm/examples/server/simpleSseServer.d.ts +2 -0
- package/dist/esm/examples/server/simpleSseServer.d.ts.map +1 -0
- package/dist/esm/examples/server/simpleSseServer.js +143 -0
- package/dist/esm/examples/server/simpleSseServer.js.map +1 -0
- package/dist/esm/examples/server/simpleStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/simpleStreamableHttp.js +245 -0
- package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +224 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +107 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
- package/dist/esm/examples/shared/inMemoryEventStore.d.ts +31 -0
- package/dist/esm/examples/shared/inMemoryEventStore.d.ts.map +1 -0
- package/dist/esm/examples/shared/inMemoryEventStore.js +65 -0
- package/dist/esm/examples/shared/inMemoryEventStore.js.map +1 -0
- package/dist/esm/inMemory.d.ts +13 -3
- package/dist/esm/inMemory.d.ts.map +1 -1
- package/dist/esm/inMemory.js +9 -7
- package/dist/esm/inMemory.js.map +1 -1
- package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
- package/dist/esm/server/auth/handlers/token.js +10 -5
- package/dist/esm/server/auth/handlers/token.js.map +1 -1
- package/dist/esm/server/auth/provider.d.ts +9 -1
- package/dist/esm/server/auth/provider.d.ts.map +1 -1
- package/dist/esm/server/auth/providers/proxyProvider.d.ts +43 -0
- package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -0
- package/dist/esm/server/auth/providers/proxyProvider.js +141 -0
- package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -0
- package/dist/esm/server/auth/router.d.ts +6 -0
- package/dist/esm/server/auth/router.d.ts.map +1 -1
- package/dist/esm/server/auth/router.js +5 -4
- package/dist/esm/server/auth/router.js.map +1 -1
- package/dist/esm/server/auth/types.d.ts +5 -0
- package/dist/esm/server/auth/types.d.ts.map +1 -1
- package/dist/esm/server/index.d.ts +12 -0
- package/dist/esm/server/index.d.ts.map +1 -1
- package/dist/esm/server/mcp.d.ts +100 -19
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +154 -12
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/server/sse.d.ts +10 -3
- package/dist/esm/server/sse.d.ts.map +1 -1
- package/dist/esm/server/sse.js +14 -5
- package/dist/esm/server/sse.js.map +1 -1
- package/dist/esm/server/streamableHttp.d.ts +146 -0
- package/dist/esm/server/streamableHttp.d.ts.map +1 -0
- package/dist/esm/server/streamableHttp.js +531 -0
- package/dist/esm/server/streamableHttp.js.map +1 -0
- package/dist/esm/shared/protocol.d.ts +31 -5
- package/dist/esm/shared/protocol.d.ts.map +1 -1
- package/dist/esm/shared/protocol.js +30 -20
- package/dist/esm/shared/protocol.js.map +1 -1
- package/dist/esm/shared/stdio.js +1 -1
- package/dist/esm/shared/stdio.js.map +1 -1
- package/dist/esm/shared/transport.d.ts +32 -3
- package/dist/esm/shared/transport.d.ts.map +1 -1
- package/dist/esm/shared/uriTemplate.d.ts +1 -0
- package/dist/esm/shared/uriTemplate.d.ts.map +1 -1
- package/dist/esm/shared/uriTemplate.js +3 -0
- package/dist/esm/shared/uriTemplate.js.map +1 -1
- package/dist/esm/types.d.ts +1990 -35
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +30 -2
- package/dist/esm/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,YAAY,IAAI,2BAA2B,CAAC;IAEhD;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzG;;OAEG;IACH,6BAA6B,CAAC,MAAM,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9G;;OAEG;IACH,yBAAyB,CAAC,MAAM,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,YAAY,IAAI,2BAA2B,CAAC;IAEhD;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzG;;OAEG;IACH,6BAA6B,CAAC,MAAM,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9G;;OAEG;IACH,yBAAyB,CAAC,MAAM,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtI;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAExH;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpD;;;;OAIG;IACH,WAAW,CAAC,CAAC,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtG;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Response } from "express";
|
|
2
|
+
import { OAuthRegisteredClientsStore } from "../clients.js";
|
|
3
|
+
import { OAuthClientInformationFull, OAuthTokenRevocationRequest, OAuthTokens } from "../../../shared/auth.js";
|
|
4
|
+
import { AuthInfo } from "../types.js";
|
|
5
|
+
import { AuthorizationParams, OAuthServerProvider } from "../provider.js";
|
|
6
|
+
export type ProxyEndpoints = {
|
|
7
|
+
authorizationUrl: string;
|
|
8
|
+
tokenUrl: string;
|
|
9
|
+
revocationUrl?: string;
|
|
10
|
+
registrationUrl?: string;
|
|
11
|
+
};
|
|
12
|
+
export type ProxyOptions = {
|
|
13
|
+
/**
|
|
14
|
+
* Individual endpoint URLs for proxying specific OAuth operations
|
|
15
|
+
*/
|
|
16
|
+
endpoints: ProxyEndpoints;
|
|
17
|
+
/**
|
|
18
|
+
* Function to verify access tokens and return auth info
|
|
19
|
+
*/
|
|
20
|
+
verifyAccessToken: (token: string) => Promise<AuthInfo>;
|
|
21
|
+
/**
|
|
22
|
+
* Function to fetch client information from the upstream server
|
|
23
|
+
*/
|
|
24
|
+
getClient: (clientId: string) => Promise<OAuthClientInformationFull | undefined>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Implements an OAuth server that proxies requests to another OAuth server.
|
|
28
|
+
*/
|
|
29
|
+
export declare class ProxyOAuthServerProvider implements OAuthServerProvider {
|
|
30
|
+
protected readonly _endpoints: ProxyEndpoints;
|
|
31
|
+
protected readonly _verifyAccessToken: (token: string) => Promise<AuthInfo>;
|
|
32
|
+
protected readonly _getClient: (clientId: string) => Promise<OAuthClientInformationFull | undefined>;
|
|
33
|
+
skipLocalPkceValidation: boolean;
|
|
34
|
+
revokeToken?: (client: OAuthClientInformationFull, request: OAuthTokenRevocationRequest) => Promise<void>;
|
|
35
|
+
constructor(options: ProxyOptions);
|
|
36
|
+
get clientsStore(): OAuthRegisteredClientsStore;
|
|
37
|
+
authorize(client: OAuthClientInformationFull, params: AuthorizationParams, res: Response): Promise<void>;
|
|
38
|
+
challengeForAuthorizationCode(_client: OAuthClientInformationFull, _authorizationCode: string): Promise<string>;
|
|
39
|
+
exchangeAuthorizationCode(client: OAuthClientInformationFull, authorizationCode: string, codeVerifier?: string): Promise<OAuthTokens>;
|
|
40
|
+
exchangeRefreshToken(client: OAuthClientInformationFull, refreshToken: string, scopes?: string[]): Promise<OAuthTokens>;
|
|
41
|
+
verifyAccessToken(token: string): Promise<AuthInfo>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=proxyProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyProvider.d.ts","sourceRoot":"","sources":["../../../../../src/server/auth/providers/proxyProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAE1B,2BAA2B,EAC3B,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAE1B;;MAEE;IACF,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD;;MAEE;IACF,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;CAElF,CAAC;AAEF;;GAEG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAClE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;IAErG,uBAAuB,UAAQ;IAE/B,WAAW,CAAC,EAAE,CACZ,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEP,OAAO,EAAE,YAAY;IAwCjC,IAAI,YAAY,IAAI,2BAA2B,CAuB9C;IAEK,SAAS,CACb,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAmBV,6BAA6B,CACjC,OAAO,EAAE,0BAA0B,EACnC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC;IAMZ,yBAAyB,CAC7B,MAAM,EAAE,0BAA0B,EAClC,iBAAiB,EAAE,MAAM,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;IAgCjB,oBAAoB,CACxB,MAAM,EAAE,0BAA0B,EAClC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,WAAW,CAAC;IAgCjB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG1D"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProxyOAuthServerProvider = void 0;
|
|
4
|
+
const auth_js_1 = require("../../../shared/auth.js");
|
|
5
|
+
const errors_js_1 = require("../errors.js");
|
|
6
|
+
/**
|
|
7
|
+
* Implements an OAuth server that proxies requests to another OAuth server.
|
|
8
|
+
*/
|
|
9
|
+
class ProxyOAuthServerProvider {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
var _a;
|
|
12
|
+
this.skipLocalPkceValidation = true;
|
|
13
|
+
this._endpoints = options.endpoints;
|
|
14
|
+
this._verifyAccessToken = options.verifyAccessToken;
|
|
15
|
+
this._getClient = options.getClient;
|
|
16
|
+
if ((_a = options.endpoints) === null || _a === void 0 ? void 0 : _a.revocationUrl) {
|
|
17
|
+
this.revokeToken = async (client, request) => {
|
|
18
|
+
const revocationUrl = this._endpoints.revocationUrl;
|
|
19
|
+
if (!revocationUrl) {
|
|
20
|
+
throw new Error("No revocation endpoint configured");
|
|
21
|
+
}
|
|
22
|
+
const params = new URLSearchParams();
|
|
23
|
+
params.set("token", request.token);
|
|
24
|
+
params.set("client_id", client.client_id);
|
|
25
|
+
if (client.client_secret) {
|
|
26
|
+
params.set("client_secret", client.client_secret);
|
|
27
|
+
}
|
|
28
|
+
if (request.token_type_hint) {
|
|
29
|
+
params.set("token_type_hint", request.token_type_hint);
|
|
30
|
+
}
|
|
31
|
+
const response = await fetch(revocationUrl, {
|
|
32
|
+
method: "POST",
|
|
33
|
+
headers: {
|
|
34
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
35
|
+
},
|
|
36
|
+
body: params.toString(),
|
|
37
|
+
});
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
throw new errors_js_1.ServerError(`Token revocation failed: ${response.status}`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
get clientsStore() {
|
|
45
|
+
const registrationUrl = this._endpoints.registrationUrl;
|
|
46
|
+
return {
|
|
47
|
+
getClient: this._getClient,
|
|
48
|
+
...(registrationUrl && {
|
|
49
|
+
registerClient: async (client) => {
|
|
50
|
+
const response = await fetch(registrationUrl, {
|
|
51
|
+
method: "POST",
|
|
52
|
+
headers: {
|
|
53
|
+
"Content-Type": "application/json",
|
|
54
|
+
},
|
|
55
|
+
body: JSON.stringify(client),
|
|
56
|
+
});
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
throw new errors_js_1.ServerError(`Client registration failed: ${response.status}`);
|
|
59
|
+
}
|
|
60
|
+
const data = await response.json();
|
|
61
|
+
return auth_js_1.OAuthClientInformationFullSchema.parse(data);
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async authorize(client, params, res) {
|
|
67
|
+
var _a;
|
|
68
|
+
// Start with required OAuth parameters
|
|
69
|
+
const targetUrl = new URL(this._endpoints.authorizationUrl);
|
|
70
|
+
const searchParams = new URLSearchParams({
|
|
71
|
+
client_id: client.client_id,
|
|
72
|
+
response_type: "code",
|
|
73
|
+
redirect_uri: params.redirectUri,
|
|
74
|
+
code_challenge: params.codeChallenge,
|
|
75
|
+
code_challenge_method: "S256"
|
|
76
|
+
});
|
|
77
|
+
// Add optional standard OAuth parameters
|
|
78
|
+
if (params.state)
|
|
79
|
+
searchParams.set("state", params.state);
|
|
80
|
+
if ((_a = params.scopes) === null || _a === void 0 ? void 0 : _a.length)
|
|
81
|
+
searchParams.set("scope", params.scopes.join(" "));
|
|
82
|
+
targetUrl.search = searchParams.toString();
|
|
83
|
+
res.redirect(targetUrl.toString());
|
|
84
|
+
}
|
|
85
|
+
async challengeForAuthorizationCode(_client, _authorizationCode) {
|
|
86
|
+
// In a proxy setup, we don't store the code challenge ourselves
|
|
87
|
+
// Instead, we proxy the token request and let the upstream server validate it
|
|
88
|
+
return "";
|
|
89
|
+
}
|
|
90
|
+
async exchangeAuthorizationCode(client, authorizationCode, codeVerifier) {
|
|
91
|
+
const params = new URLSearchParams({
|
|
92
|
+
grant_type: "authorization_code",
|
|
93
|
+
client_id: client.client_id,
|
|
94
|
+
code: authorizationCode,
|
|
95
|
+
});
|
|
96
|
+
if (client.client_secret) {
|
|
97
|
+
params.append("client_secret", client.client_secret);
|
|
98
|
+
}
|
|
99
|
+
if (codeVerifier) {
|
|
100
|
+
params.append("code_verifier", codeVerifier);
|
|
101
|
+
}
|
|
102
|
+
const response = await fetch(this._endpoints.tokenUrl, {
|
|
103
|
+
method: "POST",
|
|
104
|
+
headers: {
|
|
105
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
106
|
+
},
|
|
107
|
+
body: params.toString(),
|
|
108
|
+
});
|
|
109
|
+
if (!response.ok) {
|
|
110
|
+
throw new errors_js_1.ServerError(`Token exchange failed: ${response.status}`);
|
|
111
|
+
}
|
|
112
|
+
const data = await response.json();
|
|
113
|
+
return auth_js_1.OAuthTokensSchema.parse(data);
|
|
114
|
+
}
|
|
115
|
+
async exchangeRefreshToken(client, refreshToken, scopes) {
|
|
116
|
+
const params = new URLSearchParams({
|
|
117
|
+
grant_type: "refresh_token",
|
|
118
|
+
client_id: client.client_id,
|
|
119
|
+
refresh_token: refreshToken,
|
|
120
|
+
});
|
|
121
|
+
if (client.client_secret) {
|
|
122
|
+
params.set("client_secret", client.client_secret);
|
|
123
|
+
}
|
|
124
|
+
if (scopes === null || scopes === void 0 ? void 0 : scopes.length) {
|
|
125
|
+
params.set("scope", scopes.join(" "));
|
|
126
|
+
}
|
|
127
|
+
const response = await fetch(this._endpoints.tokenUrl, {
|
|
128
|
+
method: "POST",
|
|
129
|
+
headers: {
|
|
130
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
131
|
+
},
|
|
132
|
+
body: params.toString(),
|
|
133
|
+
});
|
|
134
|
+
if (!response.ok) {
|
|
135
|
+
throw new errors_js_1.ServerError(`Token refresh failed: ${response.status}`);
|
|
136
|
+
}
|
|
137
|
+
const data = await response.json();
|
|
138
|
+
return auth_js_1.OAuthTokensSchema.parse(data);
|
|
139
|
+
}
|
|
140
|
+
async verifyAccessToken(token) {
|
|
141
|
+
return this._verifyAccessToken(token);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.ProxyOAuthServerProvider = ProxyOAuthServerProvider;
|
|
145
|
+
//# sourceMappingURL=proxyProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyProvider.js","sourceRoot":"","sources":["../../../../../src/server/auth/providers/proxyProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,12 @@ export type AuthRouterOptions = {
|
|
|
13
13
|
* The authorization server's issuer identifier, which is a URL that uses the "https" scheme and has no query or fragment components.
|
|
14
14
|
*/
|
|
15
15
|
issuerUrl: URL;
|
|
16
|
+
/**
|
|
17
|
+
* The base URL of the authorization server to use for the metadata endpoints.
|
|
18
|
+
*
|
|
19
|
+
* If not provided, the issuer URL will be used as the base URL.
|
|
20
|
+
*/
|
|
21
|
+
baseUrl?: URL;
|
|
16
22
|
/**
|
|
17
23
|
* An optional URL of a page containing human-readable information that developers might want or need to know when using the authorization server.
|
|
18
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/router.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAA6B,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAgB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAwB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAqB,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAE9B;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC;IAEf;;OAEG;IACH,uBAAuB,CAAC,EAAE,GAAG,CAAC;IAG9B,oBAAoB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;IACrE,yBAAyB,CAAC,EAAE,IAAI,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;IACnF,iBAAiB,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;IAC/D,YAAY,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/router.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAA6B,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EAAgB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAwB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAqB,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAE9B;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC;IAEf;;;;OAIG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd;;OAEG;IACH,uBAAuB,CAAC,EAAE,GAAG,CAAC;IAG9B,oBAAoB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;IACrE,yBAAyB,CAAC,EAAE,IAAI,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;IACnF,iBAAiB,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;IAC/D,YAAY,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAsExE"}
|
|
@@ -23,6 +23,7 @@ const metadata_js_1 = require("./handlers/metadata.js");
|
|
|
23
23
|
function mcpAuthRouter(options) {
|
|
24
24
|
var _a;
|
|
25
25
|
const issuer = options.issuerUrl;
|
|
26
|
+
const baseUrl = options.baseUrl;
|
|
26
27
|
// Technically RFC 8414 does not permit a localhost HTTPS exemption, but this will be necessary for ease of testing
|
|
27
28
|
if (issuer.protocol !== "https:" && issuer.hostname !== "localhost" && issuer.hostname !== "127.0.0.1") {
|
|
28
29
|
throw new Error("Issuer URL must be HTTPS");
|
|
@@ -40,15 +41,15 @@ function mcpAuthRouter(options) {
|
|
|
40
41
|
const metadata = {
|
|
41
42
|
issuer: issuer.href,
|
|
42
43
|
service_documentation: (_a = options.serviceDocumentationUrl) === null || _a === void 0 ? void 0 : _a.href,
|
|
43
|
-
authorization_endpoint: new URL(authorization_endpoint, issuer).href,
|
|
44
|
+
authorization_endpoint: new URL(authorization_endpoint, baseUrl || issuer).href,
|
|
44
45
|
response_types_supported: ["code"],
|
|
45
46
|
code_challenge_methods_supported: ["S256"],
|
|
46
|
-
token_endpoint: new URL(token_endpoint, issuer).href,
|
|
47
|
+
token_endpoint: new URL(token_endpoint, baseUrl || issuer).href,
|
|
47
48
|
token_endpoint_auth_methods_supported: ["client_secret_post"],
|
|
48
49
|
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
49
|
-
revocation_endpoint: revocation_endpoint ? new URL(revocation_endpoint, issuer).href : undefined,
|
|
50
|
+
revocation_endpoint: revocation_endpoint ? new URL(revocation_endpoint, baseUrl || issuer).href : undefined,
|
|
50
51
|
revocation_endpoint_auth_methods_supported: revocation_endpoint ? ["client_secret_post"] : undefined,
|
|
51
|
-
registration_endpoint: registration_endpoint ? new URL(registration_endpoint, issuer).href : undefined,
|
|
52
|
+
registration_endpoint: registration_endpoint ? new URL(registration_endpoint, baseUrl || issuer).href : undefined,
|
|
52
53
|
};
|
|
53
54
|
const router = express_1.default.Router();
|
|
54
55
|
router.use(authorization_endpoint, (0, authorize_js_1.authorizationHandler)({ provider: options.provider, ...options.authorizationOptions }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/server/auth/router.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/server/auth/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,10 @@ export interface AuthInfo {
|
|
|
18
18
|
* When the token expires (in seconds since epoch).
|
|
19
19
|
*/
|
|
20
20
|
expiresAt?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Additional data associated with the token.
|
|
23
|
+
* This field should be used for any additional data that needs to be attached to the auth info.
|
|
24
|
+
*/
|
|
25
|
+
extra?: Record<string, unknown>;
|
|
21
26
|
}
|
|
22
27
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;MAGE;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC"}
|
|
@@ -98,6 +98,18 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
98
98
|
type: import("zod").ZodLiteral<"image">;
|
|
99
99
|
data: import("zod").ZodString;
|
|
100
100
|
mimeType: import("zod").ZodString;
|
|
101
|
+
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
102
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
103
|
+
data: import("zod").ZodString;
|
|
104
|
+
mimeType: import("zod").ZodString;
|
|
105
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
106
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
107
|
+
data: import("zod").ZodString;
|
|
108
|
+
mimeType: import("zod").ZodString;
|
|
109
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
110
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
111
|
+
data: import("zod").ZodString;
|
|
112
|
+
mimeType: import("zod").ZodString;
|
|
101
113
|
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
|
102
114
|
}>, import("zod").ZodTypeAny, "passthrough">>;
|
|
103
115
|
listRoots(params?: ListRootsRequest["params"], options?: RequestOptions): Promise<import("zod").objectOutputType<import("zod").objectUtil.extendShape<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EAGpB,cAAc,EAMd,gBAAgB,EAEhB,0BAA0B,EAC1B,YAAY,EACZ,OAAO,EACP,2BAA2B,EAC3B,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,YAAY,EAEb,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAM,CACjB,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,QAAQ,CAChB,aAAa,GAAG,QAAQ,EACxB,kBAAkB,GAAG,aAAa,EAClC,YAAY,GAAG,OAAO,CACvB;IAeG,OAAO,CAAC,WAAW;IAdrB,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;gBAEO,WAAW,EAAE,cAAc,EACnC,OAAO,CAAC,EAAE,aAAa;IAczB;;;;OAIG;IACI,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAUnE,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IAwBrE,SAAS,CAAC,4BAA4B,CACpC,MAAM,EAAE,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,GACrD,IAAI;IA6CP,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;YAqDhD,aAAa;IAkB3B;;OAEG;IACH,qBAAqB,IAAI,kBAAkB,GAAG,SAAS;IAIvD;;OAEG;IACH,gBAAgB,IAAI,cAAc,GAAG,SAAS;IAI9C,OAAO,CAAC,eAAe;IAIjB,IAAI;;;IAIJ,aAAa,CACjB,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACtC,OAAO,CAAC,EAAE,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EAGpB,cAAc,EAMd,gBAAgB,EAEhB,0BAA0B,EAC1B,YAAY,EACZ,OAAO,EACP,2BAA2B,EAC3B,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,YAAY,EAEb,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAM,CACjB,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,QAAQ,CAChB,aAAa,GAAG,QAAQ,EACxB,kBAAkB,GAAG,aAAa,EAClC,YAAY,GAAG,OAAO,CACvB;IAeG,OAAO,CAAC,WAAW;IAdrB,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;gBAEO,WAAW,EAAE,cAAc,EACnC,OAAO,CAAC,EAAE,aAAa;IAczB;;;;OAIG;IACI,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAUnE,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI;IAwBrE,SAAS,CAAC,4BAA4B,CACpC,MAAM,EAAE,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,QAAQ,CAAC,GACrD,IAAI;IA6CP,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;YAqDhD,aAAa;IAkB3B;;OAEG;IACH,qBAAqB,IAAI,kBAAkB,GAAG,SAAS;IAIvD;;OAEG;IACH,gBAAgB,IAAI,cAAc,GAAG,SAAS;IAI9C,OAAO,CAAC,eAAe;IAIjB,IAAI;;;IAIJ,aAAa,CACjB,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACtC,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASpB,SAAS,CACb,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc;;;;;;;;;;;;;;IASpB,kBAAkB,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;IAI/D,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,CAAC,QAAQ,CAAC;IAOjE,uBAAuB;IAMvB,mBAAmB;IAInB,qBAAqB;CAG5B"}
|
package/dist/cjs/server/mcp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Server, ServerOptions } from "./index.js";
|
|
2
|
-
import { z, ZodRawShape, ZodTypeAny, ZodType, ZodTypeDef, ZodOptional } from "zod";
|
|
3
|
-
import { Implementation, CallToolResult, Resource, ListResourcesResult, GetPromptResult, ReadResourceResult } from "../types.js";
|
|
2
|
+
import { z, ZodRawShape, ZodObject, AnyZodObject, ZodTypeAny, ZodType, ZodTypeDef, ZodOptional } from "zod";
|
|
3
|
+
import { Implementation, CallToolResult, Resource, ListResourcesResult, GetPromptResult, ReadResourceResult, ServerRequest, ServerNotification } from "../types.js";
|
|
4
4
|
import { UriTemplate, Variables } from "../shared/uriTemplate.js";
|
|
5
5
|
import { RequestHandlerExtra } from "../shared/protocol.js";
|
|
6
6
|
import { Transport } from "../shared/transport.js";
|
|
@@ -42,51 +42,68 @@ export declare class McpServer {
|
|
|
42
42
|
/**
|
|
43
43
|
* Registers a resource `name` at a fixed URI, which will use the given callback to respond to read requests.
|
|
44
44
|
*/
|
|
45
|
-
resource(name: string, uri: string, readCallback: ReadResourceCallback):
|
|
45
|
+
resource(name: string, uri: string, readCallback: ReadResourceCallback): RegisteredResource;
|
|
46
46
|
/**
|
|
47
47
|
* Registers a resource `name` at a fixed URI with metadata, which will use the given callback to respond to read requests.
|
|
48
48
|
*/
|
|
49
|
-
resource(name: string, uri: string, metadata: ResourceMetadata, readCallback: ReadResourceCallback):
|
|
49
|
+
resource(name: string, uri: string, metadata: ResourceMetadata, readCallback: ReadResourceCallback): RegisteredResource;
|
|
50
50
|
/**
|
|
51
51
|
* Registers a resource `name` with a template pattern, which will use the given callback to respond to read requests.
|
|
52
52
|
*/
|
|
53
|
-
resource(name: string, template: ResourceTemplate, readCallback: ReadResourceTemplateCallback):
|
|
53
|
+
resource(name: string, template: ResourceTemplate, readCallback: ReadResourceTemplateCallback): RegisteredResourceTemplate;
|
|
54
54
|
/**
|
|
55
55
|
* Registers a resource `name` with a template pattern and metadata, which will use the given callback to respond to read requests.
|
|
56
56
|
*/
|
|
57
|
-
resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback):
|
|
57
|
+
resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback): RegisteredResourceTemplate;
|
|
58
58
|
/**
|
|
59
59
|
* Registers a zero-argument tool `name`, which will run the given function when the client calls it.
|
|
60
60
|
*/
|
|
61
|
-
tool(name: string, cb: ToolCallback):
|
|
61
|
+
tool(name: string, cb: ToolCallback): RegisteredTool;
|
|
62
62
|
/**
|
|
63
63
|
* Registers a zero-argument tool `name` (with a description) which will run the given function when the client calls it.
|
|
64
64
|
*/
|
|
65
|
-
tool(name: string, description: string, cb: ToolCallback):
|
|
65
|
+
tool(name: string, description: string, cb: ToolCallback): RegisteredTool;
|
|
66
66
|
/**
|
|
67
67
|
* Registers a tool `name` accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
|
|
68
68
|
*/
|
|
69
|
-
tool<Args extends ZodRawShape>(name: string, paramsSchema: Args, cb: ToolCallback<Args>):
|
|
69
|
+
tool<Args extends ZodRawShape>(name: string, paramsSchema: Args, cb: ToolCallback<Args>): RegisteredTool;
|
|
70
70
|
/**
|
|
71
71
|
* Registers a tool `name` (with a description) accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
|
|
72
72
|
*/
|
|
73
|
-
tool<Args extends ZodRawShape>(name: string, description: string, paramsSchema: Args, cb: ToolCallback<Args>):
|
|
73
|
+
tool<Args extends ZodRawShape>(name: string, description: string, paramsSchema: Args, cb: ToolCallback<Args>): RegisteredTool;
|
|
74
74
|
/**
|
|
75
75
|
* Registers a zero-argument prompt `name`, which will run the given function when the client calls it.
|
|
76
76
|
*/
|
|
77
|
-
prompt(name: string, cb: PromptCallback):
|
|
77
|
+
prompt(name: string, cb: PromptCallback): RegisteredPrompt;
|
|
78
78
|
/**
|
|
79
79
|
* Registers a zero-argument prompt `name` (with a description) which will run the given function when the client calls it.
|
|
80
80
|
*/
|
|
81
|
-
prompt(name: string, description: string, cb: PromptCallback):
|
|
81
|
+
prompt(name: string, description: string, cb: PromptCallback): RegisteredPrompt;
|
|
82
82
|
/**
|
|
83
83
|
* Registers a prompt `name` accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
|
|
84
84
|
*/
|
|
85
|
-
prompt<Args extends PromptArgsRawShape>(name: string, argsSchema: Args, cb: PromptCallback<Args>):
|
|
85
|
+
prompt<Args extends PromptArgsRawShape>(name: string, argsSchema: Args, cb: PromptCallback<Args>): RegisteredPrompt;
|
|
86
86
|
/**
|
|
87
87
|
* Registers a prompt `name` (with a description) accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
|
|
88
88
|
*/
|
|
89
|
-
prompt<Args extends PromptArgsRawShape>(name: string, description: string, argsSchema: Args, cb: PromptCallback<Args>):
|
|
89
|
+
prompt<Args extends PromptArgsRawShape>(name: string, description: string, argsSchema: Args, cb: PromptCallback<Args>): RegisteredPrompt;
|
|
90
|
+
/**
|
|
91
|
+
* Checks if the server is connected to a transport.
|
|
92
|
+
* @returns True if the server is connected
|
|
93
|
+
*/
|
|
94
|
+
isConnected(): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Sends a resource list changed event to the client, if connected.
|
|
97
|
+
*/
|
|
98
|
+
sendResourceListChanged(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Sends a tool list changed event to the client, if connected.
|
|
101
|
+
*/
|
|
102
|
+
sendToolListChanged(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Sends a prompt list changed event to the client, if connected.
|
|
105
|
+
*/
|
|
106
|
+
sendPromptListChanged(): void;
|
|
90
107
|
}
|
|
91
108
|
/**
|
|
92
109
|
* A callback to complete one variable within a resource template's URI template.
|
|
@@ -129,7 +146,23 @@ export declare class ResourceTemplate {
|
|
|
129
146
|
*
|
|
130
147
|
* Parameters will include tool arguments, if applicable, as well as other request handler context.
|
|
131
148
|
*/
|
|
132
|
-
export type ToolCallback<Args extends undefined | ZodRawShape = undefined> = Args extends ZodRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra) => CallToolResult | Promise<CallToolResult> : (extra: RequestHandlerExtra) => CallToolResult | Promise<CallToolResult>;
|
|
149
|
+
export type ToolCallback<Args extends undefined | ZodRawShape = undefined> = Args extends ZodRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult>;
|
|
150
|
+
export type RegisteredTool = {
|
|
151
|
+
description?: string;
|
|
152
|
+
inputSchema?: AnyZodObject;
|
|
153
|
+
callback: ToolCallback<undefined | ZodRawShape>;
|
|
154
|
+
enabled: boolean;
|
|
155
|
+
enable(): void;
|
|
156
|
+
disable(): void;
|
|
157
|
+
update<Args extends ZodRawShape>(updates: {
|
|
158
|
+
name?: string | null;
|
|
159
|
+
description?: string;
|
|
160
|
+
paramsSchema?: Args;
|
|
161
|
+
callback?: ToolCallback<Args>;
|
|
162
|
+
enabled?: boolean;
|
|
163
|
+
}): void;
|
|
164
|
+
remove(): void;
|
|
165
|
+
};
|
|
133
166
|
/**
|
|
134
167
|
* Additional, optional information for annotating a resource.
|
|
135
168
|
*/
|
|
@@ -137,18 +170,66 @@ export type ResourceMetadata = Omit<Resource, "uri" | "name">;
|
|
|
137
170
|
/**
|
|
138
171
|
* Callback to list all resources matching a given template.
|
|
139
172
|
*/
|
|
140
|
-
export type ListResourcesCallback = (extra: RequestHandlerExtra) => ListResourcesResult | Promise<ListResourcesResult>;
|
|
173
|
+
export type ListResourcesCallback = (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => ListResourcesResult | Promise<ListResourcesResult>;
|
|
141
174
|
/**
|
|
142
175
|
* Callback to read a resource at a given URI.
|
|
143
176
|
*/
|
|
144
|
-
export type ReadResourceCallback = (uri: URL, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
177
|
+
export type ReadResourceCallback = (uri: URL, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
178
|
+
export type RegisteredResource = {
|
|
179
|
+
name: string;
|
|
180
|
+
metadata?: ResourceMetadata;
|
|
181
|
+
readCallback: ReadResourceCallback;
|
|
182
|
+
enabled: boolean;
|
|
183
|
+
enable(): void;
|
|
184
|
+
disable(): void;
|
|
185
|
+
update(updates: {
|
|
186
|
+
name?: string;
|
|
187
|
+
uri?: string | null;
|
|
188
|
+
metadata?: ResourceMetadata;
|
|
189
|
+
callback?: ReadResourceCallback;
|
|
190
|
+
enabled?: boolean;
|
|
191
|
+
}): void;
|
|
192
|
+
remove(): void;
|
|
193
|
+
};
|
|
145
194
|
/**
|
|
146
195
|
* Callback to read a resource at a given URI, following a filled-in URI template.
|
|
147
196
|
*/
|
|
148
|
-
export type ReadResourceTemplateCallback = (uri: URL, variables: Variables, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
197
|
+
export type ReadResourceTemplateCallback = (uri: URL, variables: Variables, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
198
|
+
export type RegisteredResourceTemplate = {
|
|
199
|
+
resourceTemplate: ResourceTemplate;
|
|
200
|
+
metadata?: ResourceMetadata;
|
|
201
|
+
readCallback: ReadResourceTemplateCallback;
|
|
202
|
+
enabled: boolean;
|
|
203
|
+
enable(): void;
|
|
204
|
+
disable(): void;
|
|
205
|
+
update(updates: {
|
|
206
|
+
name?: string | null;
|
|
207
|
+
template?: ResourceTemplate;
|
|
208
|
+
metadata?: ResourceMetadata;
|
|
209
|
+
callback?: ReadResourceTemplateCallback;
|
|
210
|
+
enabled?: boolean;
|
|
211
|
+
}): void;
|
|
212
|
+
remove(): void;
|
|
213
|
+
};
|
|
149
214
|
type PromptArgsRawShape = {
|
|
150
215
|
[k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>;
|
|
151
216
|
};
|
|
152
|
-
export type PromptCallback<Args extends undefined | PromptArgsRawShape = undefined> = Args extends PromptArgsRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra) => GetPromptResult | Promise<GetPromptResult> : (extra: RequestHandlerExtra) => GetPromptResult | Promise<GetPromptResult>;
|
|
217
|
+
export type PromptCallback<Args extends undefined | PromptArgsRawShape = undefined> = Args extends PromptArgsRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult>;
|
|
218
|
+
export type RegisteredPrompt = {
|
|
219
|
+
description?: string;
|
|
220
|
+
argsSchema?: ZodObject<PromptArgsRawShape>;
|
|
221
|
+
callback: PromptCallback<undefined | PromptArgsRawShape>;
|
|
222
|
+
enabled: boolean;
|
|
223
|
+
enable(): void;
|
|
224
|
+
disable(): void;
|
|
225
|
+
update<Args extends PromptArgsRawShape>(updates: {
|
|
226
|
+
name?: string | null;
|
|
227
|
+
description?: string;
|
|
228
|
+
argsSchema?: Args;
|
|
229
|
+
callback?: PromptCallback<Args>;
|
|
230
|
+
enabled?: boolean;
|
|
231
|
+
}): void;
|
|
232
|
+
remove(): void;
|
|
233
|
+
};
|
|
153
234
|
export {};
|
|
154
235
|
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACL,CAAC,EACD,WAAW,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
|