@modelcontextprotocol/sdk 1.10.1 → 1.11.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 (82) hide show
  1. package/README.md +21 -23
  2. package/dist/cjs/client/index.d.ts +57 -0
  3. package/dist/cjs/client/index.d.ts.map +1 -1
  4. package/dist/cjs/client/stdio.d.ts +4 -1
  5. package/dist/cjs/client/stdio.d.ts.map +1 -1
  6. package/dist/cjs/client/stdio.js +14 -1
  7. package/dist/cjs/client/stdio.js.map +1 -1
  8. package/dist/cjs/examples/client/multipleClientsParallel.d.ts +2 -0
  9. package/dist/cjs/examples/client/multipleClientsParallel.d.ts.map +1 -0
  10. package/dist/cjs/examples/client/multipleClientsParallel.js +134 -0
  11. package/dist/cjs/examples/client/multipleClientsParallel.js.map +1 -0
  12. package/dist/cjs/examples/client/parallelToolCallsClient.d.ts +2 -0
  13. package/dist/cjs/examples/client/parallelToolCallsClient.d.ts.map +1 -0
  14. package/dist/cjs/examples/client/parallelToolCallsClient.js +175 -0
  15. package/dist/cjs/examples/client/parallelToolCallsClient.js.map +1 -0
  16. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +50 -47
  17. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  18. package/dist/cjs/examples/server/simpleSseServer.js +46 -46
  19. package/dist/cjs/examples/server/simpleSseServer.js.map +1 -1
  20. package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js +78 -87
  21. package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
  22. package/dist/cjs/examples/server/simpleStreamableHttp.js +108 -101
  23. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  24. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +42 -38
  25. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  26. package/dist/cjs/server/mcp.d.ts +24 -5
  27. package/dist/cjs/server/mcp.d.ts.map +1 -1
  28. package/dist/cjs/server/mcp.js +31 -1
  29. package/dist/cjs/server/mcp.js.map +1 -1
  30. package/dist/cjs/server/streamableHttp.d.ts +3 -3
  31. package/dist/cjs/server/streamableHttp.d.ts.map +1 -1
  32. package/dist/cjs/server/streamableHttp.js +11 -11
  33. package/dist/cjs/server/streamableHttp.js.map +1 -1
  34. package/dist/cjs/shared/protocol.d.ts +10 -1
  35. package/dist/cjs/shared/protocol.d.ts.map +1 -1
  36. package/dist/cjs/shared/protocol.js +3 -1
  37. package/dist/cjs/shared/protocol.js.map +1 -1
  38. package/dist/cjs/types.d.ts +2645 -24
  39. package/dist/cjs/types.d.ts.map +1 -1
  40. package/dist/cjs/types.js +67 -10
  41. package/dist/cjs/types.js.map +1 -1
  42. package/dist/esm/client/index.d.ts +57 -0
  43. package/dist/esm/client/index.d.ts.map +1 -1
  44. package/dist/esm/client/stdio.d.ts +4 -1
  45. package/dist/esm/client/stdio.d.ts.map +1 -1
  46. package/dist/esm/client/stdio.js +14 -1
  47. package/dist/esm/client/stdio.js.map +1 -1
  48. package/dist/esm/examples/client/multipleClientsParallel.d.ts +2 -0
  49. package/dist/esm/examples/client/multipleClientsParallel.d.ts.map +1 -0
  50. package/dist/esm/examples/client/multipleClientsParallel.js +132 -0
  51. package/dist/esm/examples/client/multipleClientsParallel.js.map +1 -0
  52. package/dist/esm/examples/client/parallelToolCallsClient.d.ts +2 -0
  53. package/dist/esm/examples/client/parallelToolCallsClient.d.ts.map +1 -0
  54. package/dist/esm/examples/client/parallelToolCallsClient.js +173 -0
  55. package/dist/esm/examples/client/parallelToolCallsClient.js.map +1 -0
  56. package/dist/esm/examples/server/jsonResponseStreamableHttp.js +50 -47
  57. package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  58. package/dist/esm/examples/server/simpleSseServer.js +46 -46
  59. package/dist/esm/examples/server/simpleSseServer.js.map +1 -1
  60. package/dist/esm/examples/server/simpleStatelessStreamableHttp.js +78 -87
  61. package/dist/esm/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
  62. package/dist/esm/examples/server/simpleStreamableHttp.js +108 -101
  63. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  64. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +42 -38
  65. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  66. package/dist/esm/server/mcp.d.ts +24 -5
  67. package/dist/esm/server/mcp.d.ts.map +1 -1
  68. package/dist/esm/server/mcp.js +32 -2
  69. package/dist/esm/server/mcp.js.map +1 -1
  70. package/dist/esm/server/streamableHttp.d.ts +3 -3
  71. package/dist/esm/server/streamableHttp.d.ts.map +1 -1
  72. package/dist/esm/server/streamableHttp.js +11 -11
  73. package/dist/esm/server/streamableHttp.js.map +1 -1
  74. package/dist/esm/shared/protocol.d.ts +10 -1
  75. package/dist/esm/shared/protocol.d.ts.map +1 -1
  76. package/dist/esm/shared/protocol.js +3 -1
  77. package/dist/esm/shared/protocol.js.map +1 -1
  78. package/dist/esm/types.d.ts +2645 -24
  79. package/dist/esm/types.d.ts.map +1 -1
  80. package/dist/esm/types.js +66 -9
  81. package/dist/esm/types.js.map +1 -1
  82. package/package.json +1 -1
@@ -799,6 +799,25 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
799
799
  type: import("zod").ZodLiteral<"object">;
800
800
  properties: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
801
801
  }, import("zod").ZodTypeAny, "passthrough">>;
802
+ annotations: import("zod").ZodOptional<import("zod").ZodObject<{
803
+ title: import("zod").ZodOptional<import("zod").ZodString>;
804
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
805
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
806
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
807
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
808
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
809
+ title: import("zod").ZodOptional<import("zod").ZodString>;
810
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
811
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
812
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
813
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
814
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
815
+ title: import("zod").ZodOptional<import("zod").ZodString>;
816
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
817
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
818
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
819
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
820
+ }, import("zod").ZodTypeAny, "passthrough">>>;
802
821
  }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
803
822
  name: import("zod").ZodString;
804
823
  description: import("zod").ZodOptional<import("zod").ZodString>;
@@ -812,6 +831,25 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
812
831
  type: import("zod").ZodLiteral<"object">;
813
832
  properties: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
814
833
  }, import("zod").ZodTypeAny, "passthrough">>;
834
+ annotations: import("zod").ZodOptional<import("zod").ZodObject<{
835
+ title: import("zod").ZodOptional<import("zod").ZodString>;
836
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
837
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
838
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
839
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
840
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
841
+ title: import("zod").ZodOptional<import("zod").ZodString>;
842
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
843
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
844
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
845
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
846
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
847
+ title: import("zod").ZodOptional<import("zod").ZodString>;
848
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
849
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
850
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
851
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
852
+ }, import("zod").ZodTypeAny, "passthrough">>>;
815
853
  }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
816
854
  name: import("zod").ZodString;
817
855
  description: import("zod").ZodOptional<import("zod").ZodString>;
@@ -825,6 +863,25 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
825
863
  type: import("zod").ZodLiteral<"object">;
826
864
  properties: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
827
865
  }, import("zod").ZodTypeAny, "passthrough">>;
866
+ annotations: import("zod").ZodOptional<import("zod").ZodObject<{
867
+ title: import("zod").ZodOptional<import("zod").ZodString>;
868
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
869
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
870
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
871
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
872
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
873
+ title: import("zod").ZodOptional<import("zod").ZodString>;
874
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
875
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
876
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
877
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
878
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
879
+ title: import("zod").ZodOptional<import("zod").ZodString>;
880
+ readOnlyHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
881
+ destructiveHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
882
+ idempotentHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
883
+ openWorldHint: import("zod").ZodOptional<import("zod").ZodBoolean>;
884
+ }, import("zod").ZodTypeAny, "passthrough">>>;
828
885
  }, import("zod").ZodTypeAny, "passthrough">>, "many">;
829
886
  }>, import("zod").ZodTypeAny, "passthrough">>;
830
887
  sendRootsListChanged(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export declare class StdioClientTransport implements Transport {
48
48
  private _abortController;
49
49
  private _readBuffer;
50
50
  private _serverParams;
51
+ private _stderrStream;
51
52
  onclose?: () => void;
52
53
  onerror?: (error: Error) => void;
53
54
  onmessage?: (message: JSONRPCMessage) => void;
@@ -59,7 +60,9 @@ export declare class StdioClientTransport implements Transport {
59
60
  /**
60
61
  * The stderr stream of the child process, if `StdioServerParameters.stderr` was set to "pipe" or "overlapped".
61
62
  *
62
- * This is only available after the process has been started.
63
+ * If stderr piping was requested, a PassThrough stream is returned _immediately_, allowing callers to
64
+ * attach listeners before the start method is invoked. This prevents loss of any early
65
+ * error output emitted by the child process.
63
66
  */
64
67
  get stderr(): Stream | null;
65
68
  private processReadBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/client/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,UAgBmB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB9D;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,aAAa,CAAwB;IAE7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAElC,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwD5B;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,OAAO,CAAC,iBAAiB;IAenB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7C"}
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/client/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAe,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,UAgBmB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB9D;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAElC,MAAM,EAAE,qBAAqB;IAOzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D5B;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAM1B;IAED,OAAO,CAAC,iBAAiB;IAenB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7C"}
@@ -1,5 +1,6 @@
1
1
  import spawn from "cross-spawn";
2
2
  import process from "node:process";
3
+ import { PassThrough } from "node:stream";
3
4
  import { ReadBuffer, serializeMessage } from "../shared/stdio.js";
4
5
  /**
5
6
  * Environment variables to inherit by default, if an environment is not explicitly given.
@@ -47,7 +48,11 @@ export class StdioClientTransport {
47
48
  constructor(server) {
48
49
  this._abortController = new AbortController();
49
50
  this._readBuffer = new ReadBuffer();
51
+ this._stderrStream = null;
50
52
  this._serverParams = server;
53
+ if (server.stderr === "pipe" || server.stderr === "overlapped") {
54
+ this._stderrStream = new PassThrough();
55
+ }
51
56
  }
52
57
  /**
53
58
  * Starts the server process and prepares to communicate with it.
@@ -96,15 +101,23 @@ export class StdioClientTransport {
96
101
  var _a;
97
102
  (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
98
103
  });
104
+ if (this._stderrStream && this._process.stderr) {
105
+ this._process.stderr.pipe(this._stderrStream);
106
+ }
99
107
  });
100
108
  }
101
109
  /**
102
110
  * The stderr stream of the child process, if `StdioServerParameters.stderr` was set to "pipe" or "overlapped".
103
111
  *
104
- * This is only available after the process has been started.
112
+ * If stderr piping was requested, a PassThrough stream is returned _immediately_, allowing callers to
113
+ * attach listeners before the start method is invoked. This prevents loss of any early
114
+ * error output emitted by the child process.
105
115
  */
106
116
  get stderr() {
107
117
  var _a, _b;
118
+ if (this._stderrStream) {
119
+ return this._stderrStream;
120
+ }
108
121
  return (_b = (_a = this._process) === null || _a === void 0 ? void 0 : _a.stderr) !== null && _b !== void 0 ? _b : null;
109
122
  }
110
123
  processReadBuffer() {
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/client/stdio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/client/stdio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multipleClientsParallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multipleClientsParallel.d.ts","sourceRoot":"","sources":["../../../../src/examples/client/multipleClientsParallel.ts"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ import { Client } from '../../client/index.js';
2
+ import { StreamableHTTPClientTransport } from '../../client/streamableHttp.js';
3
+ import { CallToolResultSchema, LoggingMessageNotificationSchema, } from '../../types.js';
4
+ /**
5
+ * Multiple Clients MCP Example
6
+ *
7
+ * This client demonstrates how to:
8
+ * 1. Create multiple MCP clients in parallel
9
+ * 2. Each client calls a single tool
10
+ * 3. Track notifications from each client independently
11
+ */
12
+ // Command line args processing
13
+ const args = process.argv.slice(2);
14
+ const serverUrl = args[0] || 'http://localhost:3000/mcp';
15
+ async function createAndRunClient(config) {
16
+ console.log(`[${config.id}] Creating client: ${config.name}`);
17
+ const client = new Client({
18
+ name: config.name,
19
+ version: '1.0.0'
20
+ });
21
+ const transport = new StreamableHTTPClientTransport(new URL(serverUrl));
22
+ // Set up client-specific error handler
23
+ client.onerror = (error) => {
24
+ console.error(`[${config.id}] Client error:`, error);
25
+ };
26
+ // Set up client-specific notification handler
27
+ client.setNotificationHandler(LoggingMessageNotificationSchema, (notification) => {
28
+ console.log(`[${config.id}] Notification: ${notification.params.data}`);
29
+ });
30
+ try {
31
+ // Connect to the server
32
+ await client.connect(transport);
33
+ console.log(`[${config.id}] Connected to MCP server`);
34
+ // Call the specified tool
35
+ console.log(`[${config.id}] Calling tool: ${config.toolName}`);
36
+ const toolRequest = {
37
+ method: 'tools/call',
38
+ params: {
39
+ name: config.toolName,
40
+ arguments: {
41
+ ...config.toolArguments,
42
+ // Add client ID to arguments for identification in notifications
43
+ caller: config.id
44
+ }
45
+ }
46
+ };
47
+ const result = await client.request(toolRequest, CallToolResultSchema);
48
+ console.log(`[${config.id}] Tool call completed`);
49
+ // Keep the connection open for a bit to receive notifications
50
+ await new Promise(resolve => setTimeout(resolve, 5000));
51
+ // Disconnect
52
+ await transport.close();
53
+ console.log(`[${config.id}] Disconnected from MCP server`);
54
+ return { id: config.id, result };
55
+ }
56
+ catch (error) {
57
+ console.error(`[${config.id}] Error:`, error);
58
+ throw error;
59
+ }
60
+ }
61
+ async function main() {
62
+ console.log('MCP Multiple Clients Example');
63
+ console.log('============================');
64
+ console.log(`Server URL: ${serverUrl}`);
65
+ console.log('');
66
+ try {
67
+ // Define client configurations
68
+ const clientConfigs = [
69
+ {
70
+ id: 'client1',
71
+ name: 'basic-client-1',
72
+ toolName: 'start-notification-stream',
73
+ toolArguments: {
74
+ interval: 3, // 1 second between notifications
75
+ count: 5 // Send 5 notifications
76
+ }
77
+ },
78
+ {
79
+ id: 'client2',
80
+ name: 'basic-client-2',
81
+ toolName: 'start-notification-stream',
82
+ toolArguments: {
83
+ interval: 2, // 2 seconds between notifications
84
+ count: 3 // Send 3 notifications
85
+ }
86
+ },
87
+ {
88
+ id: 'client3',
89
+ name: 'basic-client-3',
90
+ toolName: 'start-notification-stream',
91
+ toolArguments: {
92
+ interval: 1, // 0.5 second between notifications
93
+ count: 8 // Send 8 notifications
94
+ }
95
+ }
96
+ ];
97
+ // Start all clients in parallel
98
+ console.log(`Starting ${clientConfigs.length} clients in parallel...`);
99
+ console.log('');
100
+ const clientPromises = clientConfigs.map(config => createAndRunClient(config));
101
+ const results = await Promise.all(clientPromises);
102
+ // Display results from all clients
103
+ console.log('\n=== Final Results ===');
104
+ results.forEach(({ id, result }) => {
105
+ console.log(`\n[${id}] Tool result:`);
106
+ if (Array.isArray(result.content)) {
107
+ result.content.forEach((item) => {
108
+ if (item.type === 'text' && item.text) {
109
+ console.log(` ${item.text}`);
110
+ }
111
+ else {
112
+ console.log(` ${item.type} content:`, item);
113
+ }
114
+ });
115
+ }
116
+ else {
117
+ console.log(` Unexpected result format:`, result);
118
+ }
119
+ });
120
+ console.log('\n=== All clients completed successfully ===');
121
+ }
122
+ catch (error) {
123
+ console.error('Error running multiple clients:', error);
124
+ process.exit(1);
125
+ }
126
+ }
127
+ // Start the example
128
+ main().catch((error) => {
129
+ console.error('Error running MCP multiple clients example:', error);
130
+ process.exit(1);
131
+ });
132
+ //# sourceMappingURL=multipleClientsParallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multipleClientsParallel.js","sourceRoot":"","sources":["../../../../src/examples/client/multipleClientsParallel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parallelToolCallsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallelToolCallsClient.d.ts","sourceRoot":"","sources":["../../../../src/examples/client/parallelToolCallsClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,173 @@
1
+ import { Client } from '../../client/index.js';
2
+ import { StreamableHTTPClientTransport } from '../../client/streamableHttp.js';
3
+ import { ListToolsResultSchema, CallToolResultSchema, LoggingMessageNotificationSchema, } from '../../types.js';
4
+ /**
5
+ * Parallel Tool Calls MCP Client
6
+ *
7
+ * This client demonstrates how to:
8
+ * 1. Start multiple tool calls in parallel
9
+ * 2. Track notifications from each tool call using a caller parameter
10
+ */
11
+ // Command line args processing
12
+ const args = process.argv.slice(2);
13
+ const serverUrl = args[0] || 'http://localhost:3000/mcp';
14
+ async function main() {
15
+ console.log('MCP Parallel Tool Calls Client');
16
+ console.log('==============================');
17
+ console.log(`Connecting to server at: ${serverUrl}`);
18
+ let client;
19
+ let transport;
20
+ try {
21
+ // Create client with streamable HTTP transport
22
+ client = new Client({
23
+ name: 'parallel-tool-calls-client',
24
+ version: '1.0.0'
25
+ });
26
+ client.onerror = (error) => {
27
+ console.error('Client error:', error);
28
+ };
29
+ // Connect to the server
30
+ transport = new StreamableHTTPClientTransport(new URL(serverUrl));
31
+ await client.connect(transport);
32
+ console.log('Successfully connected to MCP server');
33
+ // Set up notification handler with caller identification
34
+ client.setNotificationHandler(LoggingMessageNotificationSchema, (notification) => {
35
+ console.log(`Notification: ${notification.params.data}`);
36
+ });
37
+ console.log("List tools");
38
+ const toolsRequest = await listTools(client);
39
+ console.log("Tools: ", toolsRequest);
40
+ // 2. Start multiple notification tools in parallel
41
+ console.log('\n=== Starting Multiple Notification Streams in Parallel ===');
42
+ const toolResults = await startParallelNotificationTools(client);
43
+ // Log the results from each tool call
44
+ for (const [caller, result] of Object.entries(toolResults)) {
45
+ console.log(`\n=== Tool result for ${caller} ===`);
46
+ result.content.forEach((item) => {
47
+ if (item.type === 'text') {
48
+ console.log(` ${item.text}`);
49
+ }
50
+ else {
51
+ console.log(` ${item.type} content:`, item);
52
+ }
53
+ });
54
+ }
55
+ // 3. Wait for all notifications (10 seconds)
56
+ console.log('\n=== Waiting for all notifications ===');
57
+ await new Promise(resolve => setTimeout(resolve, 10000));
58
+ // 4. Disconnect
59
+ console.log('\n=== Disconnecting ===');
60
+ await transport.close();
61
+ console.log('Disconnected from MCP server');
62
+ }
63
+ catch (error) {
64
+ console.error('Error running client:', error);
65
+ process.exit(1);
66
+ }
67
+ }
68
+ /**
69
+ * List available tools on the server
70
+ */
71
+ async function listTools(client) {
72
+ try {
73
+ const toolsRequest = {
74
+ method: 'tools/list',
75
+ params: {}
76
+ };
77
+ const toolsResult = await client.request(toolsRequest, ListToolsResultSchema);
78
+ console.log('Available tools:');
79
+ if (toolsResult.tools.length === 0) {
80
+ console.log(' No tools available');
81
+ }
82
+ else {
83
+ for (const tool of toolsResult.tools) {
84
+ console.log(` - ${tool.name}: ${tool.description}`);
85
+ }
86
+ }
87
+ }
88
+ catch (error) {
89
+ console.log(`Tools not supported by this server: ${error}`);
90
+ }
91
+ }
92
+ /**
93
+ * Start multiple notification tools in parallel with different configurations
94
+ * Each tool call includes a caller parameter to identify its notifications
95
+ */
96
+ async function startParallelNotificationTools(client) {
97
+ try {
98
+ // Define multiple tool calls with different configurations
99
+ const toolCalls = [
100
+ {
101
+ caller: 'fast-notifier',
102
+ request: {
103
+ method: 'tools/call',
104
+ params: {
105
+ name: 'start-notification-stream',
106
+ arguments: {
107
+ interval: 2, // 0.5 second between notifications
108
+ count: 10, // Send 10 notifications
109
+ caller: 'fast-notifier' // Identify this tool call
110
+ }
111
+ }
112
+ }
113
+ },
114
+ {
115
+ caller: 'slow-notifier',
116
+ request: {
117
+ method: 'tools/call',
118
+ params: {
119
+ name: 'start-notification-stream',
120
+ arguments: {
121
+ interval: 5, // 2 seconds between notifications
122
+ count: 5, // Send 5 notifications
123
+ caller: 'slow-notifier' // Identify this tool call
124
+ }
125
+ }
126
+ }
127
+ },
128
+ {
129
+ caller: 'burst-notifier',
130
+ request: {
131
+ method: 'tools/call',
132
+ params: {
133
+ name: 'start-notification-stream',
134
+ arguments: {
135
+ interval: 1, // 0.1 second between notifications
136
+ count: 3, // Send just 3 notifications
137
+ caller: 'burst-notifier' // Identify this tool call
138
+ }
139
+ }
140
+ }
141
+ }
142
+ ];
143
+ console.log(`Starting ${toolCalls.length} notification tools in parallel...`);
144
+ // Start all tool calls in parallel
145
+ const toolPromises = toolCalls.map(({ caller, request }) => {
146
+ console.log(`Starting tool call for ${caller}...`);
147
+ return client.request(request, CallToolResultSchema)
148
+ .then(result => ({ caller, result }))
149
+ .catch(error => {
150
+ console.error(`Error in tool call for ${caller}:`, error);
151
+ throw error;
152
+ });
153
+ });
154
+ // Wait for all tool calls to complete
155
+ const results = await Promise.all(toolPromises);
156
+ // Organize results by caller
157
+ const resultsByTool = {};
158
+ results.forEach(({ caller, result }) => {
159
+ resultsByTool[caller] = result;
160
+ });
161
+ return resultsByTool;
162
+ }
163
+ catch (error) {
164
+ console.error(`Error starting parallel notification tools:`, error);
165
+ throw error;
166
+ }
167
+ }
168
+ // Start the client
169
+ main().catch((error) => {
170
+ console.error('Error running MCP client:', error);
171
+ process.exit(1);
172
+ });
173
+ //# sourceMappingURL=parallelToolCallsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallelToolCallsClient.js","sourceRoot":"","sources":["../../../../src/examples/client/parallelToolCallsClient.ts"],"names":[],"mappings":"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"}