YouTube Music MCP Server
Enables AI assistants to search YouTube Music, manage playlists, and create smart recommendations using natural language.
README
YouTube Music MCP Server
Full-featured MCP server for YouTube Music — search, manage playlists, and create smart recommendations through AI assistants.
Highlights
- Complete Playlist Control — Create, edit, delete playlists with batch operations
- Smart Recommendations — AI-driven playlist creation using ListenBrainz (unbiased, no payola)
- Rich Metadata — Every response includes artist, album, year, and duration
- Secure Auth — OAuth 2.1 + PKCE with encrypted token storage
- Rate Limited — Configurable limits to respect API quotas
Quick Start
npm install
cp .env.example .env
# Add your Google OAuth credentials to .env
npm run build
npm start
MCP Configuration
{
"mcpServers": {
"youtube-music": {
"command": "node",
"args": ["path/to/youtube-music-mcp-server/dist/index.js"],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-client-secret"
}
}
}
}
Tools
Search & Discovery
| Tool | Description |
|---|---|
search_songs |
Search songs with configurable limits |
search_albums |
Search albums |
search_artists |
Search artists |
get_song_info |
Detailed song information |
get_album_info |
Album with all tracks |
get_artist_info |
Artist with top songs |
get_library_songs |
User's liked music (filters non-music) |
Playlist Management
| Tool | Description |
|---|---|
get_playlists |
List user's playlists |
get_playlist_details |
Playlist with all tracks |
create_playlist |
Create new playlist |
edit_playlist |
Update metadata |
delete_playlist |
Delete playlist |
add_songs_to_playlist |
Batch add songs |
remove_songs_from_playlist |
Batch remove songs |
Smart Playlists
| Tool | Description |
|---|---|
start_smart_playlist |
Begin creation session |
add_seed_artist |
Add artist influence |
add_seed_track |
Add track as seed |
refine_recommendations |
Set preferences (exclude, tags, diversity) |
get_recommendations |
Generate recommendations |
preview_playlist |
Preview before creating |
create_smart_playlist |
Create on YouTube Music |
get_user_taste_profile |
Analyze listening habits |
Response Format
All tools return structured JSON with metadata:
{
"songs": [{
"videoId": "abc123",
"title": "Song Title",
"artists": [{"id": "...", "name": "Artist"}],
"album": {"id": "...", "name": "Album", "year": 2023},
"duration": "3:45",
"durationSeconds": 225
}],
"metadata": {
"returned": 20,
"hasMore": true
}
}
Example Workflows
"Make me a playlist based on Radiohead and Boards of Canada"
→ start_smart_playlist()
→ add_seed_artist("Radiohead")
→ add_seed_artist("Boards of Canada")
→ get_recommendations()
→ create_smart_playlist("Late Night Electronica")
"Add these songs to my workout playlist"
→ search_songs("high energy workout")
→ add_songs_to_playlist(playlistId, [videoId1, videoId2, ...])
Architecture
src/
├── index.ts # Entry point
├── server.ts # MCP server setup
├── youtube-music/ # Custom YTM client
│ ├── client.ts # API methods
│ └── parsers.ts # Response parsing
├── musicbrainz/ # MusicBrainz integration
├── listenbrainz/ # ListenBrainz recommendations
├── recommendations/ # Smart playlist engine
├── auth/ # OAuth 2.1 + PKCE
└── tools/ # MCP tool definitions
Docker
docker build -t youtube-music-mcp .
docker run -p 8081:8081 \
-e GOOGLE_OAUTH_CLIENT_ID="..." \
-e GOOGLE_OAUTH_CLIENT_SECRET="..." \
youtube-music-mcp
Development
npm run dev # Development mode
BYPASS_AUTH_FOR_TESTING=true npm run dev # Skip OAuth for testing
Links
- Model Context Protocol
- ListenBrainz — Open music recommendations
- MusicBrainz — Open music database
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.