# youtube-music-mcp-server

Search songs, albums, and artists on YouTube Music. Manage your library and playlists end-to-end: create, edit, and organize tracks. Generate smart, personalized playlists and analyze your taste prof…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add CaullenOmdahl/youtube-music-mcp-server

# Browse available tools
npx -y @smithery/cli@latest tool list CaullenOmdahl/youtube-music-mcp-server

# Get full schema for a tool
npx -y @smithery/cli@latest tool get CaullenOmdahl/youtube-music-mcp-server search_songs

# Call a tool
npx -y @smithery/cli@latest tool call CaullenOmdahl/youtube-music-mcp-server search_songs '{}'
```

## Direct MCP Connection

Endpoint: `https://youtube-music-mcp-server--caullenomdahl.run.tools`

## Tools (24)

- `search_songs` — Search for songs on YouTube Music. Returns structured JSON with song title, album, artist, year, and video ID.
- `search_albums` — Search for albums on YouTube Music. Returns album name, artist, year, and browse ID.
- `search_artists` — Search for artists on YouTube Music. Returns artist name, browse ID, and thumbnails.
- `get_song_info` — Get detailed information about a specific song by video ID. Returns title, artist, album, duration, and thumbnails.
- `get_album_info` — Get detailed album information including all tracks, year, and artist. Use browse_id from search results.
- `get_artist_info` — Get detailed artist information including top songs. Use browse_id from search results.
- `get_library_songs` — Get the user's liked songs from their YouTube Music library. Returns structured JSON with song details.
- `get_playlists` — Get the user's playlists from YouTube Music library. Returns playlist name, ID, and track count as structured JSON.
- `get_playlist_details` — Get detailed playlist information including all tracks with song, album, artist, and duration.
- `create_playlist` — Create a new YouTube Music playlist. Returns the new playlist ID.
- `edit_playlist` — Edit playlist metadata (name, description, privacy). Only provide fields you want to change.
- `delete_playlist` — Delete a playlist from YouTube Music. This action cannot be undone.
- `add_songs_to_playlist` — Add one or more songs to an existing playlist. Supports batch operations for efficiency.
- `remove_songs_from_playlist` — Remove one or more songs from a playlist. Requires setVideoId (not videoId) from playlist track data.
- `start_smart_playlist` — Start an interactive smart playlist creation session. Returns session ID to use with other smart playlist tools.
- `add_seed_artist` — Add an artist to influence smart playlist recommendations. Looks up artist in MusicBrainz and retrieves tags.
- `add_seed_track` — Add a specific track as a seed for smart playlist recommendations.
- `refine_recommendations` — Adjust recommendation parameters: exclude artists, prefer/avoid tags, set diversity level.
- `get_recommendations` — Generate playlist recommendations based on seeds and refinement settings. Searches YouTube Music for tracks.
- `preview_playlist` — Preview the smart playlist before creating it. Shows all tracks and session details.
- `create_smart_playlist` — Create the smart playlist on YouTube Music with all recommended tracks.
- `get_user_taste_profile` — Analyze user's liked songs to build a taste profile with top tags, artists, and genres.
- `get_auth_status` — Check authentication status and get OAuth URL if not authenticated. After authenticating via the returned URL, the sess…
- `get_server_status` — Get server health, version, uptime, and rate limit status.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get CaullenOmdahl/youtube-music-mcp-server <tool-name>
```
