MCP server for interacting with YouTube Music, enabling playlist management, track search, and library operations
Server has 12 tools with consistent naming (verb_noun pattern) and basic descriptions. All tools have input schemas with types and descriptions. However, descriptions are generic and lack LLM-optimization guidance (e.g., 'when to use this vs similar tools'). Output schemas are returned as JSON strings rather than structured objects, making downstream chaining difficult. Error handling is minimal, most tools return generic success/error JSON without recovery guidance. No parameter validation constraints (enums for privacy values, limits on array sizes). Missing idempotency hints for write operations.
Add tracks to a YouTube Music playlist.
Create a new YouTube Music playlist.
Delete a YouTube Music playlist. This action is irreversible.
Edit a YouTube Music playlist's metadata.
List all playlists in your YouTube Music library.
Get all tracks from a YouTube Music playlist.
Move a track to a specific position in the playlist (0-indexed).
All tools return JSON strings instead of structured objects. LLMs must parse JSON text, losing type safety and making downstream tool chaining fragile. E.g., search_tracks returns json.dumps(tracks) instead of a structured Track[] object.
Destructive operations (delete_playlist, remove_tracks) lack confirmation or dry-run support. No recovery guidance in error responses. Agents can irreversibly delete playlists without safeguards.
Parameter 'privacy' in create_playlist and edit_playlist lacks enum constraint. Description says 'PUBLIC, PRIVATE, or UNLISTED' but no formal enum validation. LLMs may pass invalid values like 'public' (lowercase) or 'HIDDEN'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Remove tracks from a YouTube Music playlist by video ID.
Remove tracks from a playlist by matching title (case-insensitive, partial match).
Search for multiple tracks and add them all to a playlist in one shot.
Search for tracks on YouTube Music.
Search for videos on YouTube Music (useful for remixes, live versions).
Descriptions are generic and lack LLM-optimization guidance. E.g., 'Search for tracks on YouTube Music' does not explain when to use search_tracks vs search_videos vs search_and_add. Missing dependency hints and selection criteria.
Error responses are generic JSON with minimal guidance. E.g., remove_tracks returns {"status": "error", "message": "No matching tracks found"} without suggesting next steps or available alternatives. No error classification (retryable vs user-fixable).