@rudderjs/mcp 3.0.1 → 3.1.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 CHANGED
@@ -57,6 +57,56 @@ export class CurrentWeatherTool extends McpTool {
57
57
  }
58
58
  ```
59
59
 
60
+ ### Streaming progress
61
+
62
+ For long-running tools, declare `handle` as an async generator and yield
63
+ `McpToolProgress` updates. The runtime forwards each yield as a
64
+ `notifications/progress` message — but only when the calling client supplied a
65
+ `progressToken`; otherwise yields are dropped silently.
66
+
67
+ ```ts
68
+ import { McpTool, McpResponse, type McpToolProgress, type McpToolResult } from '@rudderjs/mcp'
69
+
70
+ export class CountTool extends McpTool {
71
+ schema() { return z.object({ n: z.number() }) }
72
+
73
+ async *handle(input: Record<string, unknown>): AsyncGenerator<McpToolProgress, McpToolResult> {
74
+ const n = Number(input.n)
75
+ for (let i = 1; i <= n; i++) {
76
+ yield { progress: i, total: n, message: `tick ${i}/${n}` }
77
+ await new Promise((r) => setTimeout(r, 100))
78
+ }
79
+ return McpResponse.text(`done: ${n}`)
80
+ }
81
+ }
82
+ ```
83
+
84
+ Don't take a `send` callback parameter — the generator pattern matches
85
+ `@rudderjs/ai` and lets the runtime choose where progress lands (HTTP SSE,
86
+ in-process collector, etc.).
87
+
88
+ ### Server-initiated notifications
89
+
90
+ Push events to all connected clients via `McpServer` instance methods. The
91
+ runtime tracks every active SDK session per `McpServer` instance, so a single
92
+ `notifyToolListChanged()` reaches every connected client.
93
+
94
+ ```ts
95
+ class WeatherServer extends McpServer {
96
+ async refresh() {
97
+ // Re-load config, then tell every connected client the tools changed:
98
+ await this.notifyToolListChanged()
99
+ // Or push a specific resource refresh:
100
+ await this.notifyResourceUpdated('weather://today')
101
+ }
102
+ }
103
+ ```
104
+
105
+ Available helpers: `notifyResourceUpdated(uri)`,
106
+ `notifyResourceListChanged()`, `notifyToolListChanged()`,
107
+ `notifyPromptListChanged()`. For arbitrary methods, use the `notify(method,
108
+ params?)` escape hatch.
109
+
60
110
  ## Resources
61
111
 
62
112
  ```ts
@@ -6,6 +6,17 @@ export interface McpServerMetadata {
6
6
  version?: string;
7
7
  instructions?: string;
8
8
  }
9
+ /**
10
+ * Server-initiated notification target. The runtime attaches one of these per
11
+ * SDK session it spins up so McpServer can fan out notifications to all
12
+ * connected clients.
13
+ */
14
+ export interface McpNotificationTarget {
15
+ notification(notification: {
16
+ method: string;
17
+ params?: Record<string, unknown>;
18
+ }): Promise<void> | void;
19
+ }
9
20
  export declare abstract class McpServer {
10
21
  /** Tool classes to register */
11
22
  protected tools: (new () => McpTool)[];
@@ -13,7 +24,29 @@ export declare abstract class McpServer {
13
24
  protected resources: (new () => McpResource)[];
14
25
  /** Prompt classes to register */
15
26
  protected prompts: (new () => McpPrompt)[];
27
+ private _attached?;
16
28
  /** Server metadata — override or use decorators */
17
29
  metadata(): Required<Pick<McpServerMetadata, 'name' | 'version'>> & Pick<McpServerMetadata, 'instructions'>;
30
+ /** @internal — called by the runtime when a new SDK session is connected. Returns a detach function. */
31
+ attachSdk(target: McpNotificationTarget): () => void;
32
+ /** @internal — exposed for tests; counts active notification targets. */
33
+ attachedCount(): number;
34
+ /**
35
+ * Push a notification to every attached SDK session. Errors from a single
36
+ * target (e.g. a closed transport) are swallowed so one dead session can't
37
+ * block the others.
38
+ *
39
+ * Most callers should use the higher-level helpers (`notifyResourceUpdated`,
40
+ * `notifyToolListChanged`, etc.) — this is the escape hatch.
41
+ */
42
+ notify(method: string, params?: Record<string, unknown>): Promise<void>;
43
+ /** Notify all connected clients that a specific resource changed. */
44
+ notifyResourceUpdated(uri: string): Promise<void>;
45
+ /** Notify all connected clients that the resource list changed (added/removed). */
46
+ notifyResourceListChanged(): Promise<void>;
47
+ /** Notify all connected clients that the tool list changed (added/removed). */
48
+ notifyToolListChanged(): Promise<void>;
49
+ /** Notify all connected clients that the prompt list changed (added/removed). */
50
+ notifyPromptListChanged(): Promise<void>;
18
51
  }
19
52
  //# sourceMappingURL=McpServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../src/McpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,8BAAsB,SAAS;IAC7B,+BAA+B;IAC/B,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,OAAO,CAAC,EAAE,CAAK;IAE3C,mCAAmC;IACnC,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,WAAW,CAAC,EAAE,CAAK;IAEnD,iCAAiC;IACjC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,SAAS,CAAC,EAAE,CAAK;IAE/C,mDAAmD;IACnD,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;CAQ5G"}
1
+ {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../src/McpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACvG;AAED,8BAAsB,SAAS;IAC7B,+BAA+B;IAC/B,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,OAAO,CAAC,EAAE,CAAK;IAE3C,mCAAmC;IACnC,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,WAAW,CAAC,EAAE,CAAK;IAEnD,iCAAiC;IACjC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,SAAS,CAAC,EAAE,CAAK;IAK/C,OAAO,CAAC,SAAS,CAAC,CAA4B;IAE9C,mDAAmD;IACnD,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAS3G,wGAAwG;IACxG,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAMpD,yEAAyE;IACzE,aAAa,IAAI,MAAM;IAIvB;;;;;;;OAOG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E,qEAAqE;IAC/D,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,mFAAmF;IAC7E,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,+EAA+E;IACzE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,iFAAiF;IAC3E,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/C"}
package/dist/McpServer.js CHANGED
@@ -6,6 +6,10 @@ export class McpServer {
6
6
  resources = [];
7
7
  /** Prompt classes to register */
8
8
  prompts = [];
9
+ // Lazy-initialised in attachSdk so subclasses don't need to call super().
10
+ // Module-private would be cleaner but the runtime in another file needs to
11
+ // attach/detach without breaking encapsulation, so we keep it on the instance.
12
+ _attached;
9
13
  /** Server metadata — override or use decorators */
10
14
  metadata() {
11
15
  const meta = getServerMetadata(this.constructor);
@@ -15,5 +19,53 @@ export class McpServer {
15
19
  ...(meta.instructions != null ? { instructions: meta.instructions } : {}),
16
20
  };
17
21
  }
22
+ /** @internal — called by the runtime when a new SDK session is connected. Returns a detach function. */
23
+ attachSdk(target) {
24
+ if (!this._attached)
25
+ this._attached = new Set();
26
+ this._attached.add(target);
27
+ return () => { this._attached?.delete(target); };
28
+ }
29
+ /** @internal — exposed for tests; counts active notification targets. */
30
+ attachedCount() {
31
+ return this._attached?.size ?? 0;
32
+ }
33
+ /**
34
+ * Push a notification to every attached SDK session. Errors from a single
35
+ * target (e.g. a closed transport) are swallowed so one dead session can't
36
+ * block the others.
37
+ *
38
+ * Most callers should use the higher-level helpers (`notifyResourceUpdated`,
39
+ * `notifyToolListChanged`, etc.) — this is the escape hatch.
40
+ */
41
+ async notify(method, params) {
42
+ if (!this._attached || this._attached.size === 0)
43
+ return;
44
+ for (const target of this._attached) {
45
+ try {
46
+ await target.notification(params !== undefined ? { method, params } : { method });
47
+ }
48
+ catch {
49
+ // Dead transport. Drop silently — the runtime's session-close handler
50
+ // will detach soon. Logging here would spam during normal disconnects.
51
+ }
52
+ }
53
+ }
54
+ /** Notify all connected clients that a specific resource changed. */
55
+ async notifyResourceUpdated(uri) {
56
+ await this.notify('notifications/resources/updated', { uri });
57
+ }
58
+ /** Notify all connected clients that the resource list changed (added/removed). */
59
+ async notifyResourceListChanged() {
60
+ await this.notify('notifications/resources/list_changed');
61
+ }
62
+ /** Notify all connected clients that the tool list changed (added/removed). */
63
+ async notifyToolListChanged() {
64
+ await this.notify('notifications/tools/list_changed');
65
+ }
66
+ /** Notify all connected clients that the prompt list changed (added/removed). */
67
+ async notifyPromptListChanged() {
68
+ await this.notify('notifications/prompts/list_changed');
69
+ }
18
70
  }
19
71
  //# sourceMappingURL=McpServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpServer.js","sourceRoot":"","sources":["../src/McpServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAQnD,MAAM,OAAgB,SAAS;IAC7B,+BAA+B;IACrB,KAAK,GAA0B,EAAE,CAAA;IAE3C,mCAAmC;IACzB,SAAS,GAA8B,EAAE,CAAA;IAEnD,iCAAiC;IACvB,OAAO,GAA4B,EAAE,CAAA;IAE/C,mDAAmD;IACnD,QAAQ;QACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;YAChC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"McpServer.js","sourceRoot":"","sources":["../src/McpServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAiBnD,MAAM,OAAgB,SAAS;IAC7B,+BAA+B;IACrB,KAAK,GAA0B,EAAE,CAAA;IAE3C,mCAAmC;IACzB,SAAS,GAA8B,EAAE,CAAA;IAEnD,iCAAiC;IACvB,OAAO,GAA4B,EAAE,CAAA;IAE/C,0EAA0E;IAC1E,2EAA2E;IAC3E,+EAA+E;IACvE,SAAS,CAA6B;IAE9C,mDAAmD;IACnD,QAAQ;QACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;YAChC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAA;IACH,CAAC;IAED,wGAAwG;IACxG,SAAS,CAAC,MAA6B;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,yEAAyE;IACzE,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAgC;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QACxD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACnF,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;gBACtE,uEAAuE;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,qBAAqB,CAAC,GAAW;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,yBAAyB;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAA;IAC3D,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAA;IACzD,CAAC;CACF"}
package/dist/McpTool.d.ts CHANGED
@@ -10,6 +10,22 @@ export interface McpToolResult {
10
10
  }>;
11
11
  isError?: boolean;
12
12
  }
13
+ /**
14
+ * Progress update yielded by a streaming tool. Forwarded as a
15
+ * `notifications/progress` message when the calling client supplied a
16
+ * `progressToken` in the request `_meta`. Streaming tools that run without a
17
+ * progressToken still execute; the runtime drops the yields silently.
18
+ */
19
+ export interface McpToolProgress {
20
+ /** Current progress value — typically 0..total or unbounded. */
21
+ progress: number;
22
+ /** Optional total — if set, clients can render a progress bar. */
23
+ total?: number;
24
+ /** Optional human-readable status message. */
25
+ message?: string;
26
+ }
27
+ /** Return shape for a tool's `handle()` — a plain Promise *or* an async generator that yields progress updates. */
28
+ export type McpToolReturn = Promise<McpToolResult> | AsyncGenerator<McpToolProgress, McpToolResult, unknown>;
13
29
  export declare abstract class McpTool {
14
30
  /** Tool name — derived from class name if not overridden. ClassName -> kebab-case minus "Tool" suffix */
15
31
  name(): string;
@@ -22,6 +38,14 @@ export declare abstract class McpTool {
22
38
  /**
23
39
  * Handle the tool call.
24
40
  *
41
+ * Two shapes are accepted:
42
+ * 1. `async handle(input)` returning the final result.
43
+ * 2. `async *handle(input)` yielding `McpToolProgress` updates and returning
44
+ * the final result. Yields are forwarded to the client as
45
+ * `notifications/progress` messages when the caller supplied a
46
+ * `progressToken`. Mirror of @rudderjs/ai's streaming-tool pattern —
47
+ * don't take a "send" callback parameter.
48
+ *
25
49
  * Extra parameters beyond `input` are resolved from the DI container when
26
50
  * the method is decorated with `@Handle(Token1, …)`. Example:
27
51
  *
@@ -30,6 +54,6 @@ export declare abstract class McpTool {
30
54
  * async handle(input, logger: Logger) { ... }
31
55
  * ```
32
56
  */
33
- abstract handle(input: Record<string, unknown>, ...deps: unknown[]): Promise<McpToolResult>;
57
+ abstract handle(input: Record<string, unknown>, ...deps: unknown[]): McpToolReturn;
34
58
  }
35
59
  //# sourceMappingURL=McpTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpTool.d.ts","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,8BAAsB,OAAO;IAC3B,yGAAyG;IACzG,IAAI,IAAI,MAAM;IAId,gEAAgE;IAChE,WAAW,IAAI,MAAM;IAIrB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,IAAI,aAAa;IAEhC,gFAAgF;IAChF,YAAY,CAAC,IAAI,aAAa;IAE9B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAC5F"}
1
+ {"version":3,"file":"McpTool.d.ts","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,mHAAmH;AACnH,MAAM,MAAM,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC,GACtB,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAE3D,8BAAsB,OAAO;IAC3B,yGAAyG;IACzG,IAAI,IAAI,MAAM;IAId,gEAAgE;IAChE,WAAW,IAAI,MAAM;IAIrB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,IAAI,aAAa;IAEhC,gFAAgF;IAChF,YAAY,CAAC,IAAI,aAAa;IAE9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa;CACnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"McpTool.js","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQhD,MAAM,OAAgB,OAAO;IAC3B,yGAAyG;IACzG,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,gEAAgE;IAChE,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CAoBF"}
1
+ {"version":3,"file":"McpTool.js","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AA4BhD,MAAM,OAAgB,OAAO;IAC3B,yGAAyG;IACzG,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,gEAAgE;IAChE,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CA4BF"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { McpServer } from './McpServer.js';
2
2
  export type { McpServerMetadata } from './McpServer.js';
3
3
  export { McpTool } from './McpTool.js';
4
- export type { McpToolResult } from './McpTool.js';
4
+ export type { McpToolResult, McpToolProgress, McpToolReturn } from './McpTool.js';
5
5
  export { McpResource } from './McpResource.js';
6
6
  export { McpPrompt } from './McpPrompt.js';
7
7
  export type { McpPromptMessage } from './McpPrompt.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/runtime.d.ts CHANGED
@@ -1,5 +1,25 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import type { McpServer } from './McpServer.js';
3
+ import type { McpToolResult, McpToolReturn } from './McpTool.js';
4
+ /** SDK request handler `extra` shape — minimal; we only use sendNotification. */
5
+ type SdkRequestExtra = {
6
+ sendNotification?: (notification: {
7
+ method: string;
8
+ params: Record<string, unknown>;
9
+ }) => Promise<void> | void;
10
+ };
11
+ /**
12
+ * Run a tool's `handle()` return value to completion.
13
+ *
14
+ * - Plain `Promise<McpToolResult>` → just await it.
15
+ * - `AsyncGenerator<McpToolProgress, McpToolResult>` → iterate, forwarding each
16
+ * yield as a `notifications/progress` message to the client (only when the
17
+ * request supplied a `progressToken` in `_meta`), and resolve to the final
18
+ * value the generator returns.
19
+ *
20
+ * Errors propagate normally so the outer try/catch handles them.
21
+ */
22
+ export declare function consumeToolReturn(ret: McpToolReturn, extra: SdkRequestExtra | undefined, meta: Record<string, unknown> | undefined): Promise<McpToolResult>;
3
23
  /**
4
24
  * Read `design:paramtypes` for the given method and resolve all parameters
5
25
  * beyond index 0 from the DI container. Index 0 is reserved for the tool
@@ -33,4 +53,5 @@ export interface HttpTransportOptions {
33
53
  * - DELETE — session termination
34
54
  */
35
55
  export declare function mountHttpTransport(server: McpServer, path: string, options?: HttpTransportOptions): Promise<void>;
56
+ export {};
36
57
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAWlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAwE/C;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmClF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA6JzD;AAED,0CAA0C;AAC1C,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAID,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAWlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAA;AAyC1F,iFAAiF;AACjF,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC/G,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAgCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmClF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA8JzD;AAED,0CAA0C;AAC1C,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAID,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
package/dist/runtime.js CHANGED
@@ -35,6 +35,40 @@ function matchUriTemplate(template, uri) {
35
35
  function getProtected(server, key, fallback) {
36
36
  return (server[key]) ?? fallback;
37
37
  }
38
+ /**
39
+ * Run a tool's `handle()` return value to completion.
40
+ *
41
+ * - Plain `Promise<McpToolResult>` → just await it.
42
+ * - `AsyncGenerator<McpToolProgress, McpToolResult>` → iterate, forwarding each
43
+ * yield as a `notifications/progress` message to the client (only when the
44
+ * request supplied a `progressToken` in `_meta`), and resolve to the final
45
+ * value the generator returns.
46
+ *
47
+ * Errors propagate normally so the outer try/catch handles them.
48
+ */
49
+ export async function consumeToolReturn(ret, extra, meta) {
50
+ // Detect an async generator. Plain Promises don't have Symbol.asyncIterator.
51
+ const maybeIter = ret;
52
+ const isGenerator = maybeIter
53
+ && typeof maybeIter.next === 'function'
54
+ && typeof maybeIter[Symbol.asyncIterator] === 'function';
55
+ if (!isGenerator)
56
+ return await ret;
57
+ const iter = ret;
58
+ const progressToken = meta?.['progressToken'];
59
+ const sendNotification = extra?.sendNotification;
60
+ while (true) {
61
+ const next = await iter.next();
62
+ if (next.done)
63
+ return next.value;
64
+ if (progressToken !== undefined && sendNotification) {
65
+ await sendNotification({
66
+ method: 'notifications/progress',
67
+ params: { progressToken, ...next.value },
68
+ });
69
+ }
70
+ }
71
+ }
38
72
  function getContainer() {
39
73
  const g = globalThis;
40
74
  // `__rudderjs_app__` is the Application singleton (exposes `.make()`).
@@ -132,7 +166,7 @@ export function createSdkServer(server) {
132
166
  return def;
133
167
  }),
134
168
  }));
135
- sdk.setRequestHandler(CallToolRequestSchema, async (request) => {
169
+ sdk.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
136
170
  const tool = tools.find((t) => t.name() === request.params.name);
137
171
  if (!tool) {
138
172
  return { content: [{ type: 'text', text: `Unknown tool: ${request.params.name}` }], isError: true };
@@ -141,7 +175,8 @@ export function createSdkServer(server) {
141
175
  const start = performance.now();
142
176
  try {
143
177
  const extras = resolveHandleDeps(tool, 'handle');
144
- const result = await tool.handle(input, ...extras);
178
+ const ret = tool.handle(input, ...extras);
179
+ const result = await consumeToolReturn(ret, extra, request.params._meta);
145
180
  getMcpObservers()?.emit({
146
181
  kind: 'tool.called', serverName: meta.name, name: tool.name(),
147
182
  input, output: result, duration: performance.now() - start,
@@ -258,6 +293,8 @@ export async function startStdio(server) {
258
293
  const sdk = createSdkServer(server);
259
294
  const transport = new StdioServerTransport();
260
295
  await sdk.connect(transport);
296
+ // Stdio is process-lifetime — no detach needed; the SDK lives until exit.
297
+ server.attachSdk(sdk);
261
298
  }
262
299
  /**
263
300
  * Mount an MCP server on the framework's router at the given path.
@@ -293,6 +330,8 @@ export async function mountHttpTransport(server, path, options) {
293
330
  const transport = new WebStandardStreamableHTTPServerTransport();
294
331
  const sdk = createSdkServer(server);
295
332
  await sdk.connect(transport);
333
+ // Stateless transport lives for the lifetime of the route — never detaches.
334
+ server.attachSdk(sdk);
296
335
  entry = { transport, sdk };
297
336
  sessions.set('__stateless__', entry);
298
337
  }
@@ -309,7 +348,11 @@ export async function mountHttpTransport(server, path, options) {
309
348
  honoCtx.res = response;
310
349
  return honoCtx.res;
311
350
  }
312
- // New session — create transport + server pair
351
+ // New session — create transport + server pair. Detach is captured in a
352
+ // closure so onsessionclosed can call it without holding the SDK ref.
353
+ // Initialize to a noop so the first real assignment counts as a
354
+ // reassignment for ESLint's prefer-const rule.
355
+ let detach = () => { };
313
356
  const transport = new WebStandardStreamableHTTPServerTransport({
314
357
  sessionIdGenerator: sessionIdGen,
315
358
  onsessioninitialized: (id) => {
@@ -317,10 +360,12 @@ export async function mountHttpTransport(server, path, options) {
317
360
  },
318
361
  onsessionclosed: (id) => {
319
362
  sessions.delete(id);
363
+ detach();
320
364
  },
321
365
  });
322
366
  const sdk = createSdkServer(server);
323
367
  await sdk.connect(transport);
368
+ detach = server.attachSdk(sdk);
324
369
  const response = await transport.handleRequest(nativeRequest);
325
370
  honoCtx.res = response;
326
371
  return honoCtx.res;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,12 +1,17 @@
1
1
  import type { McpServer } from './McpServer.js';
2
- import type { McpToolResult } from './McpTool.js';
2
+ import type { McpToolResult, McpToolProgress } from './McpTool.js';
3
3
  import type { McpPromptMessage } from './McpPrompt.js';
4
4
  export declare class McpTestClient {
5
5
  private tools;
6
6
  private resources;
7
7
  private prompts;
8
8
  constructor(ServerClass: new () => McpServer);
9
- callTool(name: string, input?: Record<string, unknown>): Promise<McpToolResult>;
9
+ /**
10
+ * Invoke a tool by name. Handles both plain async tools and streaming
11
+ * generator tools — for the latter, progress yields are captured if a
12
+ * collector is supplied via `onProgress`, otherwise dropped silently.
13
+ */
14
+ callTool(name: string, input?: Record<string, unknown>, onProgress?: (p: McpToolProgress) => void): Promise<McpToolResult>;
10
15
  listTools(): Promise<Array<{
11
16
  name: string;
12
17
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,EAAE,UAAU,SAAS;IAiBtC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOnF,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIlE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIrE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIpE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAK1C"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE3E,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,EAAE,UAAU,SAAS;IAiB5C;;;;OAIG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,GACxC,OAAO,CAAC,aAAa,CAAC;IAmBnB,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIlE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIrE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIpE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAK1C"}
package/dist/testing.js CHANGED
@@ -1,4 +1,4 @@
1
- import { resolveHandleDeps } from './runtime.js';
1
+ import { resolveHandleDeps, consumeToolReturn } from './runtime.js';
2
2
  export class McpTestClient {
3
3
  tools;
4
4
  resources;
@@ -10,12 +10,29 @@ export class McpTestClient {
10
10
  this.resources = (record['resources'] ?? []).map((R) => new R());
11
11
  this.prompts = (record['prompts'] ?? []).map((P) => new P());
12
12
  }
13
- async callTool(name, input = {}) {
13
+ /**
14
+ * Invoke a tool by name. Handles both plain async tools and streaming
15
+ * generator tools — for the latter, progress yields are captured if a
16
+ * collector is supplied via `onProgress`, otherwise dropped silently.
17
+ */
18
+ async callTool(name, input = {}, onProgress) {
14
19
  const tool = this.tools.find((t) => t.name() === name);
15
20
  if (!tool)
16
21
  throw new Error(`Tool "${name}" not found`);
17
22
  const extras = resolveHandleDeps(tool, 'handle');
18
- return tool.handle(input, ...extras);
23
+ const ret = tool.handle(input, ...extras);
24
+ const extra = onProgress
25
+ ? {
26
+ sendNotification: async (n) => {
27
+ if (n.method === 'notifications/progress') {
28
+ const { progressToken: _t, ...rest } = n.params;
29
+ onProgress(rest);
30
+ }
31
+ },
32
+ }
33
+ : undefined;
34
+ // Pass a synthetic progressToken so the runtime forwards yields to onProgress.
35
+ return consumeToolReturn(ret, extra, onProgress ? { progressToken: 'test' } : undefined);
19
36
  }
20
37
  async listTools() {
21
38
  return this.tools.map((t) => ({ name: t.name(), description: t.description() }));
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,OAAO,aAAa;IAChB,KAAK,CAAW;IAChB,SAAS,CAAe;IACxB,OAAO,CAAa;IAE5B,YAAY,WAAgC;QAC1C,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;QAChC,MAAM,MAAM,GAAG,MAA4C,CAAA;QAE3D,IAAI,CAAC,KAAK,GAAG,CACV,MAAM,CAAC,OAAO,CAA0C,IAAI,EAAE,CAChE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAErB,IAAI,CAAC,SAAS,GAAG,CACd,MAAM,CAAC,WAAW,CAA8C,IAAI,EAAE,CACxE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAErB,IAAI,CAAC,OAAO,GAAG,CACZ,MAAM,CAAC,SAAS,CAA4C,IAAI,EAAE,CACpE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAiC,EAAE;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,MAAY,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;QAC5D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC,CAAA;QAC7D,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAgC,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,CAAA;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,kCAAkC,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,qBAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,kCAAkC,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,yBAAyB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACvF,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,kCAAkC,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,uBAAuB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACnF,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { ZodLikeObject } from './types.js';
2
2
  /**
3
3
  * Minimal Zod-to-JSON-Schema converter for MCP tool input schemas.
4
- * Handles the primitive types commonly used in tool parameters, with
5
- * support for both Zod v3 and Zod v4 internal representations.
4
+ *
5
+ * Covers the types tools actually use: primitives, arrays, optional/default,
6
+ * enum, nested objects, unions, literals, nullable, date, record, tuple.
7
+ *
8
+ * Supports both Zod v3 (`_def.typeName: "ZodString"`) and Zod v4
9
+ * (`_def.type: "string"`) internal representations.
6
10
  */
7
11
  export declare function zodToJsonSchema(schema: ZodLikeObject): Record<string, unknown>;
8
12
  //# sourceMappingURL=zod-to-json-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmB9E"}
1
+ {"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmB9E"}
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * Minimal Zod-to-JSON-Schema converter for MCP tool input schemas.
3
- * Handles the primitive types commonly used in tool parameters, with
4
- * support for both Zod v3 and Zod v4 internal representations.
3
+ *
4
+ * Covers the types tools actually use: primitives, arrays, optional/default,
5
+ * enum, nested objects, unions, literals, nullable, date, record, tuple.
6
+ *
7
+ * Supports both Zod v3 (`_def.typeName: "ZodString"`) and Zod v4
8
+ * (`_def.type: "string"`) internal representations.
5
9
  */
6
10
  export function zodToJsonSchema(schema) {
7
11
  const shape = schema.shape;
@@ -36,6 +40,10 @@ function zodTypeToJson(field) {
36
40
  return withDesc({ type: 'number' });
37
41
  case 'boolean':
38
42
  return withDesc({ type: 'boolean' });
43
+ case 'date':
44
+ // No native JSON Schema "date"; tools that send dates over MCP serialize
45
+ // to ISO strings, so date-time is the right format hint.
46
+ return withDesc({ type: 'string', format: 'date-time' });
39
47
  case 'array': {
40
48
  // v3: def.type is the element; v4: def.element
41
49
  const elem = (def['element'] ?? def['type']);
@@ -43,7 +51,20 @@ function zodTypeToJson(field) {
43
51
  }
44
52
  case 'optional':
45
53
  case 'default':
46
- return zodTypeToJson(def['innerType']);
54
+ case 'nullable':
55
+ // Optional/default just unwrap. Nullable also unwraps but adds "null" to
56
+ // the type union — JSON Schema's way to allow null alongside another type.
57
+ {
58
+ const inner = zodTypeToJson(def['innerType']);
59
+ if (kind !== 'nullable')
60
+ return inner;
61
+ const t = inner['type'];
62
+ if (typeof t === 'string')
63
+ return withDesc({ ...inner, type: [t, 'null'] });
64
+ if (Array.isArray(t) && !t.includes('null'))
65
+ return withDesc({ ...inner, type: [...t, 'null'] });
66
+ return withDesc(inner);
67
+ }
47
68
  case 'enum': {
48
69
  // v3: def.values is an array; v4: def.entries is a record { key: key }
49
70
  const values = Array.isArray(def['values'])
@@ -51,6 +72,46 @@ function zodTypeToJson(field) {
51
72
  : Object.values((def['entries'] ?? {}));
52
73
  return withDesc({ type: 'string', enum: values });
53
74
  }
75
+ case 'literal': {
76
+ // v3: single `value`; v4: `values` array (allows multiple literals).
77
+ const single = def['value'];
78
+ const list = def['values'];
79
+ if (Array.isArray(list) && list.length > 1)
80
+ return withDesc({ enum: list });
81
+ const v = single ?? list?.[0];
82
+ return withDesc({ const: v });
83
+ }
84
+ case 'union': {
85
+ const options = (def['options'] ?? []);
86
+ return withDesc({ anyOf: options.map((o) => zodTypeToJson(o)) });
87
+ }
88
+ case 'object': {
89
+ // Nested object — recurse via the converter entry point. Both v3 and v4
90
+ // expose `.shape` on the schema instance (v3 also has `_def.shape` as a
91
+ // thunk we don't need to call).
92
+ const inner = zodToJsonSchema(field);
93
+ return description ? { ...inner, description } : inner;
94
+ }
95
+ case 'record': {
96
+ // JSON Schema models a string-keyed map as an object with
97
+ // additionalProperties. Drop keyType — it's almost always string.
98
+ const valueType = def['valueType'];
99
+ return withDesc({
100
+ type: 'object',
101
+ additionalProperties: valueType ? zodTypeToJson(valueType) : true,
102
+ });
103
+ }
104
+ case 'tuple': {
105
+ // JSON Schema 2020-12: prefixItems for fixed-position items, items: false
106
+ // to disallow extras. (Older draft used `items: [...]` — prefixItems is
107
+ // what the MCP TS SDK / Anthropic clients accept.)
108
+ const items = (def['items'] ?? []);
109
+ return withDesc({
110
+ type: 'array',
111
+ prefixItems: items.map((i) => zodTypeToJson(i)),
112
+ items: false,
113
+ });
114
+ }
54
115
  default:
55
116
  return withDesc({ type: 'string' });
56
117
  }
@@ -78,6 +139,8 @@ function isOptional(field) {
78
139
  const typeName = def['typeName'];
79
140
  const typeTag = def['type'];
80
141
  const kind = normalizeKind(typeName, typeTag);
142
+ // ZodNullable is intentionally NOT here — nullable means the field is present
143
+ // but its value can be null. JSON Schema separates required from nullability.
81
144
  return kind === 'optional' || kind === 'default';
82
145
  }
83
146
  //# sourceMappingURL=zod-to-json-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/mcp",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "MCP (Model Context Protocol) server framework for RudderJS",
5
5
  "rudderjs": {
6
6
  "provider": "McpProvider",
@@ -48,11 +48,11 @@
48
48
  "@modelcontextprotocol/sdk": "^1.13.0",
49
49
  "reflect-metadata": "^0.2.0",
50
50
  "zod": "^3.23.0",
51
- "@rudderjs/core": "0.1.1"
51
+ "@rudderjs/core": "^0.1.2"
52
52
  },
53
53
  "peerDependencies": {
54
- "@rudderjs/router": "0.3.0",
55
- "@rudderjs/rudder": "0.0.3"
54
+ "@rudderjs/router": "^0.3.1",
55
+ "@rudderjs/rudder": "^0.0.3"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
58
  "@rudderjs/router": {
@@ -65,8 +65,8 @@
65
65
  "devDependencies": {
66
66
  "@types/node": "^20.0.0",
67
67
  "typescript": "^5.4.0",
68
- "@rudderjs/router": "0.3.0",
69
- "@rudderjs/rudder": "0.0.3"
68
+ "@rudderjs/rudder": "^0.0.3",
69
+ "@rudderjs/router": "^0.3.1"
70
70
  },
71
71
  "author": "Suleiman Shahbari",
72
72
  "scripts": {