@modelcontextprotocol/sdk 1.22.0 → 1.23.0-beta.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 +92 -11
- package/dist/cjs/client/auth.d.ts +11 -1
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +71 -19
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +120 -661
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +71 -15
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/sse.d.ts +1 -0
- package/dist/cjs/client/sse.d.ts.map +1 -1
- package/dist/cjs/client/sse.js +5 -3
- package/dist/cjs/client/sse.js.map +1 -1
- package/dist/cjs/client/streamableHttp.d.ts +2 -1
- package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/client/streamableHttp.js +35 -15
- package/dist/cjs/client/streamableHttp.js.map +1 -1
- package/dist/cjs/examples/client/elicitationUrlExample.d.ts +2 -0
- package/dist/cjs/examples/client/elicitationUrlExample.d.ts.map +1 -0
- package/dist/cjs/examples/client/elicitationUrlExample.js +693 -0
- package/dist/cjs/examples/client/elicitationUrlExample.js.map +1 -0
- package/dist/cjs/examples/client/simpleOAuthClient.js +13 -52
- package/dist/cjs/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/cjs/examples/client/simpleOAuthClientProvider.d.ts +26 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.d.ts.map +1 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.js +51 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.js.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js +10 -5
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +4 -4
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js +16 -0
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
- package/dist/cjs/examples/server/elicitationFormExample.d.ts +2 -0
- package/dist/cjs/examples/server/elicitationFormExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/{elicitationExample.js → elicitationFormExample.js} +14 -8
- package/dist/cjs/examples/server/elicitationFormExample.js.map +1 -0
- package/dist/cjs/examples/server/elicitationUrlExample.d.ts +2 -0
- package/dist/cjs/examples/server/elicitationUrlExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/elicitationUrlExample.js +655 -0
- package/dist/cjs/examples/server/elicitationUrlExample.js.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +26 -3
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/mcpServerOutputSchema.js +34 -11
- package/dist/cjs/examples/server/mcpServerOutputSchema.js.map +1 -1
- package/dist/cjs/examples/server/simpleSseServer.js +26 -3
- package/dist/cjs/examples/server/simpleSseServer.js.map +1 -1
- package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js +27 -4
- package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/simpleStreamableHttp.js +34 -10
- package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +26 -3
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
- package/dist/cjs/examples/server/toolWithSampleServer.js +30 -8
- package/dist/cjs/examples/server/toolWithSampleServer.js.map +1 -1
- package/dist/cjs/server/auth/handlers/authorize.js +34 -11
- package/dist/cjs/server/auth/handlers/authorize.js.map +1 -1
- package/dist/cjs/server/auth/handlers/token.js +35 -12
- package/dist/cjs/server/auth/handlers/token.js.map +1 -1
- package/dist/cjs/server/auth/middleware/bearerAuth.d.ts.map +1 -1
- package/dist/cjs/server/auth/middleware/bearerAuth.js +13 -8
- package/dist/cjs/server/auth/middleware/bearerAuth.js.map +1 -1
- package/dist/cjs/server/auth/middleware/clientAuth.js +27 -4
- package/dist/cjs/server/auth/middleware/clientAuth.js.map +1 -1
- package/dist/cjs/server/auth/router.js +1 -1
- package/dist/cjs/server/auth/router.js.map +1 -1
- package/dist/cjs/server/completable.d.ts +30 -16
- package/dist/cjs/server/completable.d.ts.map +1 -1
- package/dist/cjs/server/completable.js +38 -55
- package/dist/cjs/server/completable.js.map +1 -1
- package/dist/cjs/server/index.d.ts +192 -50
- package/dist/cjs/server/index.d.ts.map +1 -1
- package/dist/cjs/server/index.js +58 -13
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/mcp.d.ts +14 -16
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +83 -40
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/server/zod-compat.d.ts +82 -0
- package/dist/cjs/server/zod-compat.d.ts.map +1 -0
- package/dist/cjs/server/zod-compat.js +252 -0
- package/dist/cjs/server/zod-compat.js.map +1 -0
- package/dist/cjs/server/zod-json-schema-compat.d.ts +12 -0
- package/dist/cjs/server/zod-json-schema-compat.d.ts.map +1 -0
- package/dist/cjs/server/zod-json-schema-compat.js +80 -0
- package/dist/cjs/server/zod-json-schema-compat.js.map +1 -0
- package/dist/cjs/shared/auth.d.ts +116 -502
- package/dist/cjs/shared/auth.d.ts.map +1 -1
- package/dist/cjs/shared/auth.js +133 -112
- package/dist/cjs/shared/auth.js.map +1 -1
- package/dist/cjs/shared/protocol.d.ts +5 -9
- package/dist/cjs/shared/protocol.d.ts.map +1 -1
- package/dist/cjs/shared/protocol.js +24 -10
- package/dist/cjs/shared/protocol.js.map +1 -1
- package/dist/cjs/shared/transport.d.ts +14 -0
- package/dist/cjs/shared/transport.d.ts.map +1 -1
- package/dist/cjs/shared/transport.js +40 -0
- package/dist/cjs/shared/transport.js.map +1 -1
- package/dist/cjs/shared/zodTestMatrix.d.ts +16 -0
- package/dist/cjs/shared/zodTestMatrix.d.ts.map +1 -0
- package/dist/cjs/shared/zodTestMatrix.js +43 -0
- package/dist/cjs/shared/zodTestMatrix.js.map +1 -0
- package/dist/cjs/spec.types.d.ts +383 -69
- package/dist/cjs/spec.types.d.ts.map +1 -1
- package/dist/cjs/spec.types.js +5 -7
- package/dist/cjs/spec.types.js.map +1 -1
- package/dist/cjs/types.d.ts +3584 -23864
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +564 -336
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/auth.d.ts +11 -1
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +71 -20
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +120 -661
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +70 -15
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/sse.d.ts +1 -0
- package/dist/esm/client/sse.d.ts.map +1 -1
- package/dist/esm/client/sse.js +5 -3
- package/dist/esm/client/sse.js.map +1 -1
- package/dist/esm/client/streamableHttp.d.ts +2 -1
- package/dist/esm/client/streamableHttp.d.ts.map +1 -1
- package/dist/esm/client/streamableHttp.js +35 -15
- package/dist/esm/client/streamableHttp.js.map +1 -1
- package/dist/esm/examples/client/elicitationUrlExample.d.ts +2 -0
- package/dist/esm/examples/client/elicitationUrlExample.d.ts.map +1 -0
- package/dist/esm/examples/client/elicitationUrlExample.js +691 -0
- package/dist/esm/examples/client/elicitationUrlExample.js.map +1 -0
- package/dist/esm/examples/client/simpleOAuthClient.js +12 -51
- package/dist/esm/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/esm/examples/client/simpleOAuthClientProvider.d.ts +26 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.d.ts.map +1 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.js +47 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.js.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js +11 -6
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +4 -4
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.js +16 -0
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
- package/dist/esm/examples/server/elicitationFormExample.d.ts +2 -0
- package/dist/esm/examples/server/elicitationFormExample.d.ts.map +1 -0
- package/dist/esm/examples/server/{elicitationExample.js → elicitationFormExample.js} +14 -8
- package/dist/esm/examples/server/elicitationFormExample.js.map +1 -0
- package/dist/esm/examples/server/elicitationUrlExample.d.ts +2 -0
- package/dist/esm/examples/server/elicitationUrlExample.d.ts.map +1 -0
- package/dist/esm/examples/server/elicitationUrlExample.js +650 -0
- package/dist/esm/examples/server/elicitationUrlExample.js.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js +1 -1
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/mcpServerOutputSchema.js +1 -1
- package/dist/esm/examples/server/mcpServerOutputSchema.js.map +1 -1
- package/dist/esm/examples/server/simpleSseServer.js +1 -1
- package/dist/esm/examples/server/simpleSseServer.js.map +1 -1
- package/dist/esm/examples/server/simpleStatelessStreamableHttp.js +1 -1
- package/dist/esm/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/simpleStreamableHttp.js +4 -3
- package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +1 -1
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
- package/dist/esm/examples/server/toolWithSampleServer.js +6 -7
- package/dist/esm/examples/server/toolWithSampleServer.js.map +1 -1
- package/dist/esm/server/auth/handlers/authorize.js +1 -1
- package/dist/esm/server/auth/handlers/authorize.js.map +1 -1
- package/dist/esm/server/auth/handlers/token.js +1 -1
- package/dist/esm/server/auth/handlers/token.js.map +1 -1
- package/dist/esm/server/auth/middleware/bearerAuth.d.ts.map +1 -1
- package/dist/esm/server/auth/middleware/bearerAuth.js +13 -8
- package/dist/esm/server/auth/middleware/bearerAuth.js.map +1 -1
- package/dist/esm/server/auth/middleware/clientAuth.js +1 -1
- package/dist/esm/server/auth/middleware/clientAuth.js.map +1 -1
- package/dist/esm/server/auth/router.js +1 -1
- package/dist/esm/server/auth/router.js.map +1 -1
- package/dist/esm/server/completable.d.ts +30 -16
- package/dist/esm/server/completable.d.ts.map +1 -1
- package/dist/esm/server/completable.js +34 -53
- package/dist/esm/server/completable.js.map +1 -1
- package/dist/esm/server/index.d.ts +192 -50
- package/dist/esm/server/index.d.ts.map +1 -1
- package/dist/esm/server/index.js +58 -13
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/mcp.d.ts +14 -16
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +84 -41
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/server/zod-compat.d.ts +82 -0
- package/dist/esm/server/zod-compat.d.ts.map +1 -0
- package/dist/esm/server/zod-compat.js +217 -0
- package/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/esm/server/zod-json-schema-compat.d.ts +12 -0
- package/dist/esm/server/zod-json-schema-compat.d.ts.map +1 -0
- package/dist/esm/server/zod-json-schema-compat.js +52 -0
- package/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/esm/shared/auth.d.ts +116 -502
- package/dist/esm/shared/auth.d.ts.map +1 -1
- package/dist/esm/shared/auth.js +17 -19
- package/dist/esm/shared/auth.js.map +1 -1
- package/dist/esm/shared/protocol.d.ts +5 -9
- package/dist/esm/shared/protocol.d.ts.map +1 -1
- package/dist/esm/shared/protocol.js +24 -10
- package/dist/esm/shared/protocol.js.map +1 -1
- package/dist/esm/shared/transport.d.ts +14 -0
- package/dist/esm/shared/transport.d.ts.map +1 -1
- package/dist/esm/shared/transport.js +38 -1
- package/dist/esm/shared/transport.js.map +1 -1
- package/dist/esm/shared/zodTestMatrix.d.ts +16 -0
- package/dist/esm/shared/zodTestMatrix.d.ts.map +1 -0
- package/dist/esm/shared/zodTestMatrix.js +17 -0
- package/dist/esm/shared/zodTestMatrix.js.map +1 -0
- package/dist/esm/spec.types.d.ts +383 -69
- package/dist/esm/spec.types.d.ts.map +1 -1
- package/dist/esm/spec.types.js +4 -6
- package/dist/esm/spec.types.js.map +1 -1
- package/dist/esm/types.d.ts +3584 -23864
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +268 -64
- package/dist/esm/types.js.map +1 -1
- package/package.json +13 -12
- package/dist/cjs/examples/server/elicitationExample.d.ts +0 -2
- package/dist/cjs/examples/server/elicitationExample.d.ts.map +0 -1
- package/dist/cjs/examples/server/elicitationExample.js.map +0 -1
- package/dist/esm/examples/server/elicitationExample.d.ts +0 -2
- package/dist/esm/examples/server/elicitationExample.d.ts.map +0 -1
- package/dist/esm/examples/server/elicitationExample.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAsC,CAAC;AAE/E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAC5D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,KACA,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAElD,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IAC3D,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,GAAG;IACrD,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAQ/G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAErF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAG5F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAEtF;AAID,oBAAY,cAAc;IACtB,WAAW,mBAAmB;CACjC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC3D,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC;CACxC"}
|
|
@@ -1,60 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
export var McpZodTypeKind;
|
|
3
|
-
(function (McpZodTypeKind) {
|
|
4
|
-
McpZodTypeKind["Completable"] = "McpCompletable";
|
|
5
|
-
})(McpZodTypeKind || (McpZodTypeKind = {}));
|
|
6
|
-
export class Completable extends ZodType {
|
|
7
|
-
_parse(input) {
|
|
8
|
-
const { ctx } = this._processInputParams(input);
|
|
9
|
-
const data = ctx.data;
|
|
10
|
-
return this._def.type._parse({
|
|
11
|
-
data,
|
|
12
|
-
path: ctx.path,
|
|
13
|
-
parent: ctx
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
unwrap() {
|
|
17
|
-
return this._def.type;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
Completable.create = (type, params) => {
|
|
21
|
-
return new Completable({
|
|
22
|
-
type,
|
|
23
|
-
typeName: McpZodTypeKind.Completable,
|
|
24
|
-
complete: params.complete,
|
|
25
|
-
...processCreateParams(params)
|
|
26
|
-
});
|
|
27
|
-
};
|
|
1
|
+
export const COMPLETABLE_SYMBOL = Symbol.for('mcp.completable');
|
|
28
2
|
/**
|
|
29
3
|
* Wraps a Zod type to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.
|
|
4
|
+
* Works with both Zod v3 and v4 schemas.
|
|
30
5
|
*/
|
|
31
6
|
export function completable(schema, complete) {
|
|
32
|
-
|
|
7
|
+
Object.defineProperty(schema, COMPLETABLE_SYMBOL, {
|
|
8
|
+
value: { complete },
|
|
9
|
+
enumerable: false,
|
|
10
|
+
writable: false,
|
|
11
|
+
configurable: false
|
|
12
|
+
});
|
|
13
|
+
return schema;
|
|
33
14
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const { errorMap, invalid_type_error, required_error, description } = params;
|
|
40
|
-
if (errorMap && (invalid_type_error || required_error)) {
|
|
41
|
-
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
|
|
42
|
-
}
|
|
43
|
-
if (errorMap)
|
|
44
|
-
return { errorMap: errorMap, description };
|
|
45
|
-
const customMap = (iss, ctx) => {
|
|
46
|
-
var _a, _b;
|
|
47
|
-
const { message } = params;
|
|
48
|
-
if (iss.code === 'invalid_enum_value') {
|
|
49
|
-
return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
|
|
50
|
-
}
|
|
51
|
-
if (typeof ctx.data === 'undefined') {
|
|
52
|
-
return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
|
|
53
|
-
}
|
|
54
|
-
if (iss.code !== 'invalid_type')
|
|
55
|
-
return { message: ctx.defaultError };
|
|
56
|
-
return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
|
|
57
|
-
};
|
|
58
|
-
return { errorMap: customMap, description };
|
|
15
|
+
/**
|
|
16
|
+
* Checks if a schema is completable (has completion metadata).
|
|
17
|
+
*/
|
|
18
|
+
export function isCompletable(schema) {
|
|
19
|
+
return !!schema && typeof schema === 'object' && COMPLETABLE_SYMBOL in schema;
|
|
59
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Gets the completer callback from a completable schema, if it exists.
|
|
23
|
+
*/
|
|
24
|
+
export function getCompleter(schema) {
|
|
25
|
+
const meta = schema[COMPLETABLE_SYMBOL];
|
|
26
|
+
return meta === null || meta === void 0 ? void 0 : meta.complete;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Unwraps a completable schema to get the underlying schema.
|
|
30
|
+
* For backward compatibility with code that called `.unwrap()`.
|
|
31
|
+
*/
|
|
32
|
+
export function unwrapCompletable(schema) {
|
|
33
|
+
return schema;
|
|
34
|
+
}
|
|
35
|
+
// Legacy exports for backward compatibility
|
|
36
|
+
// These types are deprecated but kept for existing code
|
|
37
|
+
export var McpZodTypeKind;
|
|
38
|
+
(function (McpZodTypeKind) {
|
|
39
|
+
McpZodTypeKind["Completable"] = "McpCompletable";
|
|
40
|
+
})(McpZodTypeKind || (McpZodTypeKind = {}));
|
|
60
41
|
//# sourceMappingURL=completable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completable.js","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"completable.js","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAiB/E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAsB,MAAS,EAAE,QAA6B;IACrF,MAAM,CAAC,cAAc,CAAC,MAAgB,EAAE,kBAAkB,EAAE;QACxD,KAAK,EAAE,EAAE,QAAQ,EAAwB;QACzC,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACtB,CAAC,CAAC;IACH,OAAO,MAA8B,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IACzC,OAAO,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,kBAAkB,IAAK,MAAiB,CAAC;AAC9F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAsB,MAAS;IACvD,MAAM,IAAI,GAAI,MAAmE,CAAC,kBAAkB,CAAC,CAAC;IACtG,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAA2C,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAsB,MAA4B;IAC/E,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,4CAA4C;AAC5C,wDAAwD;AACxD,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,gDAA8B,CAAA;AAClC,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Protocol, type ProtocolOptions, type RequestOptions } from '../shared/protocol.js';
|
|
2
|
-
import { type ClientCapabilities, type CreateMessageRequest, type
|
|
1
|
+
import { Protocol, type NotificationOptions, type ProtocolOptions, type RequestOptions } from '../shared/protocol.js';
|
|
2
|
+
import { type ClientCapabilities, type CreateMessageRequest, type ElicitRequestFormParams, type ElicitRequestURLParams, type ElicitResult, type Implementation, type ListRootsRequest, type LoggingMessageNotification, type Notification, type Request, type ResourceUpdatedNotification, type Result, type ServerCapabilities, type ServerNotification, type ServerRequest, type ServerResult } from '../types.js';
|
|
3
3
|
import type { jsonSchemaValidator } from '../validation/types.js';
|
|
4
|
+
type LegacyElicitRequestFormParams = Omit<ElicitRequestFormParams, 'mode'>;
|
|
4
5
|
export type ServerOptions = ProtocolOptions & {
|
|
5
6
|
/**
|
|
6
7
|
* Capabilities to advertise as being supported by this server.
|
|
@@ -107,74 +108,214 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
107
108
|
ping(): Promise<{
|
|
108
109
|
_meta?: Record<string, unknown> | undefined;
|
|
109
110
|
}>;
|
|
110
|
-
createMessage(params: CreateMessageRequest['params'], options?: RequestOptions): Promise<
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
role: import("zod").ZodEnum<["user", "assistant"]>;
|
|
116
|
-
content: import("zod").ZodDiscriminatedUnion<"type", [import("zod").ZodObject<{
|
|
117
|
-
type: import("zod").ZodLiteral<"text">;
|
|
118
|
-
text: import("zod").ZodString;
|
|
119
|
-
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
120
|
-
}, "strip", import("zod").ZodTypeAny, {
|
|
111
|
+
createMessage(params: CreateMessageRequest['params'], options?: RequestOptions): Promise<{
|
|
112
|
+
[x: string]: unknown;
|
|
113
|
+
model: string;
|
|
114
|
+
role: "user" | "assistant";
|
|
115
|
+
content: {
|
|
121
116
|
type: "text";
|
|
122
117
|
text: string;
|
|
123
118
|
_meta?: Record<string, unknown> | undefined;
|
|
124
|
-
}
|
|
125
|
-
type: "text";
|
|
126
|
-
text: string;
|
|
127
|
-
_meta?: Record<string, unknown> | undefined;
|
|
128
|
-
}>, import("zod").ZodObject<{
|
|
129
|
-
type: import("zod").ZodLiteral<"image">;
|
|
130
|
-
data: import("zod").ZodEffects<import("zod").ZodString, string, string>;
|
|
131
|
-
mimeType: import("zod").ZodString;
|
|
132
|
-
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
133
|
-
}, "strip", import("zod").ZodTypeAny, {
|
|
119
|
+
} | {
|
|
134
120
|
type: "image";
|
|
135
121
|
data: string;
|
|
136
122
|
mimeType: string;
|
|
137
123
|
_meta?: Record<string, unknown> | undefined;
|
|
138
|
-
}
|
|
139
|
-
type: "
|
|
124
|
+
} | {
|
|
125
|
+
type: "audio";
|
|
140
126
|
data: string;
|
|
141
127
|
mimeType: string;
|
|
142
128
|
_meta?: Record<string, unknown> | undefined;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
129
|
+
} | {
|
|
130
|
+
[x: string]: unknown;
|
|
131
|
+
type: "tool_use";
|
|
132
|
+
name: string;
|
|
133
|
+
id: string;
|
|
134
|
+
input: {
|
|
135
|
+
[x: string]: unknown;
|
|
136
|
+
};
|
|
137
|
+
_meta?: {
|
|
138
|
+
[x: string]: unknown;
|
|
139
|
+
} | undefined;
|
|
140
|
+
} | {
|
|
141
|
+
[x: string]: unknown;
|
|
142
|
+
type: "tool_result";
|
|
143
|
+
toolUseId: string;
|
|
144
|
+
content: ({
|
|
145
|
+
type: "text";
|
|
146
|
+
text: string;
|
|
147
|
+
_meta?: Record<string, unknown> | undefined;
|
|
148
|
+
} | {
|
|
149
|
+
type: "image";
|
|
150
|
+
data: string;
|
|
151
|
+
mimeType: string;
|
|
152
|
+
_meta?: Record<string, unknown> | undefined;
|
|
153
|
+
} | {
|
|
154
|
+
type: "audio";
|
|
155
|
+
data: string;
|
|
156
|
+
mimeType: string;
|
|
157
|
+
_meta?: Record<string, unknown> | undefined;
|
|
158
|
+
} | {
|
|
159
|
+
type: "resource";
|
|
160
|
+
resource: {
|
|
161
|
+
uri: string;
|
|
162
|
+
text: string;
|
|
163
|
+
mimeType?: string | undefined;
|
|
164
|
+
_meta?: Record<string, unknown> | undefined;
|
|
165
|
+
} | {
|
|
166
|
+
uri: string;
|
|
167
|
+
blob: string;
|
|
168
|
+
mimeType?: string | undefined;
|
|
169
|
+
_meta?: Record<string, unknown> | undefined;
|
|
170
|
+
};
|
|
171
|
+
_meta?: Record<string, unknown> | undefined;
|
|
172
|
+
} | {
|
|
173
|
+
uri: string;
|
|
174
|
+
name: string;
|
|
175
|
+
type: "resource_link";
|
|
176
|
+
description?: string | undefined;
|
|
177
|
+
mimeType?: string | undefined;
|
|
178
|
+
_meta?: {
|
|
179
|
+
[x: string]: unknown;
|
|
180
|
+
} | undefined;
|
|
181
|
+
icons?: {
|
|
182
|
+
src: string;
|
|
183
|
+
mimeType?: string | undefined;
|
|
184
|
+
sizes?: string[] | undefined;
|
|
185
|
+
}[] | undefined;
|
|
186
|
+
title?: string | undefined;
|
|
187
|
+
})[];
|
|
188
|
+
structuredContent?: {
|
|
189
|
+
[x: string]: unknown;
|
|
190
|
+
} | undefined;
|
|
191
|
+
isError?: boolean | undefined;
|
|
192
|
+
_meta?: {
|
|
193
|
+
[x: string]: unknown;
|
|
194
|
+
} | undefined;
|
|
195
|
+
} | ({
|
|
196
|
+
type: "text";
|
|
197
|
+
text: string;
|
|
198
|
+
_meta?: Record<string, unknown> | undefined;
|
|
199
|
+
} | {
|
|
200
|
+
type: "image";
|
|
150
201
|
data: string;
|
|
151
202
|
mimeType: string;
|
|
152
203
|
_meta?: Record<string, unknown> | undefined;
|
|
153
|
-
}
|
|
204
|
+
} | {
|
|
154
205
|
type: "audio";
|
|
155
206
|
data: string;
|
|
156
207
|
mimeType: string;
|
|
157
208
|
_meta?: Record<string, unknown> | undefined;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
209
|
+
} | {
|
|
210
|
+
[x: string]: unknown;
|
|
211
|
+
type: "tool_use";
|
|
212
|
+
name: string;
|
|
213
|
+
id: string;
|
|
214
|
+
input: {
|
|
215
|
+
[x: string]: unknown;
|
|
216
|
+
};
|
|
217
|
+
_meta?: {
|
|
218
|
+
[x: string]: unknown;
|
|
219
|
+
} | undefined;
|
|
220
|
+
} | {
|
|
221
|
+
[x: string]: unknown;
|
|
222
|
+
type: "tool_result";
|
|
223
|
+
toolUseId: string;
|
|
224
|
+
content: ({
|
|
225
|
+
type: "text";
|
|
226
|
+
text: string;
|
|
227
|
+
_meta?: Record<string, unknown> | undefined;
|
|
228
|
+
} | {
|
|
229
|
+
type: "image";
|
|
230
|
+
data: string;
|
|
231
|
+
mimeType: string;
|
|
232
|
+
_meta?: Record<string, unknown> | undefined;
|
|
233
|
+
} | {
|
|
234
|
+
type: "audio";
|
|
235
|
+
data: string;
|
|
236
|
+
mimeType: string;
|
|
237
|
+
_meta?: Record<string, unknown> | undefined;
|
|
238
|
+
} | {
|
|
239
|
+
type: "resource";
|
|
240
|
+
resource: {
|
|
241
|
+
uri: string;
|
|
242
|
+
text: string;
|
|
243
|
+
mimeType?: string | undefined;
|
|
244
|
+
_meta?: Record<string, unknown> | undefined;
|
|
245
|
+
} | {
|
|
246
|
+
uri: string;
|
|
247
|
+
blob: string;
|
|
248
|
+
mimeType?: string | undefined;
|
|
249
|
+
_meta?: Record<string, unknown> | undefined;
|
|
250
|
+
};
|
|
251
|
+
_meta?: Record<string, unknown> | undefined;
|
|
252
|
+
} | {
|
|
253
|
+
uri: string;
|
|
254
|
+
name: string;
|
|
255
|
+
type: "resource_link";
|
|
256
|
+
description?: string | undefined;
|
|
257
|
+
mimeType?: string | undefined;
|
|
258
|
+
_meta?: {
|
|
259
|
+
[x: string]: unknown;
|
|
260
|
+
} | undefined;
|
|
261
|
+
icons?: {
|
|
262
|
+
src: string;
|
|
263
|
+
mimeType?: string | undefined;
|
|
264
|
+
sizes?: string[] | undefined;
|
|
265
|
+
}[] | undefined;
|
|
266
|
+
title?: string | undefined;
|
|
267
|
+
})[];
|
|
268
|
+
structuredContent?: {
|
|
269
|
+
[x: string]: unknown;
|
|
270
|
+
} | undefined;
|
|
271
|
+
isError?: boolean | undefined;
|
|
272
|
+
_meta?: {
|
|
273
|
+
[x: string]: unknown;
|
|
274
|
+
} | undefined;
|
|
275
|
+
})[];
|
|
276
|
+
_meta?: Record<string, unknown> | undefined;
|
|
277
|
+
stopReason?: string | undefined;
|
|
278
|
+
}>;
|
|
279
|
+
/**
|
|
280
|
+
* Creates an elicitation request for the given parameters.
|
|
281
|
+
* @param params The parameters for the form elicitation request (explicit mode: 'form').
|
|
282
|
+
* @param options Optional request options.
|
|
283
|
+
* @returns The result of the elicitation request.
|
|
284
|
+
*/
|
|
285
|
+
elicitInput(params: ElicitRequestFormParams, options?: RequestOptions): Promise<ElicitResult>;
|
|
286
|
+
/**
|
|
287
|
+
* Creates an elicitation request for the given parameters.
|
|
288
|
+
* @param params The parameters for the URL elicitation request (with url and elicitationId).
|
|
289
|
+
* @param options Optional request options.
|
|
290
|
+
* @returns The result of the elicitation request.
|
|
291
|
+
*/
|
|
292
|
+
elicitInput(params: ElicitRequestURLParams, options?: RequestOptions): Promise<ElicitResult>;
|
|
293
|
+
/**
|
|
294
|
+
* Creates an elicitation request for the given parameters.
|
|
295
|
+
* @deprecated Use the overloads with explicit `mode: 'form' | 'url'` instead.
|
|
296
|
+
* @param params The parameters for the form elicitation request (legacy signature without mode).
|
|
297
|
+
* @param options Optional request options.
|
|
298
|
+
* @returns The result of the elicitation request.
|
|
299
|
+
*/
|
|
300
|
+
elicitInput(params: LegacyElicitRequestFormParams, options?: RequestOptions): Promise<ElicitResult>;
|
|
301
|
+
/**
|
|
302
|
+
* Creates a reusable callback that, when invoked, will send a `notifications/elicitation/complete`
|
|
303
|
+
* notification for the specified elicitation ID.
|
|
304
|
+
*
|
|
305
|
+
* @param elicitationId The ID of the elicitation to mark as complete.
|
|
306
|
+
* @param options Optional notification options. Useful when the completion notification should be related to a prior request.
|
|
307
|
+
* @returns A function that emits the completion notification when awaited.
|
|
308
|
+
*/
|
|
309
|
+
createElicitationCompletionNotifier(elicitationId: string, options?: NotificationOptions): () => Promise<void>;
|
|
310
|
+
listRoots(params?: ListRootsRequest['params'], options?: RequestOptions): Promise<{
|
|
311
|
+
[x: string]: unknown;
|
|
312
|
+
roots: {
|
|
169
313
|
uri: string;
|
|
170
|
-
_meta?: Record<string, unknown> | undefined;
|
|
171
314
|
name?: string | undefined;
|
|
172
|
-
}, {
|
|
173
|
-
uri: string;
|
|
174
315
|
_meta?: Record<string, unknown> | undefined;
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
316
|
+
}[];
|
|
317
|
+
_meta?: Record<string, unknown> | undefined;
|
|
318
|
+
}>;
|
|
178
319
|
/**
|
|
179
320
|
* Sends a logging message to the client, if connected.
|
|
180
321
|
* Note: You only need to send the parameters object, not the entire JSON RPC message
|
|
@@ -188,4 +329,5 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
188
329
|
sendToolListChanged(): Promise<void>;
|
|
189
330
|
sendPromptListChanged(): Promise<void>;
|
|
190
331
|
}
|
|
332
|
+
export {};
|
|
191
333
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/server/index.js
CHANGED
|
@@ -97,6 +97,7 @@ export class Server extends Protocol {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
assertNotificationCapability(method) {
|
|
100
|
+
var _a, _b;
|
|
100
101
|
switch (method) {
|
|
101
102
|
case 'notifications/message':
|
|
102
103
|
if (!this._capabilities.logging) {
|
|
@@ -119,6 +120,11 @@ export class Server extends Protocol {
|
|
|
119
120
|
throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);
|
|
120
121
|
}
|
|
121
122
|
break;
|
|
123
|
+
case 'notifications/elicitation/complete':
|
|
124
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.elicitation) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
125
|
+
throw new Error(`Client does not support URL elicitation (required for ${method})`);
|
|
126
|
+
}
|
|
127
|
+
break;
|
|
122
128
|
case 'notifications/cancelled':
|
|
123
129
|
// Cancellation notifications are always allowed
|
|
124
130
|
break;
|
|
@@ -197,25 +203,64 @@ export class Server extends Protocol {
|
|
|
197
203
|
async createMessage(params, options) {
|
|
198
204
|
return this.request({ method: 'sampling/createMessage', params }, CreateMessageResultSchema, options);
|
|
199
205
|
}
|
|
206
|
+
// Implementation (not visible to callers)
|
|
200
207
|
async elicitInput(params, options) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (!validationResult.valid) {
|
|
208
|
-
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
|
|
208
|
+
var _a, _b, _c, _d;
|
|
209
|
+
const mode = ('mode' in params ? params.mode : 'form');
|
|
210
|
+
switch (mode) {
|
|
211
|
+
case 'url': {
|
|
212
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.elicitation) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
213
|
+
throw new Error('Client does not support url elicitation.');
|
|
209
214
|
}
|
|
215
|
+
const urlParams = params;
|
|
216
|
+
return this.request({ method: 'elicitation/create', params: urlParams }, ElicitResultSchema, options);
|
|
210
217
|
}
|
|
211
|
-
|
|
212
|
-
if (
|
|
213
|
-
throw
|
|
218
|
+
case 'form': {
|
|
219
|
+
if (!((_d = (_c = this._clientCapabilities) === null || _c === void 0 ? void 0 : _c.elicitation) === null || _d === void 0 ? void 0 : _d.form)) {
|
|
220
|
+
throw new Error('Client does not support form elicitation.');
|
|
214
221
|
}
|
|
215
|
-
|
|
222
|
+
const formParams = 'mode' in params
|
|
223
|
+
? params
|
|
224
|
+
: { ...params, mode: 'form' };
|
|
225
|
+
const result = await this.request({ method: 'elicitation/create', params: formParams }, ElicitResultSchema, options);
|
|
226
|
+
if (result.action === 'accept' && result.content && formParams.requestedSchema) {
|
|
227
|
+
try {
|
|
228
|
+
const validator = this._jsonSchemaValidator.getValidator(formParams.requestedSchema);
|
|
229
|
+
const validationResult = validator(result.content);
|
|
230
|
+
if (!validationResult.valid) {
|
|
231
|
+
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
if (error instanceof McpError) {
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error instanceof Error ? error.message : String(error)}`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
216
242
|
}
|
|
217
243
|
}
|
|
218
|
-
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Creates a reusable callback that, when invoked, will send a `notifications/elicitation/complete`
|
|
247
|
+
* notification for the specified elicitation ID.
|
|
248
|
+
*
|
|
249
|
+
* @param elicitationId The ID of the elicitation to mark as complete.
|
|
250
|
+
* @param options Optional notification options. Useful when the completion notification should be related to a prior request.
|
|
251
|
+
* @returns A function that emits the completion notification when awaited.
|
|
252
|
+
*/
|
|
253
|
+
createElicitationCompletionNotifier(elicitationId, options) {
|
|
254
|
+
var _a, _b;
|
|
255
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.elicitation) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
256
|
+
throw new Error('Client does not support URL elicitation (required for notifications/elicitation/complete)');
|
|
257
|
+
}
|
|
258
|
+
return () => this.notification({
|
|
259
|
+
method: 'notifications/elicitation/complete',
|
|
260
|
+
params: {
|
|
261
|
+
elicitationId
|
|
262
|
+
}
|
|
263
|
+
}, options);
|
|
219
264
|
}
|
|
220
265
|
async listRoots(params, options) {
|
|
221
266
|
return this.request({ method: 'roots/list', params }, ListRootsResultSchema, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
|