@rudderjs/mcp 0.0.1 → 1.0.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 +68 -0
- package/dist/Mcp.d.ts +21 -5
- package/dist/Mcp.d.ts.map +1 -1
- package/dist/Mcp.js +13 -1
- package/dist/Mcp.js.map +1 -1
- package/dist/McpPrompt.d.ts +8 -5
- package/dist/McpPrompt.d.ts.map +1 -1
- package/dist/McpPrompt.js.map +1 -1
- package/dist/McpResource.d.ts +9 -3
- package/dist/McpResource.d.ts.map +1 -1
- package/dist/McpResource.js +4 -0
- package/dist/McpResource.js.map +1 -1
- package/dist/McpTool.d.ts +17 -5
- package/dist/McpTool.d.ts.map +1 -1
- package/dist/McpTool.js.map +1 -1
- package/dist/auth/oauth2.d.ts +25 -0
- package/dist/auth/oauth2.d.ts.map +1 -0
- package/dist/auth/oauth2.js +128 -0
- package/dist/auth/oauth2.js.map +1 -0
- package/dist/commands/inspector-ui.d.ts +2 -0
- package/dist/commands/inspector-ui.d.ts.map +1 -0
- package/dist/commands/inspector-ui.js +300 -0
- package/dist/commands/inspector-ui.js.map +1 -0
- package/dist/commands/inspector.d.ts +5 -0
- package/dist/commands/inspector.d.ts.map +1 -0
- package/dist/commands/inspector.js +226 -0
- package/dist/commands/inspector.js.map +1 -0
- package/dist/commands/make-mcp-prompt.d.ts +3 -0
- package/dist/commands/make-mcp-prompt.d.ts.map +1 -0
- package/dist/commands/make-mcp-prompt.js +27 -0
- package/dist/commands/make-mcp-prompt.js.map +1 -0
- package/dist/commands/make-mcp-resource.d.ts +3 -0
- package/dist/commands/make-mcp-resource.d.ts.map +1 -0
- package/dist/commands/make-mcp-resource.js +26 -0
- package/dist/commands/make-mcp-resource.js.map +1 -0
- package/dist/commands/make-mcp-server.d.ts +3 -0
- package/dist/commands/make-mcp-server.d.ts.map +1 -0
- package/dist/commands/make-mcp-server.js +28 -0
- package/dist/commands/make-mcp-server.js.map +1 -0
- package/dist/commands/make-mcp-tool.d.ts +3 -0
- package/dist/commands/make-mcp-tool.d.ts.map +1 -0
- package/dist/commands/make-mcp-tool.js +25 -0
- package/dist/commands/make-mcp-tool.js.map +1 -0
- package/dist/decorators.d.ts +17 -0
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +22 -0
- package/dist/decorators.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/observers.d.ts +32 -0
- package/dist/observers.d.ts.map +1 -0
- package/dist/observers.js +31 -0
- package/dist/observers.js.map +1 -0
- package/dist/provider.d.ts +4 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +78 -40
- package/dist/provider.js.map +1 -1
- package/dist/runtime.d.ts +30 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +267 -24
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -1
- package/dist/testing.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/zod-to-json-schema.d.ts +4 -3
- package/dist/zod-to-json-schema.d.ts.map +1 -1
- package/dist/zod-to-json-schema.js +54 -24
- package/dist/zod-to-json-schema.js.map +1 -1
- 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) =>
|
|
15
|
-
const resources = resourceClasses.map((R) =>
|
|
16
|
-
const prompts = promptClasses.map((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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
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:
|
|
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
|
|
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: ${
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
85
|
-
|
|
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
|
package/dist/runtime.js.map
CHANGED
|
@@ -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.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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() }));
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
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
|
|
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:
|
|
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,
|
|
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
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
case '
|
|
32
|
-
return { type: '
|
|
33
|
-
case '
|
|
34
|
-
return { type: '
|
|
35
|
-
case '
|
|
36
|
-
return
|
|
37
|
-
case '
|
|
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 '
|
|
40
|
-
|
|
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
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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":"AAEA
|
|
1
|
+
{"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../src/zod-to-json-schema.ts"],"names":[],"mappings":"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"}
|