github kevinwatt/yt-dlp-mcp v0.8.5

latest release: v0.9.0
5 hours ago

Fixed

  • Tools/list wire format: inputSchema was being published as a serialized Zod object instead of valid JSON Schema. Combined with the move to zod@^4.1.12 in v0.8.4, this caused MCP clients to receive empty schemas ({ properties: {} }) and strip all arguments before sending — every tool call hit the server with no inputs, surfacing as expected string, received undefined errors. See #29 for the full diagnosis.

Changed

  • SDK Upgrade: @modelcontextprotocol/sdk 0.7.0 → ^1.29.0 (~1.5 years of protocol/security updates).
  • Migrated to McpServer.registerTool(): replaced the low-level Server + setRequestHandler pattern. The SDK now owns Zod → JSON Schema conversion, validation, and dispatch — removed ~200 lines of hand-rolled boilerplate.
  • Tool input schemas now defined as raw Zod shapes (e.g. { url: z.string().url() }) so the SDK can emit proper JSON Schema on the wire.

Added

  • tests/test-tools-schema.mjs — spawn-based wire-level regression test that asserts every tool publishes valid JSON Schema with non-empty properties to tools/list. Guards against this class of bug recurring.

Documentation

  • README and CLAUDE.md now document all 10 registered tools (added the missing ytdlp_get_video_comments / ytdlp_get_video_comments_summary entries).

Thanks to @johnnyshankman for the precise diagnosis (#29) and the PR (#28), and to @antonkushpil for the parallel fix in #27.

Install / upgrade:

npx @kevinwatt/yt-dlp-mcp@0.8.5

Don't miss a new yt-dlp-mcp release

NewReleases is sending notifications on new releases.