@modelcontextprotocol/sdk 0.4.0 → 0.5.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.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +13 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/index.d.ts +23 -12
  5. package/dist/client/index.d.ts.map +1 -1
  6. package/dist/client/index.js +133 -37
  7. package/dist/client/index.js.map +1 -1
  8. package/dist/client/index.test.js +301 -3
  9. package/dist/client/index.test.js.map +1 -1
  10. package/dist/client/stdio.d.ts +7 -0
  11. package/dist/client/stdio.d.ts.map +1 -1
  12. package/dist/client/stdio.js +6 -5
  13. package/dist/client/stdio.js.map +1 -1
  14. package/dist/inMemory.d.ts +20 -0
  15. package/dist/inMemory.d.ts.map +1 -0
  16. package/dist/inMemory.js +47 -0
  17. package/dist/inMemory.js.map +1 -0
  18. package/dist/inMemory.test.d.ts +2 -0
  19. package/dist/inMemory.test.d.ts.map +1 -0
  20. package/dist/inMemory.test.js +74 -0
  21. package/dist/inMemory.test.js.map +1 -0
  22. package/dist/server/index.d.ts +15 -5
  23. package/dist/server/index.d.ts.map +1 -1
  24. package/dist/server/index.js +99 -23
  25. package/dist/server/index.js.map +1 -1
  26. package/dist/server/index.test.js +310 -3
  27. package/dist/server/index.test.js.map +1 -1
  28. package/dist/shared/protocol.d.ts +64 -7
  29. package/dist/shared/protocol.d.ts.map +1 -1
  30. package/dist/shared/protocol.js +60 -11
  31. package/dist/shared/protocol.js.map +1 -1
  32. package/dist/types.d.ts +753 -362
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js +55 -26
  35. package/dist/types.js.map +1 -1
  36. package/dist/utils.d.ts +5 -0
  37. package/dist/utils.d.ts.map +1 -0
  38. package/dist/utils.js +11 -0
  39. package/dist/utils.js.map +1 -0
  40. package/dist/utils.test.d.ts +2 -0
  41. package/dist/utils.test.d.ts.map +1 -0
  42. package/dist/utils.test.js +14 -0
  43. package/dist/utils.test.js.map +1 -0
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,EAIL,cAAc,EAGd,YAAY,EAEZ,QAAQ,EAGR,OAAO,EACP,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;AAE5D;;;GAGG;AACH,qBAAa,QAAQ,CACnB,YAAY,SAAS,OAAO,EAC5B,iBAAiB,SAAS,YAAY,EACtC,WAAW,SAAS,MAAM;IAE1B,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAC7B,MAAM,EACN,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAClD,CAAa;IACd,OAAO,CAAC,qBAAqB,CAGf;IACd,OAAO,CAAC,iBAAiB,CAGX;IACd,OAAO,CAAC,iBAAiB,CAA4C;IAErE;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE;;OAEG;IACH,2BAA2B,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;;IAc5E;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,WAAW;IA0BnB,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAC/B,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,CAAC,EACf,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAuCtB;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE;;;;OAIG;IACH,iBAAiB,CACf,CAAC,SAAS,SAAS,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;KAC5B,CAAC,EAEF,aAAa,EAAE,CAAC,EAChB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GACnE,IAAI;IAMP;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;OAIG;IACH,sBAAsB,CACpB,CAAC,SAAS,SAAS,CAAC;QAClB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;KAC5B,CAAC,EAEF,kBAAkB,EAAE,CAAC,EACrB,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,IAAI;IAQP;;OAEG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGhD"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,21 @@
1
- import { ErrorCode, McpError, PingRequestSchema, ProgressNotificationSchema, } from "../types.js";
1
+ import { CancelledNotificationSchema, ErrorCode, McpError, PingRequestSchema, ProgressNotificationSchema, } from "../types.js";
2
2
  /**
3
3
  * Implements MCP protocol framing on top of a pluggable transport, including
4
4
  * features like request/response linking, notifications, and progress.
5
5
  */
6
6
  export class Protocol {
7
- constructor() {
7
+ constructor(_options) {
8
+ this._options = _options;
8
9
  this._requestMessageId = 0;
9
10
  this._requestHandlers = new Map();
11
+ this._requestHandlerAbortControllers = new Map();
10
12
  this._notificationHandlers = new Map();
11
13
  this._responseHandlers = new Map();
12
14
  this._progressHandlers = new Map();
15
+ this.setNotificationHandler(CancelledNotificationSchema, (notification) => {
16
+ const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);
17
+ controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);
18
+ });
13
19
  this.setNotificationHandler(ProgressNotificationSchema, (notification) => {
14
20
  this._onprogress(notification);
15
21
  });
@@ -66,7 +72,10 @@ export class Protocol {
66
72
  if (handler === undefined) {
67
73
  return;
68
74
  }
69
- handler(notification).catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
75
+ // Starting with Promise.resolve() puts any synchronous errors into the monad as well.
76
+ Promise.resolve()
77
+ .then(() => handler(notification))
78
+ .catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
70
79
  }
71
80
  _onrequest(request) {
72
81
  var _a, _b;
@@ -82,16 +91,26 @@ export class Protocol {
82
91
  }).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));
83
92
  return;
84
93
  }
85
- handler(request)
94
+ const abortController = new AbortController();
95
+ this._requestHandlerAbortControllers.set(request.id, abortController);
96
+ // Starting with Promise.resolve() puts any synchronous errors into the monad as well.
97
+ Promise.resolve()
98
+ .then(() => handler(request, { signal: abortController.signal }))
86
99
  .then((result) => {
87
100
  var _a;
88
- (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
101
+ if (abortController.signal.aborted) {
102
+ return;
103
+ }
104
+ return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
89
105
  result,
90
106
  jsonrpc: "2.0",
91
107
  id: request.id,
92
108
  });
93
109
  }, (error) => {
94
110
  var _a, _b;
111
+ if (abortController.signal.aborted) {
112
+ return;
113
+ }
95
114
  return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
96
115
  jsonrpc: "2.0",
97
116
  id: request.id,
@@ -103,7 +122,10 @@ export class Protocol {
103
122
  },
104
123
  });
105
124
  })
106
- .catch((error) => this._onerror(new Error(`Failed to send response: ${error}`)));
125
+ .catch((error) => this._onerror(new Error(`Failed to send response: ${error}`)))
126
+ .finally(() => {
127
+ this._requestHandlerAbortControllers.delete(request.id);
128
+ });
107
129
  }
108
130
  _onprogress(notification) {
109
131
  const { progress, total, progressToken } = notification.params;
@@ -142,30 +164,39 @@ export class Protocol {
142
164
  await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());
143
165
  }
144
166
  /**
145
- * Sends a request and wait for a response, with optional progress notifications in the meantime (if supported by the server).
167
+ * Sends a request and wait for a response.
146
168
  *
147
169
  * Do not use this method to emit notifications! Use notification() instead.
148
170
  */
149
- request(request, resultSchema, onprogress) {
171
+ request(request, resultSchema, options) {
150
172
  return new Promise((resolve, reject) => {
173
+ var _a, _b, _c;
151
174
  if (!this._transport) {
152
175
  reject(new Error("Not connected"));
153
176
  return;
154
177
  }
178
+ if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {
179
+ this.assertCapabilityForMethod(request.method);
180
+ }
181
+ (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();
155
182
  const messageId = this._requestMessageId++;
156
183
  const jsonrpcRequest = {
157
184
  ...request,
158
185
  jsonrpc: "2.0",
159
186
  id: messageId,
160
187
  };
161
- if (onprogress) {
162
- this._progressHandlers.set(messageId, onprogress);
188
+ if (options === null || options === void 0 ? void 0 : options.onprogress) {
189
+ this._progressHandlers.set(messageId, options.onprogress);
163
190
  jsonrpcRequest.params = {
164
191
  ...request.params,
165
192
  _meta: { progressToken: messageId },
166
193
  };
167
194
  }
168
195
  this._responseHandlers.set(messageId, (response) => {
196
+ var _a;
197
+ if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
198
+ return;
199
+ }
169
200
  if (response instanceof Error) {
170
201
  return reject(response);
171
202
  }
@@ -177,6 +208,21 @@ export class Protocol {
177
208
  reject(error);
178
209
  }
179
210
  });
211
+ (_c = options === null || options === void 0 ? void 0 : options.signal) === null || _c === void 0 ? void 0 : _c.addEventListener("abort", () => {
212
+ var _a, _b;
213
+ const reason = (_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.reason;
214
+ this._responseHandlers.delete(messageId);
215
+ this._progressHandlers.delete(messageId);
216
+ (_b = this._transport) === null || _b === void 0 ? void 0 : _b.send({
217
+ jsonrpc: "2.0",
218
+ method: "cancelled",
219
+ params: {
220
+ requestId: messageId,
221
+ reason: String(reason),
222
+ },
223
+ });
224
+ reject(reason);
225
+ });
180
226
  this._transport.send(jsonrpcRequest).catch(reject);
181
227
  });
182
228
  }
@@ -187,6 +233,7 @@ export class Protocol {
187
233
  if (!this._transport) {
188
234
  throw new Error("Not connected");
189
235
  }
236
+ this.assertNotificationCapability(notification.method);
190
237
  const jsonrpcNotification = {
191
238
  ...notification,
192
239
  jsonrpc: "2.0",
@@ -199,7 +246,9 @@ export class Protocol {
199
246
  * Note that this will replace any previous request handler for the same method.
200
247
  */
201
248
  setRequestHandler(requestSchema, handler) {
202
- this._requestHandlers.set(requestSchema.shape.method.value, (request) => Promise.resolve(handler(requestSchema.parse(request))));
249
+ const method = requestSchema.shape.method.value;
250
+ this.assertRequestHandlerCapability(method);
251
+ this._requestHandlers.set(method, (request, extra) => Promise.resolve(handler(requestSchema.parse(request), extra)));
203
252
  }
204
253
  /**
205
254
  * Removes the request handler for the given method.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"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"}