@riktajs/mcp 0.1.3 → 0.3.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
@@ -211,6 +211,129 @@ const filesSchema = z.array(z.object({
211
211
  }));
212
212
  ```
213
213
 
214
+ ## HTTP Context
215
+
216
+ All MCP handlers (tools, resources, prompts) receive an optional `context` parameter that provides access to the HTTP request and reply objects from Fastify:
217
+
218
+ ```typescript
219
+ import { Injectable } from '@riktajs/core';
220
+ import { MCPTool, MCPHandlerContext, z } from '@riktajs/mcp';
221
+
222
+ @Injectable()
223
+ class AuthenticatedService {
224
+ @MCPTool({
225
+ name: 'get_user_data',
226
+ description: 'Get data for the authenticated user',
227
+ inputSchema: z.object({
228
+ includePrivate: z.boolean().optional(),
229
+ }),
230
+ })
231
+ async getUserData(
232
+ params: { includePrivate?: boolean },
233
+ context?: MCPHandlerContext
234
+ ) {
235
+ // Access HTTP headers
236
+ const authToken = context?.request?.headers.authorization;
237
+
238
+ // Access query parameters
239
+ const sessionId = context?.request?.query.sessionId;
240
+
241
+ // Set custom response headers
242
+ if (context?.reply) {
243
+ context.reply.header('X-Request-ID', generateId());
244
+ }
245
+
246
+ // Access request IP
247
+ const clientIp = context?.request?.ip;
248
+
249
+ // Log request details
250
+ context?.request?.log.info('Processing user data request');
251
+
252
+ return {
253
+ content: [{
254
+ type: 'text',
255
+ text: `User data for session ${sessionId}`,
256
+ }],
257
+ };
258
+ }
259
+ }
260
+ ```
261
+
262
+ ### Context Properties
263
+
264
+ The `MCPHandlerContext` interface provides:
265
+
266
+ - `request?: FastifyRequest` - The Fastify request object
267
+ - `headers` - HTTP headers
268
+ - `query` - Query parameters
269
+ - `body` - Request body
270
+ - `params` - Route parameters
271
+ - `ip` - Client IP address
272
+ - `log` - Request logger
273
+ - `user` - Authenticated user (if using auth)
274
+
275
+ - `reply?: FastifyReply` - The Fastify reply object
276
+ - `header()` - Set response headers
277
+ - `status()` - Set status code
278
+ - `log` - Reply logger
279
+
280
+ - `sessionId?: string` - SSE session ID (when using SSE)
281
+ - `sendNotification?()` - Send SSE notifications
282
+
283
+ ### Common Use Cases
284
+
285
+ #### Authentication
286
+
287
+ ```typescript
288
+ @MCPTool({ name: 'protected_action', description: 'Requires auth' })
289
+ async protectedAction(params: any, context?: MCPHandlerContext) {
290
+ const token = context?.request?.headers.authorization;
291
+
292
+ if (!token) {
293
+ return {
294
+ content: [{ type: 'text', text: 'Unauthorized' }],
295
+ isError: true,
296
+ };
297
+ }
298
+
299
+ // Verify token and proceed...
300
+ }
301
+ ```
302
+
303
+ #### Custom Headers
304
+
305
+ ```typescript
306
+ @MCPResource({ uriPattern: 'data://export', name: 'Export', description: 'Export data' })
307
+ async exportData(uri: string, context?: MCPHandlerContext) {
308
+ const data = await this.getData();
309
+
310
+ // Set download headers
311
+ if (context?.reply) {
312
+ context.reply.header('Content-Disposition', 'attachment; filename="data.json"');
313
+ context.reply.header('Content-Type', 'application/json');
314
+ }
315
+
316
+ return {
317
+ contents: [{ uri, text: JSON.stringify(data), mimeType: 'application/json' }],
318
+ };
319
+ }
320
+ ```
321
+
322
+ #### Request Logging
323
+
324
+ ```typescript
325
+ @MCPTool({ name: 'analyze', description: 'Analyze data' })
326
+ async analyze(params: any, context?: MCPHandlerContext) {
327
+ const logger = context?.request?.log;
328
+
329
+ logger?.info({ params }, 'Starting analysis');
330
+ const result = await this.performAnalysis(params);
331
+ logger?.info({ result }, 'Analysis complete');
332
+
333
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
334
+ }
335
+ ```
336
+
214
337
  ## Configuration
215
338
 
216
339
  ### Basic Configuration
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/mcp.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AAGrB,OAAO,mBAAmB,CAAC;AAG3B,KAAK,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAG9D,UAAU,SAAS;IACjB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACvC;AAaD;;;;GAIG;AACH,iBAAe,aAAa,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CAkIf;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,sBAG1B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAK3E"}
1
+ {"version":3,"file":"mcp.plugin.d.ts","sourceRoot":"","sources":["../../src/plugin/mcp.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AAGrB,OAAO,mBAAmB,CAAC;AAG3B,KAAK,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAG9D,UAAU,SAAS;IACjB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACvC;AAaD;;;;GAIG;AACH,iBAAe,aAAa,CAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CAoJf;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,sBAG1B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAK3E"}
@@ -67,7 +67,13 @@ async function mcpPluginImpl(fastify, options) {
67
67
  // Convert Zod schema to JSON Schema for MCP
68
68
  const inputSchema = toMCPSchema(tool.inputSchema);
69
69
  const handler = async (params, context) => {
70
- const result = await tool.handler(params, context);
70
+ // Enrich context with request/reply if available
71
+ const enrichedContext = {
72
+ ...context,
73
+ request: context?.request,
74
+ reply: context?.reply,
75
+ };
76
+ const result = await tool.handler(params, enrichedContext);
71
77
  return result;
72
78
  };
73
79
  fastify.mcpAddTool({
@@ -81,7 +87,13 @@ async function mcpPluginImpl(fastify, options) {
81
87
  for (const resource of resources) {
82
88
  // Convert Zod schema to JSON Schema for MCP (uriSchema is not needed for resources)
83
89
  const handler = async (uri, context) => {
84
- const result = await resource.handler(uri, context);
90
+ // Enrich context with request/reply if available
91
+ const enrichedContext = {
92
+ ...context,
93
+ request: context?.request,
94
+ reply: context?.reply,
95
+ };
96
+ const result = await resource.handler(uri, enrichedContext);
85
97
  return result;
86
98
  };
87
99
  fastify.mcpAddResource({
@@ -95,7 +107,13 @@ async function mcpPluginImpl(fastify, options) {
95
107
  const prompts = mcpRegistry.getPrompts();
96
108
  for (const prompt of prompts) {
97
109
  const handler = async (name, args, context) => {
98
- const result = await prompt.handler(args, context);
110
+ // Enrich context with request/reply if available
111
+ const enrichedContext = {
112
+ ...context,
113
+ request: context?.request,
114
+ reply: context?.reply,
115
+ };
116
+ const result = await prompt.handler(args, enrichedContext);
99
117
  return result;
100
118
  };
101
119
  fastify.mcpAddPrompt({
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.plugin.js","sourceRoot":"","sources":["../../src/plugin/mcp.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.plugin.js","sourceRoot":"","sources":["../../src/plugin/mcp.plugin.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,10 +3,11 @@
3
3
  *
4
4
  * TypeScript interfaces and types for MCP integration.
5
5
  */
6
+ import type { ZodType } from 'zod';
6
7
  /**
7
8
  * Generic Zod schema type - accepts any Zod schema
8
9
  */
9
- export type ZodSchema = any;
10
+ export type ZodSchema = ZodType<any, any, any>;
10
11
  /**
11
12
  * Options for @MCPTool decorator
12
13
  */
@@ -185,6 +186,16 @@ export interface MCPHandlerContext {
185
186
  * Send a notification to the current session
186
187
  */
187
188
  sendNotification?: (method: string, params: unknown) => void;
189
+ /**
190
+ * Fastify request object (when available)
191
+ * Provides access to HTTP request details like headers, params, query, etc.
192
+ */
193
+ request?: any;
194
+ /**
195
+ * Fastify reply object (when available)
196
+ * Provides access to HTTP response methods and properties
197
+ */
198
+ reply?: any;
188
199
  }
189
200
  /**
190
201
  * Redis configuration for horizontal scaling
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC;AAM5B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,OAAO,IAAI,CAC9C,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,iBAAiB,KACxB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,iBAAiB,KACxB,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAC7D,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,iBAAiB,KACxB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,UAAU,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9D;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAMD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAE/B,MAAM,EAAE,GAAG,CAAC;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,17 @@
4
4
  * Utilities for converting Zod schemas to JSON Schema format
5
5
  * compatible with @platformatic/mcp.
6
6
  */
7
- import type { ZodType, ZodTypeDef } from 'zod';
8
- import { type JsonSchema7Type } from 'zod-to-json-schema';
7
+ import { type ZodType } from 'zod';
8
+ /**
9
+ * JSON Schema type (simplified)
10
+ */
11
+ export type JsonSchema = Record<string, unknown>;
9
12
  /**
10
13
  * Type guard to check if a value is a Zod schema
11
14
  * Uses duck typing to detect Zod schemas without requiring the full library
15
+ * Compatible with both Zod v3 (_def) and Zod v4 (_zod)
12
16
  */
13
- export declare function isZodSchema(value: unknown): value is ZodType<unknown, ZodTypeDef, unknown>;
17
+ export declare function isZodSchema(value: unknown): value is ZodType<unknown>;
14
18
  /**
15
19
  * Convert a Zod schema to JSON Schema format for MCP
16
20
  *
@@ -37,12 +41,12 @@ export declare function isZodSchema(value: unknown): value is ZodType<unknown, Z
37
41
  * // }
38
42
  * ```
39
43
  */
40
- export declare function zodToMCPSchema(schema: ZodType): JsonSchema7Type;
44
+ export declare function zodToMCPSchema(schema: ZodType): JsonSchema;
41
45
  /**
42
46
  * Convert a Zod schema to JSON Schema, or return undefined if not a Zod schema
43
47
  *
44
48
  * @param schemaOrUndefined - The Zod schema or undefined
45
49
  * @returns JSON Schema object or undefined
46
50
  */
47
- export declare function toMCPSchema(schemaOrUndefined: ZodType | undefined): JsonSchema7Type | undefined;
51
+ export declare function toMCPSchema(schemaOrUndefined: ZodType | undefined): JsonSchema | undefined;
48
52
  //# sourceMappingURL=zod-to-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-schema.d.ts","sourceRoot":"","sources":["../../src/utils/zod-to-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAQ1F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAc/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,OAAO,GAAG,SAAS,GACrC,eAAe,GAAG,SAAS,CAU7B"}
1
+ {"version":3,"file":"zod-to-schema.d.ts","sourceRoot":"","sources":["../../src/utils/zod-to-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAK,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAQrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAY1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,iBAAiB,EAAE,OAAO,GAAG,SAAS,GACrC,UAAU,GAAG,SAAS,CAUxB"}
@@ -1,12 +1,19 @@
1
- import { zodToJsonSchema } from 'zod-to-json-schema';
1
+ /**
2
+ * @riktajs/mcp - Zod to JSON Schema Conversion
3
+ *
4
+ * Utilities for converting Zod schemas to JSON Schema format
5
+ * compatible with @platformatic/mcp.
6
+ */
7
+ import { z } from 'zod';
2
8
  /**
3
9
  * Type guard to check if a value is a Zod schema
4
10
  * Uses duck typing to detect Zod schemas without requiring the full library
11
+ * Compatible with both Zod v3 (_def) and Zod v4 (_zod)
5
12
  */
6
13
  export function isZodSchema(value) {
7
14
  return (value !== null &&
8
15
  typeof value === 'object' &&
9
- '_def' in value &&
16
+ ('_zod' in value || '_def' in value) &&
10
17
  'safeParse' in value &&
11
18
  typeof value.safeParse === 'function');
12
19
  }
@@ -37,10 +44,8 @@ export function isZodSchema(value) {
37
44
  * ```
38
45
  */
39
46
  export function zodToMCPSchema(schema) {
40
- const jsonSchema = zodToJsonSchema(schema, {
41
- target: 'jsonSchema7',
42
- $refStrategy: 'none', // Inline all references
43
- });
47
+ // Use Zod v4 native toJSONSchema
48
+ const jsonSchema = z.toJSONSchema(schema);
44
49
  // Remove $schema property as MCP doesn't need it
45
50
  if (typeof jsonSchema === 'object' && jsonSchema !== null) {
46
51
  const result = { ...jsonSchema };
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-schema.js","sourceRoot":"","sources":["../../src/utils/zod-to-schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AAE3E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,WAAW,IAAI,KAAK;QACpB,OAAQ,KAAgC,CAAC,SAAS,KAAK,UAAU,CAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE;QACzC,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,MAAM,EAAE,wBAAwB;KAC/C,CAAC,CAAC;IAEH,iDAAiD;IACjD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAA6B,CAAC;QAC5D,OAAO,MAAM,CAAC,OAAO,CAAC;QACtB,OAAO,MAAyB,CAAC;IACnC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,iBAAsC;IAEtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"zod-to-schema.js","sourceRoot":"","sources":["../../src/utils/zod-to-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAgB,MAAM,KAAK,CAAC;AAOtC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;QACpC,WAAW,IAAI,KAAK;QACpB,OAAQ,KAAgC,CAAC,SAAS,KAAK,UAAU,CAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,iCAAiC;IACjC,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAe,CAAC;IAExD,iDAAiD;IACjD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,iBAAsC;IAEtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riktajs/mcp",
3
- "version": "0.1.3",
3
+ "version": "0.3.0",
4
4
  "description": "Model Context Protocol (MCP) integration for Rikta Framework - Connect AI assistants to your backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,12 +37,11 @@
37
37
  "@riktajs/core": ">=0.4.3",
38
38
  "fastify": ">=5.0.0",
39
39
  "reflect-metadata": ">=0.2.0",
40
- "zod": ">=3.20.0"
40
+ "zod": ">=4.0.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "@platformatic/mcp": "^1.0.0",
44
- "fastify-plugin": "^5.0.1",
45
- "zod-to-json-schema": "^3.25.1"
44
+ "fastify-plugin": "^5.0.1"
46
45
  },
47
46
  "devDependencies": {
48
47
  "@riktajs/core": "*",
@@ -52,7 +51,7 @@
52
51
  "reflect-metadata": "^0.2.2",
53
52
  "typescript": "^5.7.2",
54
53
  "vitest": "^2.1.8",
55
- "zod": "^3.25.76"
54
+ "zod": "^4.3.5"
56
55
  },
57
56
  "engines": {
58
57
  "node": ">=20.0.0"