@modelcontextprotocol/sdk 1.1.1 → 1.3.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 +358 -58
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +134 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/{client → cjs/client}/index.d.ts +8 -2
- package/dist/cjs/client/index.d.ts.map +1 -0
- package/dist/cjs/client/index.js +222 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/sse.d.ts.map +1 -0
- package/dist/cjs/client/sse.js +99 -0
- package/dist/cjs/client/sse.js.map +1 -0
- package/dist/cjs/client/stdio.d.ts.map +1 -0
- package/dist/cjs/client/stdio.js +156 -0
- package/dist/cjs/client/stdio.js.map +1 -0
- package/dist/cjs/client/websocket.d.ts.map +1 -0
- package/dist/cjs/client/websocket.js +65 -0
- package/dist/cjs/client/websocket.js.map +1 -0
- package/dist/cjs/inMemory.d.ts.map +1 -0
- package/dist/cjs/inMemory.js +51 -0
- package/dist/cjs/inMemory.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/server/completable.d.ts +22 -0
- package/dist/cjs/server/completable.d.ts.map +1 -0
- package/dist/cjs/server/completable.js +65 -0
- package/dist/cjs/server/completable.js.map +1 -0
- package/dist/{server → cjs/server}/index.d.ts +13 -2
- package/dist/cjs/server/index.d.ts.map +1 -0
- package/dist/cjs/server/index.js +200 -0
- package/dist/cjs/server/index.js.map +1 -0
- package/dist/cjs/server/mcp.d.ts +150 -0
- package/dist/cjs/server/mcp.d.ts.map +1 -0
- package/dist/cjs/server/mcp.js +365 -0
- package/dist/cjs/server/mcp.js.map +1 -0
- package/dist/cjs/server/sse.d.ts.map +1 -0
- package/dist/cjs/server/sse.js +123 -0
- package/dist/cjs/server/sse.js.map +1 -0
- package/dist/cjs/server/stdio.d.ts.map +1 -0
- package/dist/cjs/server/stdio.js +85 -0
- package/dist/cjs/server/stdio.js.map +1 -0
- package/dist/{shared → cjs/shared}/protocol.d.ts +6 -1
- package/dist/cjs/shared/protocol.d.ts.map +1 -0
- package/dist/cjs/shared/protocol.js +321 -0
- package/dist/cjs/shared/protocol.js.map +1 -0
- package/dist/cjs/shared/stdio.d.ts.map +1 -0
- package/dist/cjs/shared/stdio.js +37 -0
- package/dist/cjs/shared/stdio.js.map +1 -0
- package/dist/cjs/shared/transport.d.ts.map +1 -0
- package/dist/cjs/shared/transport.js +3 -0
- package/dist/{shared → cjs/shared}/transport.js.map +1 -1
- package/dist/cjs/shared/uriTemplate.d.ts +24 -0
- package/dist/cjs/shared/uriTemplate.d.ts.map +1 -0
- package/dist/cjs/shared/uriTemplate.js +242 -0
- package/dist/cjs/shared/uriTemplate.js.map +1 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +1002 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/cli.d.ts +2 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/client/index.d.ts +779 -0
- package/dist/esm/client/index.d.ts.map +1 -0
- package/dist/{client → esm/client}/index.js +14 -2
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/sse.d.ts +27 -0
- package/dist/esm/client/sse.d.ts.map +1 -0
- package/dist/esm/client/sse.js.map +1 -0
- package/dist/esm/client/stdio.d.ts +63 -0
- package/dist/esm/client/stdio.d.ts.map +1 -0
- package/dist/esm/client/stdio.js.map +1 -0
- package/dist/esm/client/websocket.d.ts +17 -0
- package/dist/esm/client/websocket.d.ts.map +1 -0
- package/dist/esm/client/websocket.js.map +1 -0
- package/dist/esm/inMemory.d.ts +20 -0
- package/dist/esm/inMemory.d.ts.map +1 -0
- package/dist/esm/inMemory.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/server/completable.d.ts +22 -0
- package/dist/esm/server/completable.d.ts.map +1 -0
- package/dist/esm/server/completable.js +60 -0
- package/dist/esm/server/completable.js.map +1 -0
- package/dist/esm/server/index.d.ts +123 -0
- package/dist/esm/server/index.d.ts.map +1 -0
- package/dist/{server → esm/server}/index.js +16 -2
- package/dist/esm/server/index.js.map +1 -0
- package/dist/esm/server/mcp.d.ts +150 -0
- package/dist/esm/server/mcp.d.ts.map +1 -0
- package/dist/esm/server/mcp.js +360 -0
- package/dist/esm/server/mcp.js.map +1 -0
- package/dist/esm/server/sse.d.ts +46 -0
- package/dist/esm/server/sse.d.ts.map +1 -0
- package/dist/esm/server/sse.js.map +1 -0
- package/dist/esm/server/stdio.d.ts +28 -0
- package/dist/esm/server/stdio.d.ts.map +1 -0
- package/dist/esm/server/stdio.js.map +1 -0
- package/dist/esm/shared/protocol.d.ts +162 -0
- package/dist/esm/shared/protocol.d.ts.map +1 -0
- package/dist/{shared → esm/shared}/protocol.js +19 -0
- package/dist/esm/shared/protocol.js.map +1 -0
- package/dist/esm/shared/stdio.d.ts +13 -0
- package/dist/esm/shared/stdio.d.ts.map +1 -0
- package/dist/esm/shared/stdio.js.map +1 -0
- package/dist/esm/shared/transport.d.ts +39 -0
- package/dist/esm/shared/transport.d.ts.map +1 -0
- package/dist/esm/shared/transport.js.map +1 -0
- package/dist/esm/shared/uriTemplate.d.ts +24 -0
- package/dist/esm/shared/uriTemplate.d.ts.map +1 -0
- package/dist/esm/shared/uriTemplate.js +238 -0
- package/dist/esm/shared/uriTemplate.js.map +1 -0
- package/dist/esm/types.d.ts +26431 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +12 -6
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/sse.d.ts.map +0 -1
- package/dist/client/sse.js.map +0 -1
- package/dist/client/stdio.d.ts.map +0 -1
- package/dist/client/stdio.js.map +0 -1
- package/dist/client/websocket.d.ts.map +0 -1
- package/dist/client/websocket.js.map +0 -1
- package/dist/inMemory.d.ts.map +0 -1
- package/dist/inMemory.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/sse.d.ts.map +0 -1
- package/dist/server/sse.js.map +0 -1
- package/dist/server/stdio.d.ts.map +0 -1
- package/dist/server/stdio.js.map +0 -1
- package/dist/shared/protocol.d.ts.map +0 -1
- package/dist/shared/protocol.js.map +0 -1
- package/dist/shared/stdio.d.ts.map +0 -1
- package/dist/shared/stdio.js.map +0 -1
- package/dist/shared/transport.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
- /package/dist/{client → cjs/client}/sse.d.ts +0 -0
- /package/dist/{client → cjs/client}/stdio.d.ts +0 -0
- /package/dist/{client → cjs/client}/websocket.d.ts +0 -0
- /package/dist/{inMemory.d.ts → cjs/inMemory.d.ts} +0 -0
- /package/dist/{server → cjs/server}/sse.d.ts +0 -0
- /package/dist/{server → cjs/server}/stdio.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/stdio.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/transport.d.ts +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{cli.js → esm/cli.js} +0 -0
- /package/dist/{client → esm/client}/sse.js +0 -0
- /package/dist/{client → esm/client}/stdio.js +0 -0
- /package/dist/{client → esm/client}/websocket.js +0 -0
- /package/dist/{inMemory.js → esm/inMemory.js} +0 -0
- /package/dist/{server → esm/server}/sse.js +0 -0
- /package/dist/{server → esm/server}/stdio.js +0 -0
- /package/dist/{shared → esm/shared}/stdio.js +0 -0
- /package/dist/{shared → esm/shared}/transport.js +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ZodTypeAny, ZodTypeDef, ZodType, ParseInput, ParseReturnType, RawCreateParams } from "zod";
|
|
2
|
+
export declare enum McpZodTypeKind {
|
|
3
|
+
Completable = "McpCompletable"
|
|
4
|
+
}
|
|
5
|
+
export type CompleteCallback<T extends ZodTypeAny = ZodTypeAny> = (value: T["_input"]) => T["_input"][] | Promise<T["_input"][]>;
|
|
6
|
+
export interface CompletableDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef {
|
|
7
|
+
type: T;
|
|
8
|
+
complete: CompleteCallback<T>;
|
|
9
|
+
typeName: McpZodTypeKind.Completable;
|
|
10
|
+
}
|
|
11
|
+
export declare class Completable<T extends ZodTypeAny> extends ZodType<T["_output"], CompletableDef<T>, T["_input"]> {
|
|
12
|
+
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
|
|
13
|
+
unwrap(): T;
|
|
14
|
+
static create: <T_1 extends ZodTypeAny>(type: T_1, params: RawCreateParams & {
|
|
15
|
+
complete: CompleteCallback<T_1>;
|
|
16
|
+
}) => Completable<T_1>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Wraps a Zod type to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.
|
|
20
|
+
*/
|
|
21
|
+
export declare function completable<T extends ZodTypeAny>(schema: T, complete: CompleteCallback<T>): Completable<T>;
|
|
22
|
+
//# sourceMappingURL=completable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completable.d.ts","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,eAAe,EACf,eAAe,EAGhB,MAAM,KAAK,CAAC;AAEb,oBAAY,cAAc;IACxB,WAAW,mBAAmB;CAC/B;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CAChE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KACf,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE5C,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAC/D,SAAQ,UAAU;IAClB,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC;CACtC;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,OAAO,CAC5D,CAAC,CAAC,SAAS,CAAC,EACZ,cAAc,CAAC,CAAC,CAAC,EACjB,CAAC,CAAC,QAAQ,CAAC,CACZ;IACC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAU3D,MAAM;IAIN,MAAM,CAAC,MAAM,eAAc,UAAU,QAC7B,GAAC,UACC,eAAe,GAAG;QACxB,QAAQ,EAAE,gBAAgB,CAAC,GAAC,CAAC,CAAC;KAC/B,KACA,WAAW,CAAC,GAAC,CAAC,CAOf;CACH;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAC9C,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,WAAW,CAAC,CAAC,CAAC,CAEhB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Completable = exports.McpZodTypeKind = void 0;
|
|
4
|
+
exports.completable = completable;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
var McpZodTypeKind;
|
|
7
|
+
(function (McpZodTypeKind) {
|
|
8
|
+
McpZodTypeKind["Completable"] = "McpCompletable";
|
|
9
|
+
})(McpZodTypeKind || (exports.McpZodTypeKind = McpZodTypeKind = {}));
|
|
10
|
+
class Completable extends zod_1.ZodType {
|
|
11
|
+
_parse(input) {
|
|
12
|
+
const { ctx } = this._processInputParams(input);
|
|
13
|
+
const data = ctx.data;
|
|
14
|
+
return this._def.type._parse({
|
|
15
|
+
data,
|
|
16
|
+
path: ctx.path,
|
|
17
|
+
parent: ctx,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
unwrap() {
|
|
21
|
+
return this._def.type;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.Completable = Completable;
|
|
25
|
+
Completable.create = (type, params) => {
|
|
26
|
+
return new Completable({
|
|
27
|
+
type,
|
|
28
|
+
typeName: McpZodTypeKind.Completable,
|
|
29
|
+
complete: params.complete,
|
|
30
|
+
...processCreateParams(params),
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Wraps a Zod type to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.
|
|
35
|
+
*/
|
|
36
|
+
function completable(schema, complete) {
|
|
37
|
+
return Completable.create(schema, { ...schema._def, complete });
|
|
38
|
+
}
|
|
39
|
+
// Not sure why this isn't exported from Zod:
|
|
40
|
+
// https://github.com/colinhacks/zod/blob/f7ad26147ba291cb3fb257545972a8e00e767470/src/types.ts#L130
|
|
41
|
+
function processCreateParams(params) {
|
|
42
|
+
if (!params)
|
|
43
|
+
return {};
|
|
44
|
+
const { errorMap, invalid_type_error, required_error, description } = params;
|
|
45
|
+
if (errorMap && (invalid_type_error || required_error)) {
|
|
46
|
+
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
|
|
47
|
+
}
|
|
48
|
+
if (errorMap)
|
|
49
|
+
return { errorMap: errorMap, description };
|
|
50
|
+
const customMap = (iss, ctx) => {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
const { message } = params;
|
|
53
|
+
if (iss.code === "invalid_enum_value") {
|
|
54
|
+
return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
|
|
55
|
+
}
|
|
56
|
+
if (typeof ctx.data === "undefined") {
|
|
57
|
+
return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };
|
|
58
|
+
}
|
|
59
|
+
if (iss.code !== "invalid_type")
|
|
60
|
+
return { message: ctx.defaultError };
|
|
61
|
+
return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };
|
|
62
|
+
};
|
|
63
|
+
return { errorMap: customMap, description };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=completable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completable.js","sourceRoot":"","sources":["../../../src/server/completable.ts"],"names":[],"mappings":";;;AA+DA,kCAKC;AApED,6BASa;AAEb,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,gDAA8B,CAAA;AAChC,CAAC,EAFW,cAAc,8BAAd,cAAc,QAEzB;AAaD,MAAa,WAAkC,SAAQ,aAItD;IACC,MAAM,CAAC,KAAiB;QACtB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;;AAjBH,kCAgCC;AAbQ,kBAAM,GAAG,CACd,IAAO,EACP,MAEC,EACe,EAAE;IAClB,OAAO,IAAI,WAAW,CAAC;QACrB,IAAI;QACJ,QAAQ,EAAE,cAAc,CAAC,WAAW;QACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,mBAAmB,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAGJ;;GAEG;AACH,SAAgB,WAAW,CACzB,MAAS,EACT,QAA6B;IAE7B,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,6CAA6C;AAC7C,oGAAoG;AACpG,SAAS,mBAAmB,CAAC,MAAuB;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC7E,IAAI,QAAQ,IAAI,CAAC,kBAAkB,IAAI,cAAc,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACzD,MAAM,SAAS,GAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;QAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE3B,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,EAAE,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,mCAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,kBAAkB,mCAAI,GAAG,CAAC,YAAY,EAAE,CAAC;IACxE,CAAC,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -4,7 +4,11 @@ export type ServerOptions = ProtocolOptions & {
|
|
|
4
4
|
/**
|
|
5
5
|
* Capabilities to advertise as being supported by this server.
|
|
6
6
|
*/
|
|
7
|
-
capabilities
|
|
7
|
+
capabilities?: ServerCapabilities;
|
|
8
|
+
/**
|
|
9
|
+
* Optional instructions describing how to use the server and its features.
|
|
10
|
+
*/
|
|
11
|
+
instructions?: string;
|
|
8
12
|
};
|
|
9
13
|
/**
|
|
10
14
|
* An MCP server on top of a pluggable transport.
|
|
@@ -36,6 +40,7 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
36
40
|
private _clientCapabilities?;
|
|
37
41
|
private _clientVersion?;
|
|
38
42
|
private _capabilities;
|
|
43
|
+
private _instructions?;
|
|
39
44
|
/**
|
|
40
45
|
* Callback for when initialization has fully completed (i.e., the client has sent an `initialized` notification).
|
|
41
46
|
*/
|
|
@@ -43,7 +48,13 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
43
48
|
/**
|
|
44
49
|
* Initializes this server with the given name and version information.
|
|
45
50
|
*/
|
|
46
|
-
constructor(_serverInfo: Implementation, options
|
|
51
|
+
constructor(_serverInfo: Implementation, options?: ServerOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Registers new capabilities. This can only be called before connecting to a transport.
|
|
54
|
+
*
|
|
55
|
+
* The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
|
|
56
|
+
*/
|
|
57
|
+
registerCapabilities(capabilities: ServerCapabilities): void;
|
|
47
58
|
protected assertCapabilityForMethod(method: RequestT["method"]): void;
|
|
48
59
|
protected assertNotificationCapability(method: (ServerNotification | NotificationT)["method"]): void;
|
|
49
60
|
protected assertRequestHandlerCapability(method: string): void;
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Server = void 0;
|
|
4
|
+
const protocol_js_1 = require("../shared/protocol.js");
|
|
5
|
+
const types_js_1 = require("../types.js");
|
|
6
|
+
/**
|
|
7
|
+
* An MCP server on top of a pluggable transport.
|
|
8
|
+
*
|
|
9
|
+
* This server will automatically respond to the initialization flow as initiated from the client.
|
|
10
|
+
*
|
|
11
|
+
* To use with custom types, extend the base Request/Notification/Result types and pass them as type parameters:
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Custom schemas
|
|
15
|
+
* const CustomRequestSchema = RequestSchema.extend({...})
|
|
16
|
+
* const CustomNotificationSchema = NotificationSchema.extend({...})
|
|
17
|
+
* const CustomResultSchema = ResultSchema.extend({...})
|
|
18
|
+
*
|
|
19
|
+
* // Type aliases
|
|
20
|
+
* type CustomRequest = z.infer<typeof CustomRequestSchema>
|
|
21
|
+
* type CustomNotification = z.infer<typeof CustomNotificationSchema>
|
|
22
|
+
* type CustomResult = z.infer<typeof CustomResultSchema>
|
|
23
|
+
*
|
|
24
|
+
* // Create typed server
|
|
25
|
+
* const server = new Server<CustomRequest, CustomNotification, CustomResult>({
|
|
26
|
+
* name: "CustomServer",
|
|
27
|
+
* version: "1.0.0"
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
class Server extends protocol_js_1.Protocol {
|
|
32
|
+
/**
|
|
33
|
+
* Initializes this server with the given name and version information.
|
|
34
|
+
*/
|
|
35
|
+
constructor(_serverInfo, options) {
|
|
36
|
+
var _a;
|
|
37
|
+
super(options);
|
|
38
|
+
this._serverInfo = _serverInfo;
|
|
39
|
+
this._capabilities = (_a = options === null || options === void 0 ? void 0 : options.capabilities) !== null && _a !== void 0 ? _a : {};
|
|
40
|
+
this._instructions = options === null || options === void 0 ? void 0 : options.instructions;
|
|
41
|
+
this.setRequestHandler(types_js_1.InitializeRequestSchema, (request) => this._oninitialize(request));
|
|
42
|
+
this.setNotificationHandler(types_js_1.InitializedNotificationSchema, () => { var _a; return (_a = this.oninitialized) === null || _a === void 0 ? void 0 : _a.call(this); });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Registers new capabilities. This can only be called before connecting to a transport.
|
|
46
|
+
*
|
|
47
|
+
* The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
|
|
48
|
+
*/
|
|
49
|
+
registerCapabilities(capabilities) {
|
|
50
|
+
if (this.transport) {
|
|
51
|
+
throw new Error("Cannot register capabilities after connecting to transport");
|
|
52
|
+
}
|
|
53
|
+
this._capabilities = (0, protocol_js_1.mergeCapabilities)(this._capabilities, capabilities);
|
|
54
|
+
}
|
|
55
|
+
assertCapabilityForMethod(method) {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
switch (method) {
|
|
58
|
+
case "sampling/createMessage":
|
|
59
|
+
if (!((_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.sampling)) {
|
|
60
|
+
throw new Error(`Client does not support sampling (required for ${method})`);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
case "roots/list":
|
|
64
|
+
if (!((_b = this._clientCapabilities) === null || _b === void 0 ? void 0 : _b.roots)) {
|
|
65
|
+
throw new Error(`Client does not support listing roots (required for ${method})`);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
case "ping":
|
|
69
|
+
// No specific capability required for ping
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
assertNotificationCapability(method) {
|
|
74
|
+
switch (method) {
|
|
75
|
+
case "notifications/message":
|
|
76
|
+
if (!this._capabilities.logging) {
|
|
77
|
+
throw new Error(`Server does not support logging (required for ${method})`);
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case "notifications/resources/updated":
|
|
81
|
+
case "notifications/resources/list_changed":
|
|
82
|
+
if (!this._capabilities.resources) {
|
|
83
|
+
throw new Error(`Server does not support notifying about resources (required for ${method})`);
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
case "notifications/tools/list_changed":
|
|
87
|
+
if (!this._capabilities.tools) {
|
|
88
|
+
throw new Error(`Server does not support notifying of tool list changes (required for ${method})`);
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
case "notifications/prompts/list_changed":
|
|
92
|
+
if (!this._capabilities.prompts) {
|
|
93
|
+
throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
case "notifications/cancelled":
|
|
97
|
+
// Cancellation notifications are always allowed
|
|
98
|
+
break;
|
|
99
|
+
case "notifications/progress":
|
|
100
|
+
// Progress notifications are always allowed
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
assertRequestHandlerCapability(method) {
|
|
105
|
+
switch (method) {
|
|
106
|
+
case "sampling/createMessage":
|
|
107
|
+
if (!this._capabilities.sampling) {
|
|
108
|
+
throw new Error(`Server does not support sampling (required for ${method})`);
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
case "logging/setLevel":
|
|
112
|
+
if (!this._capabilities.logging) {
|
|
113
|
+
throw new Error(`Server does not support logging (required for ${method})`);
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
case "prompts/get":
|
|
117
|
+
case "prompts/list":
|
|
118
|
+
if (!this._capabilities.prompts) {
|
|
119
|
+
throw new Error(`Server does not support prompts (required for ${method})`);
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
case "resources/list":
|
|
123
|
+
case "resources/templates/list":
|
|
124
|
+
case "resources/read":
|
|
125
|
+
if (!this._capabilities.resources) {
|
|
126
|
+
throw new Error(`Server does not support resources (required for ${method})`);
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
129
|
+
case "tools/call":
|
|
130
|
+
case "tools/list":
|
|
131
|
+
if (!this._capabilities.tools) {
|
|
132
|
+
throw new Error(`Server does not support tools (required for ${method})`);
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
case "ping":
|
|
136
|
+
case "initialize":
|
|
137
|
+
// No specific capability required for these methods
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async _oninitialize(request) {
|
|
142
|
+
const requestedVersion = request.params.protocolVersion;
|
|
143
|
+
this._clientCapabilities = request.params.capabilities;
|
|
144
|
+
this._clientVersion = request.params.clientInfo;
|
|
145
|
+
return {
|
|
146
|
+
protocolVersion: types_js_1.SUPPORTED_PROTOCOL_VERSIONS.includes(requestedVersion)
|
|
147
|
+
? requestedVersion
|
|
148
|
+
: types_js_1.LATEST_PROTOCOL_VERSION,
|
|
149
|
+
capabilities: this.getCapabilities(),
|
|
150
|
+
serverInfo: this._serverInfo,
|
|
151
|
+
...(this._instructions && { instructions: this._instructions }),
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* After initialization has completed, this will be populated with the client's reported capabilities.
|
|
156
|
+
*/
|
|
157
|
+
getClientCapabilities() {
|
|
158
|
+
return this._clientCapabilities;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* After initialization has completed, this will be populated with information about the client's name and version.
|
|
162
|
+
*/
|
|
163
|
+
getClientVersion() {
|
|
164
|
+
return this._clientVersion;
|
|
165
|
+
}
|
|
166
|
+
getCapabilities() {
|
|
167
|
+
return this._capabilities;
|
|
168
|
+
}
|
|
169
|
+
async ping() {
|
|
170
|
+
return this.request({ method: "ping" }, types_js_1.EmptyResultSchema);
|
|
171
|
+
}
|
|
172
|
+
async createMessage(params, options) {
|
|
173
|
+
return this.request({ method: "sampling/createMessage", params }, types_js_1.CreateMessageResultSchema, options);
|
|
174
|
+
}
|
|
175
|
+
async listRoots(params, options) {
|
|
176
|
+
return this.request({ method: "roots/list", params }, types_js_1.ListRootsResultSchema, options);
|
|
177
|
+
}
|
|
178
|
+
async sendLoggingMessage(params) {
|
|
179
|
+
return this.notification({ method: "notifications/message", params });
|
|
180
|
+
}
|
|
181
|
+
async sendResourceUpdated(params) {
|
|
182
|
+
return this.notification({
|
|
183
|
+
method: "notifications/resources/updated",
|
|
184
|
+
params,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
async sendResourceListChanged() {
|
|
188
|
+
return this.notification({
|
|
189
|
+
method: "notifications/resources/list_changed",
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
async sendToolListChanged() {
|
|
193
|
+
return this.notification({ method: "notifications/tools/list_changed" });
|
|
194
|
+
}
|
|
195
|
+
async sendPromptListChanged() {
|
|
196
|
+
return this.notification({ method: "notifications/prompts/list_changed" });
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.Server = Server;
|
|
200
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
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";
|
|
4
|
+
import { UriTemplate, Variables } from "../shared/uriTemplate.js";
|
|
5
|
+
import { RequestHandlerExtra } from "../shared/protocol.js";
|
|
6
|
+
import { Transport } from "../shared/transport.js";
|
|
7
|
+
/**
|
|
8
|
+
* High-level MCP server that provides a simpler API for working with resources, tools, and prompts.
|
|
9
|
+
* For advanced usage (like sending notifications or setting custom request handlers), use the underlying
|
|
10
|
+
* Server instance available via the `server` property.
|
|
11
|
+
*/
|
|
12
|
+
export declare class McpServer {
|
|
13
|
+
/**
|
|
14
|
+
* The underlying Server instance, useful for advanced operations like sending notifications.
|
|
15
|
+
*/
|
|
16
|
+
readonly server: Server;
|
|
17
|
+
private _registeredResources;
|
|
18
|
+
private _registeredResourceTemplates;
|
|
19
|
+
private _registeredTools;
|
|
20
|
+
private _registeredPrompts;
|
|
21
|
+
constructor(serverInfo: Implementation, options?: ServerOptions);
|
|
22
|
+
/**
|
|
23
|
+
* Attaches to the given transport, starts it, and starts listening for messages.
|
|
24
|
+
*
|
|
25
|
+
* The `server` object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
|
|
26
|
+
*/
|
|
27
|
+
connect(transport: Transport): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Closes the connection.
|
|
30
|
+
*/
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
private setToolRequestHandlers;
|
|
33
|
+
private setCompletionRequestHandler;
|
|
34
|
+
private handlePromptCompletion;
|
|
35
|
+
private handleResourceCompletion;
|
|
36
|
+
private setResourceRequestHandlers;
|
|
37
|
+
private setPromptRequestHandlers;
|
|
38
|
+
/**
|
|
39
|
+
* Registers a resource `name` at a fixed URI, which will use the given callback to respond to read requests.
|
|
40
|
+
*/
|
|
41
|
+
resource(name: string, uri: string, readCallback: ReadResourceCallback): void;
|
|
42
|
+
/**
|
|
43
|
+
* Registers a resource `name` at a fixed URI with metadata, which will use the given callback to respond to read requests.
|
|
44
|
+
*/
|
|
45
|
+
resource(name: string, uri: string, metadata: ResourceMetadata, readCallback: ReadResourceCallback): void;
|
|
46
|
+
/**
|
|
47
|
+
* Registers a resource `name` with a template pattern, which will use the given callback to respond to read requests.
|
|
48
|
+
*/
|
|
49
|
+
resource(name: string, template: ResourceTemplate, readCallback: ReadResourceTemplateCallback): void;
|
|
50
|
+
/**
|
|
51
|
+
* Registers a resource `name` with a template pattern and metadata, which will use the given callback to respond to read requests.
|
|
52
|
+
*/
|
|
53
|
+
resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback): void;
|
|
54
|
+
/**
|
|
55
|
+
* Registers a zero-argument tool `name`, which will run the given function when the client calls it.
|
|
56
|
+
*/
|
|
57
|
+
tool(name: string, cb: ToolCallback): void;
|
|
58
|
+
/**
|
|
59
|
+
* Registers a zero-argument tool `name` (with a description) which will run the given function when the client calls it.
|
|
60
|
+
*/
|
|
61
|
+
tool(name: string, description: string, cb: ToolCallback): void;
|
|
62
|
+
/**
|
|
63
|
+
* 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.
|
|
64
|
+
*/
|
|
65
|
+
tool<Args extends ZodRawShape>(name: string, paramsSchema: Args, cb: ToolCallback<Args>): void;
|
|
66
|
+
/**
|
|
67
|
+
* 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.
|
|
68
|
+
*/
|
|
69
|
+
tool<Args extends ZodRawShape>(name: string, description: string, paramsSchema: Args, cb: ToolCallback<Args>): void;
|
|
70
|
+
/**
|
|
71
|
+
* Registers a zero-argument prompt `name`, which will run the given function when the client calls it.
|
|
72
|
+
*/
|
|
73
|
+
prompt(name: string, cb: PromptCallback): void;
|
|
74
|
+
/**
|
|
75
|
+
* Registers a zero-argument prompt `name` (with a description) which will run the given function when the client calls it.
|
|
76
|
+
*/
|
|
77
|
+
prompt(name: string, description: string, cb: PromptCallback): void;
|
|
78
|
+
/**
|
|
79
|
+
* 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.
|
|
80
|
+
*/
|
|
81
|
+
prompt<Args extends PromptArgsRawShape>(name: string, argsSchema: Args, cb: PromptCallback<Args>): void;
|
|
82
|
+
/**
|
|
83
|
+
* 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.
|
|
84
|
+
*/
|
|
85
|
+
prompt<Args extends PromptArgsRawShape>(name: string, description: string, argsSchema: Args, cb: PromptCallback<Args>): void;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A callback to complete one variable within a resource template's URI template.
|
|
89
|
+
*/
|
|
90
|
+
export type CompleteResourceTemplateCallback = (value: string) => string[] | Promise<string[]>;
|
|
91
|
+
/**
|
|
92
|
+
* A resource template combines a URI pattern with optional functionality to enumerate
|
|
93
|
+
* all resources matching that pattern.
|
|
94
|
+
*/
|
|
95
|
+
export declare class ResourceTemplate {
|
|
96
|
+
private _callbacks;
|
|
97
|
+
private _uriTemplate;
|
|
98
|
+
constructor(uriTemplate: string | UriTemplate, _callbacks: {
|
|
99
|
+
/**
|
|
100
|
+
* A callback to list all resources matching this template. This is required to specified, even if `undefined`, to avoid accidentally forgetting resource listing.
|
|
101
|
+
*/
|
|
102
|
+
list: ListResourcesCallback | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* An optional callback to autocomplete variables within the URI template. Useful for clients and users to discover possible values.
|
|
105
|
+
*/
|
|
106
|
+
complete?: {
|
|
107
|
+
[variable: string]: CompleteResourceTemplateCallback;
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Gets the URI template pattern.
|
|
112
|
+
*/
|
|
113
|
+
get uriTemplate(): UriTemplate;
|
|
114
|
+
/**
|
|
115
|
+
* Gets the list callback, if one was provided.
|
|
116
|
+
*/
|
|
117
|
+
get listCallback(): ListResourcesCallback | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Gets the callback for completing a specific URI template variable, if one was provided.
|
|
120
|
+
*/
|
|
121
|
+
completeCallback(variable: string): CompleteResourceTemplateCallback | undefined;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Callback for a tool handler registered with Server.tool().
|
|
125
|
+
*
|
|
126
|
+
* Parameters will include tool arguments, if applicable, as well as other request handler context.
|
|
127
|
+
*/
|
|
128
|
+
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>;
|
|
129
|
+
/**
|
|
130
|
+
* Additional, optional information for annotating a resource.
|
|
131
|
+
*/
|
|
132
|
+
export type ResourceMetadata = Omit<Resource, "uri" | "name">;
|
|
133
|
+
/**
|
|
134
|
+
* Callback to list all resources matching a given template.
|
|
135
|
+
*/
|
|
136
|
+
export type ListResourcesCallback = (extra: RequestHandlerExtra) => ListResourcesResult | Promise<ListResourcesResult>;
|
|
137
|
+
/**
|
|
138
|
+
* Callback to read a resource at a given URI.
|
|
139
|
+
*/
|
|
140
|
+
export type ReadResourceCallback = (uri: URL, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
141
|
+
/**
|
|
142
|
+
* Callback to read a resource at a given URI, following a filled-in URI template.
|
|
143
|
+
*/
|
|
144
|
+
export type ReadResourceTemplateCallback = (uri: URL, variables: Variables, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
|
|
145
|
+
type PromptArgsRawShape = {
|
|
146
|
+
[k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>;
|
|
147
|
+
};
|
|
148
|
+
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>;
|
|
149
|
+
export {};
|
|
150
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
|