mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
fix(mcp): fix z.record() Zod v4 API compat in transport tool schemas
Zod v4 changed z.record(valueType) to z.record(keyType, valueType). The single-arg form now sets keyType, leaving valueType as undefined. This caused tools/list to throw 'Cannot read properties of undefined (reading _zod)' when the SDK tried to serialize the metadata field to JSON Schema, silently returning an error for every tools/list call and making all MCP tools invisible in claude.ai.
This commit is contained in:
@@ -44,7 +44,7 @@ export function registerTransportTools(server: McpServer, userId: number, scopes
|
|||||||
reservation_end_time: z.string().optional().describe('ISO 8601 datetime or time string for arrival'),
|
reservation_end_time: z.string().optional().describe('ISO 8601 datetime or time string for arrival'),
|
||||||
confirmation_number: z.string().max(100).optional(),
|
confirmation_number: z.string().max(100).optional(),
|
||||||
notes: z.string().max(1000).optional(),
|
notes: z.string().max(1000).optional(),
|
||||||
metadata: z.record(z.string()).optional().describe('Type-specific metadata: flights → { airline, flight_number, departure_airport, arrival_airport }; trains → { train_number, platform, seat }'),
|
metadata: z.record(z.string(), z.string()).optional().describe('Type-specific metadata: flights → { airline, flight_number, departure_airport, arrival_airport }; trains → { train_number, platform, seat }'),
|
||||||
endpoints: endpointSchema,
|
endpoints: endpointSchema,
|
||||||
needs_review: z.boolean().optional(),
|
needs_review: z.boolean().optional(),
|
||||||
},
|
},
|
||||||
@@ -95,7 +95,7 @@ export function registerTransportTools(server: McpServer, userId: number, scopes
|
|||||||
reservation_end_time: z.string().optional().describe('ISO 8601 datetime or time string for arrival'),
|
reservation_end_time: z.string().optional().describe('ISO 8601 datetime or time string for arrival'),
|
||||||
confirmation_number: z.string().max(100).optional(),
|
confirmation_number: z.string().max(100).optional(),
|
||||||
notes: z.string().max(1000).optional(),
|
notes: z.string().max(1000).optional(),
|
||||||
metadata: z.record(z.string()).optional().describe('Type-specific metadata: flights → { airline, flight_number, departure_airport, arrival_airport }; trains → { train_number, platform, seat }'),
|
metadata: z.record(z.string(), z.string()).optional().describe('Type-specific metadata: flights → { airline, flight_number, departure_airport, arrival_airport }; trains → { train_number, platform, seat }'),
|
||||||
endpoints: endpointSchema,
|
endpoints: endpointSchema,
|
||||||
needs_review: z.boolean().optional(),
|
needs_review: z.boolean().optional(),
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user