diff --git a/src/server.ts b/src/server.ts index 27229e0..e32e7ce 100644 --- a/src/server.ts +++ b/src/server.ts @@ -54,8 +54,10 @@ for (const tool of allTools) { // const jsonSchema = zodToJsonSchema(z.object(tool.inputSchema.properties as z.ZodRawShape)); // const parsedSchema = z.any().optional().parse(jsonSchema); - const zodSchema = z.object(tool.inputSchema.properties as z.ZodRawShape); - server.tool(tool.name, zodSchema.shape, wrappedHandler) + const rawShape = tool.inputSchema.properties as z.ZodRawShape; + // Cast bypasses TS2589: server.tool's generic resolves ShapeOutput + // against the SDK's z3|z4 union schema type, exploding instantiation depth. + (server.tool as (name: string, schema: z.ZodRawShape, cb: typeof wrappedHandler) => unknown)(tool.name, rawShape, wrappedHandler); } diff --git a/src/tools/media.ts b/src/tools/media.ts index bd5dccf..4501b76 100644 --- a/src/tools/media.ts +++ b/src/tools/media.ts @@ -255,7 +255,8 @@ async function loadUploadFromUrl(sourceUrl: string, explicitTitle?: string): Pro } const response = await axios.get(sourceUrl, { responseType: 'arraybuffer' }); - const mimeType = normalizeMimeType(response.headers['content-type']); + const contentTypeHeader = response.headers['content-type']; + const mimeType = normalizeMimeType(typeof contentTypeHeader === 'string' ? contentTypeHeader : undefined); const originalFilename = deriveFilenameFromUrl(sourceUrl, mimeType); const filename = buildUploadFilename(originalFilename, explicitTitle);