From 11464c6c24b7a1c53d0918c89f22dbe112be1013 Mon Sep 17 00:00:00 2001 From: kevinwatt Date: Mon, 8 Dec 2025 04:32:35 +0800 Subject: [PATCH] fix(schema): use z.coerce.number() for MCP string serialization MCP protocol serializes numeric parameters as strings during transport. Using z.coerce.number() instead of z.number() to handle this gracefully. Fixes #20 --- package-lock.json | 4 ++-- package.json | 2 +- src/index.mts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5422e16..184a1b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@kevinwatt/yt-dlp-mcp", - "version": "0.6.28", + "version": "0.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@kevinwatt/yt-dlp-mcp", - "version": "0.6.28", + "version": "0.8.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "0.7.0", diff --git a/package.json b/package.json index 8679e43..7d21d99 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevinwatt/yt-dlp-mcp", - "version": "0.8.0", + "version": "0.8.1", "description": "An MCP server implementation that integrates with yt-dlp, providing video and audio content download capabilities (e.g. YouTube, Facebook, Tiktok, etc.) for LLMs.", "keywords": [ "mcp", diff --git a/src/index.mts b/src/index.mts index 69e7512..712fc2c 100644 --- a/src/index.mts +++ b/src/index.mts @@ -34,13 +34,13 @@ const SearchVideosSchema = z.object({ .min(1, "Query cannot be empty") .max(200, "Query must not exceed 200 characters") .describe("Search keywords or phrase"), - maxResults: z.number() + maxResults: z.coerce.number() .int("Must be a whole number") .min(1, "Must return at least 1 result") .max(50, "Cannot exceed 50 results") .default(10) .describe("Maximum number of results to return (1-50)"), - offset: z.number() + offset: z.coerce.number() .int("Must be a whole number") .min(0, "Cannot be negative") .default(0)