youtube-music-mcp-server
Search songs, albums, and artists on YouTube Music.
What it can do
- 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.
What data it sees
Do you need an account
No: the server works without sign-in
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 profile to discover new music.
How to connect
How to connect youtube-music-mcp-server to Claude
The server address to paste into Claude settings:
https://youtube-music-mcp-server--caullenomdahl.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect youtube-music-mcp-server to ChatGPT
The server address to paste into ChatGPT settings:
https://youtube-music-mcp-server--caullenomdahl.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect youtube-music-mcp-server to Cursor
The server address to paste into Cursor settings:
https://youtube-music-mcp-server--caullenomdahl.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (24)
Raw names from tools/list. Only developers need these.
| 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 session becomes active automatically. |
| get_server_status | Get server health, version, uptime, and rate limit status. |