@rudderjs/mcp 0.0.1 → 0.0.2

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 (75) hide show
  1. package/README.md +68 -0
  2. package/dist/Mcp.d.ts +21 -5
  3. package/dist/Mcp.d.ts.map +1 -1
  4. package/dist/Mcp.js +13 -1
  5. package/dist/Mcp.js.map +1 -1
  6. package/dist/McpPrompt.d.ts +8 -5
  7. package/dist/McpPrompt.d.ts.map +1 -1
  8. package/dist/McpPrompt.js.map +1 -1
  9. package/dist/McpResource.d.ts +9 -3
  10. package/dist/McpResource.d.ts.map +1 -1
  11. package/dist/McpResource.js +4 -0
  12. package/dist/McpResource.js.map +1 -1
  13. package/dist/McpTool.d.ts +17 -5
  14. package/dist/McpTool.d.ts.map +1 -1
  15. package/dist/McpTool.js.map +1 -1
  16. package/dist/auth/oauth2.d.ts +25 -0
  17. package/dist/auth/oauth2.d.ts.map +1 -0
  18. package/dist/auth/oauth2.js +128 -0
  19. package/dist/auth/oauth2.js.map +1 -0
  20. package/dist/commands/inspector-ui.d.ts +2 -0
  21. package/dist/commands/inspector-ui.d.ts.map +1 -0
  22. package/dist/commands/inspector-ui.js +300 -0
  23. package/dist/commands/inspector-ui.js.map +1 -0
  24. package/dist/commands/inspector.d.ts +5 -0
  25. package/dist/commands/inspector.d.ts.map +1 -0
  26. package/dist/commands/inspector.js +226 -0
  27. package/dist/commands/inspector.js.map +1 -0
  28. package/dist/commands/make-mcp-prompt.d.ts +3 -0
  29. package/dist/commands/make-mcp-prompt.d.ts.map +1 -0
  30. package/dist/commands/make-mcp-prompt.js +27 -0
  31. package/dist/commands/make-mcp-prompt.js.map +1 -0
  32. package/dist/commands/make-mcp-resource.d.ts +3 -0
  33. package/dist/commands/make-mcp-resource.d.ts.map +1 -0
  34. package/dist/commands/make-mcp-resource.js +26 -0
  35. package/dist/commands/make-mcp-resource.js.map +1 -0
  36. package/dist/commands/make-mcp-server.d.ts +3 -0
  37. package/dist/commands/make-mcp-server.d.ts.map +1 -0
  38. package/dist/commands/make-mcp-server.js +28 -0
  39. package/dist/commands/make-mcp-server.js.map +1 -0
  40. package/dist/commands/make-mcp-tool.d.ts +3 -0
  41. package/dist/commands/make-mcp-tool.d.ts.map +1 -0
  42. package/dist/commands/make-mcp-tool.js +25 -0
  43. package/dist/commands/make-mcp-tool.js.map +1 -0
  44. package/dist/decorators.d.ts +17 -0
  45. package/dist/decorators.d.ts.map +1 -1
  46. package/dist/decorators.js +22 -0
  47. package/dist/decorators.js.map +1 -1
  48. package/dist/index.d.ts +9 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/observers.d.ts +32 -0
  53. package/dist/observers.d.ts.map +1 -0
  54. package/dist/observers.js +31 -0
  55. package/dist/observers.js.map +1 -0
  56. package/dist/provider.d.ts +4 -2
  57. package/dist/provider.d.ts.map +1 -1
  58. package/dist/provider.js +78 -40
  59. package/dist/provider.js.map +1 -1
  60. package/dist/runtime.d.ts +30 -0
  61. package/dist/runtime.d.ts.map +1 -1
  62. package/dist/runtime.js +267 -24
  63. package/dist/runtime.js.map +1 -1
  64. package/dist/testing.d.ts.map +1 -1
  65. package/dist/testing.js +3 -1
  66. package/dist/testing.js.map +1 -1
  67. package/dist/types.d.ts +11 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +2 -0
  70. package/dist/types.js.map +1 -0
  71. package/dist/zod-to-json-schema.d.ts +4 -3
  72. package/dist/zod-to-json-schema.d.ts.map +1 -1
  73. package/dist/zod-to-json-schema.js +54 -24
  74. package/dist/zod-to-json-schema.js.map +1 -1
  75. package/package.json +41 -3
package/dist/runtime.js CHANGED
@@ -1,62 +1,222 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { CallToolRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, ListResourcesRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
4
  import { zodToJsonSchema } from './zod-to-json-schema.js';
5
+ import { getInjectTokens } from './decorators.js';
6
+ // Lazy accessor — avoids importing the registry eagerly so the global
7
+ // singleton is always the one on `globalThis`, even across SSR re-eval.
8
+ let _mcpObs;
9
+ function getMcpObservers() {
10
+ if (_mcpObs === undefined) {
11
+ _mcpObs = globalThis['__rudderjs_mcp_observers__'] ?? null;
12
+ }
13
+ return _mcpObs;
14
+ }
15
+ /**
16
+ * Match a URI against a template pattern like `weather://location/{city}`.
17
+ * Returns extracted params or null if no match.
18
+ */
19
+ function matchUriTemplate(template, uri) {
20
+ // Convert `weather://location/{city}` → regex `^weather://location/(?<city>[^/]+)$`
21
+ const paramNames = [];
22
+ const regexStr = template.replace(/\{(\w+)\}/g, (_, name) => {
23
+ paramNames.push(name);
24
+ return '([^/]+)';
25
+ });
26
+ const match = uri.match(new RegExp(`^${regexStr}$`));
27
+ if (!match)
28
+ return null;
29
+ const params = {};
30
+ for (let i = 0; i < paramNames.length; i++) {
31
+ params[paramNames[i]] = decodeURIComponent(match[i + 1]);
32
+ }
33
+ return params;
34
+ }
5
35
  function getProtected(server, key, fallback) {
6
36
  return (server[key]) ?? fallback;
7
37
  }
38
+ function getContainer() {
39
+ const g = globalThis;
40
+ // `__rudderjs_app__` is the Application singleton (exposes `.make()`).
41
+ // `__rudderjs_instance__` is the RudderJS wrapper (does not).
42
+ return g['__rudderjs_app__']
43
+ ?? g['__rudderjs_instance__'];
44
+ }
45
+ /**
46
+ * Try to resolve a class via the framework's DI container (auto-injects
47
+ * constructor dependencies). Falls back to plain `new T()` if the container
48
+ * is not available or resolution fails.
49
+ */
50
+ function resolveOrConstruct(Ctor) {
51
+ try {
52
+ const container = getContainer();
53
+ if (container?.make) {
54
+ return container.make(Ctor);
55
+ }
56
+ }
57
+ catch {
58
+ // DI resolution failed — fall back to plain constructor
59
+ }
60
+ return new Ctor();
61
+ }
62
+ /**
63
+ * Read `design:paramtypes` for the given method and resolve all parameters
64
+ * beyond index 0 from the DI container. Index 0 is reserved for the tool
65
+ * input (or resource params / prompt arguments).
66
+ *
67
+ * Returns an empty array if:
68
+ * - the method wasn't decorated (no metadata emitted by TS)
69
+ * - the framework container isn't available
70
+ * - no extra parameters were declared
71
+ */
72
+ export function resolveHandleDeps(instance, propertyKey) {
73
+ // 1) Preferred: explicit tokens from @Handle(Type1, Type2, …). Always works,
74
+ // no reliance on emitDecoratorMetadata.
75
+ const explicit = getInjectTokens(instance, propertyKey);
76
+ const container = getContainer();
77
+ if (explicit && explicit.length > 0) {
78
+ if (!container?.make)
79
+ return [];
80
+ return explicit.map((token) => {
81
+ try {
82
+ return container.make(token);
83
+ }
84
+ catch {
85
+ return undefined;
86
+ }
87
+ });
88
+ }
89
+ // 2) Fallback: design:paramtypes (requires tsc or a bundler that emits
90
+ // decorator metadata — notably esbuild/Vite do not).
91
+ const paramTypes = Reflect.getMetadata('design:paramtypes', instance, propertyKey);
92
+ if (!paramTypes || paramTypes.length <= 1)
93
+ return [];
94
+ if (!container?.make)
95
+ return [];
96
+ const extras = [];
97
+ for (let i = 1; i < paramTypes.length; i++) {
98
+ const Type = paramTypes[i];
99
+ if (!Type) {
100
+ extras.push(undefined);
101
+ continue;
102
+ }
103
+ try {
104
+ extras.push(container.make(Type));
105
+ }
106
+ catch {
107
+ extras.push(undefined);
108
+ }
109
+ }
110
+ return extras;
111
+ }
8
112
  export function createSdkServer(server) {
9
113
  const meta = server.metadata();
10
114
  const sdk = new Server({ name: meta.name, version: meta.version }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
11
115
  const toolClasses = getProtected(server, 'tools', []);
12
116
  const resourceClasses = getProtected(server, 'resources', []);
13
117
  const promptClasses = getProtected(server, 'prompts', []);
14
- const tools = toolClasses.map((T) => new T());
15
- const resources = resourceClasses.map((R) => new R());
16
- const prompts = promptClasses.map((P) => new P());
118
+ const tools = toolClasses.map((T) => resolveOrConstruct(T));
119
+ const resources = resourceClasses.map((R) => resolveOrConstruct(R));
120
+ const prompts = promptClasses.map((P) => resolveOrConstruct(P));
17
121
  // ── Tools ────────────────────────────────────────────────
18
122
  sdk.setRequestHandler(ListToolsRequestSchema, async () => ({
19
- tools: tools.map((t) => ({
20
- name: t.name(),
21
- description: t.description(),
22
- inputSchema: zodToJsonSchema(t.schema()),
23
- })),
123
+ tools: tools.map((t) => {
124
+ const def = {
125
+ name: t.name(),
126
+ description: t.description(),
127
+ inputSchema: zodToJsonSchema(t.schema()),
128
+ };
129
+ if (t.outputSchema) {
130
+ def['outputSchema'] = zodToJsonSchema(t.outputSchema());
131
+ }
132
+ return def;
133
+ }),
24
134
  }));
25
135
  sdk.setRequestHandler(CallToolRequestSchema, async (request) => {
26
136
  const tool = tools.find((t) => t.name() === request.params.name);
27
137
  if (!tool) {
28
138
  return { content: [{ type: 'text', text: `Unknown tool: ${request.params.name}` }], isError: true };
29
139
  }
140
+ const input = (request.params.arguments ?? {});
141
+ const start = performance.now();
30
142
  try {
31
- const result = await tool.handle((request.params.arguments ?? {}));
143
+ const extras = resolveHandleDeps(tool, 'handle');
144
+ const result = await tool.handle(input, ...extras);
145
+ getMcpObservers()?.emit({
146
+ kind: 'tool.called', serverName: meta.name, name: tool.name(),
147
+ input, output: result, duration: performance.now() - start,
148
+ });
32
149
  return { ...result };
33
150
  }
34
151
  catch (err) {
35
152
  const msg = err instanceof Error ? err.message : String(err);
153
+ getMcpObservers()?.emit({
154
+ kind: 'tool.failed', serverName: meta.name, name: tool.name(),
155
+ input, output: null, duration: performance.now() - start, error: msg,
156
+ });
36
157
  return { content: [{ type: 'text', text: `Error: ${msg}` }], isError: true };
37
158
  }
38
159
  });
39
160
  // ── Resources ────────────────────────────────────────────
161
+ const staticResources = resources.filter((r) => !r.isTemplate());
162
+ const templateResources = resources.filter((r) => r.isTemplate());
40
163
  sdk.setRequestHandler(ListResourcesRequestSchema, async () => ({
41
- resources: resources.map((r) => ({
164
+ resources: staticResources.map((r) => ({
42
165
  uri: r.uri(),
43
166
  name: r.uri(),
44
167
  description: r.description(),
45
168
  mimeType: r.mimeType(),
46
169
  })),
47
170
  }));
171
+ if (templateResources.length > 0) {
172
+ sdk.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
173
+ resourceTemplates: templateResources.map((r) => ({
174
+ uriTemplate: r.uri(),
175
+ name: r.uri(),
176
+ description: r.description(),
177
+ mimeType: r.mimeType(),
178
+ })),
179
+ }));
180
+ }
48
181
  sdk.setRequestHandler(ReadResourceRequestSchema, async (request) => {
49
- const resource = resources.find((r) => r.uri() === request.params.uri);
182
+ const uri = request.params.uri;
183
+ // Try exact match first (static resources)
184
+ let resource = staticResources.find((r) => r.uri() === uri);
185
+ let params;
186
+ // Try template match
187
+ if (!resource) {
188
+ for (const tmpl of templateResources) {
189
+ const extracted = matchUriTemplate(tmpl.uri(), uri);
190
+ if (extracted) {
191
+ resource = tmpl;
192
+ params = extracted;
193
+ break;
194
+ }
195
+ }
196
+ }
50
197
  if (!resource) {
51
- throw new Error(`Unknown resource: ${request.params.uri}`);
52
- }
53
- return {
54
- contents: [{
55
- uri: resource.uri(),
56
- text: await resource.handle(),
57
- mimeType: resource.mimeType(),
58
- }],
59
- };
198
+ throw new Error(`Unknown resource: ${uri}`);
199
+ }
200
+ const start = performance.now();
201
+ try {
202
+ const extras = resolveHandleDeps(resource, 'handle');
203
+ const text = await resource.handle(params, ...extras);
204
+ getMcpObservers()?.emit({
205
+ kind: 'resource.read', serverName: meta.name, name: resource.uri(),
206
+ input: params ?? { uri }, output: text, duration: performance.now() - start,
207
+ });
208
+ return {
209
+ contents: [{ uri, text, mimeType: resource.mimeType() }],
210
+ };
211
+ }
212
+ catch (err) {
213
+ const msg = err instanceof Error ? err.message : String(err);
214
+ getMcpObservers()?.emit({
215
+ kind: 'resource.failed', serverName: meta.name, name: resource.uri(),
216
+ input: params ?? { uri }, output: null, duration: performance.now() - start, error: msg,
217
+ });
218
+ throw err;
219
+ }
60
220
  });
61
221
  // ── Prompts ──────────────────────────────────────────────
62
222
  sdk.setRequestHandler(ListPromptsRequestSchema, async () => ({
@@ -71,7 +231,25 @@ export function createSdkServer(server) {
71
231
  if (!prompt) {
72
232
  throw new Error(`Unknown prompt: ${request.params.name}`);
73
233
  }
74
- return { messages: await prompt.handle((request.params.arguments ?? {})) };
234
+ const args = (request.params.arguments ?? {});
235
+ const start = performance.now();
236
+ try {
237
+ const extras = resolveHandleDeps(prompt, 'handle');
238
+ const messages = await prompt.handle(args, ...extras);
239
+ getMcpObservers()?.emit({
240
+ kind: 'prompt.rendered', serverName: meta.name, name: prompt.name(),
241
+ input: args, output: messages, duration: performance.now() - start,
242
+ });
243
+ return { messages };
244
+ }
245
+ catch (err) {
246
+ const msg = err instanceof Error ? err.message : String(err);
247
+ getMcpObservers()?.emit({
248
+ kind: 'prompt.failed', serverName: meta.name, name: prompt.name(),
249
+ input: args, output: null, duration: performance.now() - start, error: msg,
250
+ });
251
+ throw err;
252
+ }
75
253
  });
76
254
  return sdk;
77
255
  }
@@ -81,6 +259,71 @@ export async function startStdio(server) {
81
259
  const transport = new StdioServerTransport();
82
260
  await sdk.connect(transport);
83
261
  }
84
- // TODO: Add createHttpHandler once StreamableHTTPServerTransport / SSEServerTransport
85
- // integration pattern is finalized. The low-level Server class requires manual transport wiring.
262
+ /**
263
+ * Mount an MCP server on the framework's router at the given path.
264
+ *
265
+ * Uses the MCP SDK's `WebStandardStreamableHTTPServerTransport` which
266
+ * accepts Web Standard `Request` objects and returns `Response` — a
267
+ * natural fit for Hono (the framework's server adapter).
268
+ *
269
+ * The transport handles all three HTTP methods:
270
+ * - POST — JSON-RPC messages (initialization + ongoing)
271
+ * - GET — SSE stream for server-initiated notifications
272
+ * - DELETE — session termination
273
+ */
274
+ export async function mountHttpTransport(server, path, options) {
275
+ const { WebStandardStreamableHTTPServerTransport } = await import('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js');
276
+ // Session map: each session gets its own transport + SDK server pair.
277
+ // For stateless mode, a single transport is reused.
278
+ const sessions = new Map();
279
+ const sessionIdGen = options?.sessionIdGenerator !== undefined
280
+ ? options.sessionIdGenerator
281
+ : () => crypto.randomUUID();
282
+ const { resolveOptionalPeer } = await import('@rudderjs/core');
283
+ const { router } = await resolveOptionalPeer('@rudderjs/router');
284
+ const middleware = options?.middleware;
285
+ router.all(`${path}`, async (req, res) => {
286
+ // Extract the Hono context → Web Standard Request
287
+ const honoCtx = req.raw;
288
+ const nativeRequest = honoCtx.req.raw;
289
+ // For stateless mode (no session generator)
290
+ if (!sessionIdGen) {
291
+ let entry = sessions.get('__stateless__');
292
+ if (!entry) {
293
+ const transport = new WebStandardStreamableHTTPServerTransport();
294
+ const sdk = createSdkServer(server);
295
+ await sdk.connect(transport);
296
+ entry = { transport, sdk };
297
+ sessions.set('__stateless__', entry);
298
+ }
299
+ const response = await entry.transport.handleRequest(nativeRequest);
300
+ honoCtx.res = response;
301
+ return honoCtx.res;
302
+ }
303
+ // Stateful mode: route by session ID header
304
+ const sessionId = nativeRequest.headers.get('mcp-session-id');
305
+ if (sessionId && sessions.has(sessionId)) {
306
+ // Existing session
307
+ const entry = sessions.get(sessionId);
308
+ const response = await entry.transport.handleRequest(nativeRequest);
309
+ honoCtx.res = response;
310
+ return honoCtx.res;
311
+ }
312
+ // New session — create transport + server pair
313
+ const transport = new WebStandardStreamableHTTPServerTransport({
314
+ sessionIdGenerator: sessionIdGen,
315
+ onsessioninitialized: (id) => {
316
+ sessions.set(id, { transport, sdk });
317
+ },
318
+ onsessionclosed: (id) => {
319
+ sessions.delete(id);
320
+ },
321
+ });
322
+ const sdk = createSdkServer(server);
323
+ await sdk.connect(transport);
324
+ const response = await transport.handleRequest(nativeRequest);
325
+ honoCtx.res = response;
326
+ return honoCtx.res;
327
+ }, middleware);
328
+ }
86
329
  //# sourceMappingURL=runtime.js.map
@@ -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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"}
@@ -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;AAEjE,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;IAMnF,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,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"}
package/dist/testing.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { resolveHandleDeps } from './runtime.js';
1
2
  export class McpTestClient {
2
3
  tools;
3
4
  resources;
@@ -13,7 +14,8 @@ export class McpTestClient {
13
14
  const tool = this.tools.find((t) => t.name() === name);
14
15
  if (!tool)
15
16
  throw new Error(`Tool "${name}" not found`);
16
- return tool.handle(input);
17
+ const extras = resolveHandleDeps(tool, 'handle');
18
+ return tool.handle(input, ...extras);
17
19
  }
18
20
  async listTools() {
19
21
  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":"AAKA,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,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,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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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Structural type that matches the shape the MCP runtime needs from a Zod
3
+ * object schema: a `.shape` record of nested schemas. Both Zod v3's
4
+ * `ZodObject<ZodRawShape>` and Zod v4's `ZodObject<{...}>` satisfy this,
5
+ * so tools / resources / prompts authored against either major version
6
+ * type-check without a version bump in `@rudderjs/mcp`.
7
+ */
8
+ export interface ZodLikeObject {
9
+ shape: Record<string, unknown>;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
- import type { z } from 'zod';
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 common primitive types used in tool parameters.
4
+ * Handles the primitive types commonly used in tool parameters, with
5
+ * support for both Zod v3 and Zod v4 internal representations.
5
6
  */
6
- export declare function zodToJsonSchema(schema: z.ZodObject<z.ZodRawShape>): Record<string, unknown>;
7
+ export declare function zodToJsonSchema(schema: ZodLikeObject): Record<string, unknown>;
7
8
  //# 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,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB3F"}
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,6 +1,7 @@
1
1
  /**
2
2
  * Minimal Zod-to-JSON-Schema converter for MCP tool input schemas.
3
- * Handles the common primitive types used in tool parameters.
3
+ * Handles the primitive types commonly used in tool parameters, with
4
+ * support for both Zod v3 and Zod v4 internal representations.
4
5
  */
5
6
  export function zodToJsonSchema(schema) {
6
7
  const shape = schema.shape;
@@ -9,7 +10,6 @@ export function zodToJsonSchema(schema) {
9
10
  for (const [key, value] of Object.entries(shape)) {
10
11
  const field = value;
11
12
  properties[key] = zodTypeToJson(field);
12
- // If the field is not optional, mark as required
13
13
  if (!isOptional(field)) {
14
14
  required.push(key);
15
15
  }
@@ -21,33 +21,63 @@ export function zodToJsonSchema(schema) {
21
21
  };
22
22
  }
23
23
  function zodTypeToJson(field) {
24
- const def = field._def;
24
+ const def = field._def ?? {};
25
+ // Zod v3 uses `def.typeName` (e.g. "ZodString").
26
+ // Zod v4 uses `def.type` (e.g. "string").
25
27
  const typeName = def['typeName'];
26
- switch (typeName) {
27
- case 'ZodString':
28
- return { type: 'string', ...(def['description'] ? { description: def['description'] } : {}) };
29
- case 'ZodNumber':
30
- return { type: 'number', ...(def['description'] ? { description: def['description'] } : {}) };
31
- case 'ZodBoolean':
32
- return { type: 'boolean', ...(def['description'] ? { description: def['description'] } : {}) };
33
- case 'ZodArray':
34
- return { type: 'array', items: zodTypeToJson(def['type']), ...(def['description'] ? { description: def['description'] } : {}) };
35
- case 'ZodOptional':
36
- return zodTypeToJson(def['innerType']);
37
- case 'ZodDefault':
28
+ const typeTag = def['type'];
29
+ const kind = normalizeKind(typeName, typeTag);
30
+ const description = getDescription(field, def);
31
+ const withDesc = (body) => description ? { ...body, description } : body;
32
+ switch (kind) {
33
+ case 'string':
34
+ return withDesc({ type: 'string' });
35
+ case 'number':
36
+ return withDesc({ type: 'number' });
37
+ case 'boolean':
38
+ return withDesc({ type: 'boolean' });
39
+ case 'array': {
40
+ // v3: def.type is the element; v4: def.element
41
+ const elem = (def['element'] ?? def['type']);
42
+ return withDesc({ type: 'array', items: elem ? zodTypeToJson(elem) : {} });
43
+ }
44
+ case 'optional':
45
+ case 'default':
38
46
  return zodTypeToJson(def['innerType']);
39
- case 'ZodEnum':
40
- return { type: 'string', enum: def['values'], ...(def['description'] ? { description: def['description'] } : {}) };
47
+ case 'enum': {
48
+ // v3: def.values is an array; v4: def.entries is a record { key: key }
49
+ const values = Array.isArray(def['values'])
50
+ ? def['values']
51
+ : Object.values((def['entries'] ?? {}));
52
+ return withDesc({ type: 'string', enum: values });
53
+ }
41
54
  default:
42
- return { type: 'string' };
55
+ return withDesc({ type: 'string' });
43
56
  }
44
57
  }
58
+ function normalizeKind(typeName, typeTag) {
59
+ if (typeName) {
60
+ // Strip "Zod" prefix and lowercase first letter — ZodString → "string"
61
+ const stripped = typeName.replace(/^Zod/, '');
62
+ return stripped.charAt(0).toLowerCase() + stripped.slice(1);
63
+ }
64
+ return typeTag;
65
+ }
66
+ /** Zod v3 stores `.describe()` in `_def.description`; v4 stores it on the instance. */
67
+ function getDescription(field, def) {
68
+ const fromDef = def['description'];
69
+ if (typeof fromDef === 'string')
70
+ return fromDef;
71
+ const fromInstance = field.description;
72
+ if (typeof fromInstance === 'string')
73
+ return fromInstance;
74
+ return undefined;
75
+ }
45
76
  function isOptional(field) {
46
- const typeName = field._def['typeName'];
47
- if (typeName === 'ZodOptional')
48
- return true;
49
- if (typeName === 'ZodDefault')
50
- return true;
51
- return false;
77
+ const def = field._def ?? {};
78
+ const typeName = def['typeName'];
79
+ const typeTag = def['type'];
80
+ const kind = normalizeKind(typeName, typeTag);
81
+ return kind === 'optional' || kind === 'default';
52
82
  }
53
83
  //# 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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"}