使用说明
YouTube音乐MCP服务器
用于YouTube音乐的全功能MCP服务器 --搜索、管理播放列表,并通过人工智能助手创建智能推荐。
亮点
- 完整的播放列表控制 --通过批处理操作创建、编辑、删除播放列表
- 智能推荐 --使用ListenBrainz创建AI驱动的播放列表(无偏见,无报酬)
- 元数据 --每个回复都包括艺术家、专辑、年份和持续时间
- 安全认证 --OAuth 2.1+具有加密令牌存储的PKCE
- 速率限制 -遵守API配额的可配置限制
快速开始
npm install
cp .env.example .env
# Add your Google OAuth credentials to .env
npm run build
npm start
MCP配置
{
"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"
}
}
}
}
工具
搜索与发现
| 工具 | 说明 |
|---|---|
search_songs |
搜索具有可配置限制的歌曲 |
search_albums |
搜索相册 |
search_artists |
搜索艺术家 |
get_song_info |
歌曲详细信息 |
get_album_info |
包含所有曲目的专辑 |
get_artist_info |
拥有热门歌曲的艺术家 |
get_library_songs |
用户喜欢的音乐(过滤非音乐) |
播放列表管理
| 工具 | 说明 |
|---|---|
get_playlists |
列出用户的播放列表 |
get_playlist_details |
包含所有曲目的播放列表 |
create_playlist |
创建新播放列表 |
edit_playlist |
更新元数据 |
delete_playlist |
删除播放列表 |
add_songs_to_playlist |
批量添加歌曲 |
remove_songs_from_playlist |
批量删除歌曲 |
智能播放列表
| 工具 | 说明 |
|---|---|
start_smart_playlist |
开始创建会话 |
add_seed_artist |
添加艺术家影响力 |
add_seed_track |
将曲目添加为种子 |
refine_recommendations |
设置偏好(排除、标签、多样性) |
get_recommendations |
生成建议 |
preview_playlist |
创建前预览 |
create_smart_playlist |
在YouTube上创建音乐 |
get_user_taste_profile |
分析听力习惯 |
响应格式
所有工具都返回带元数据的结构化JSON:
{
"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
}
}
示例工作流
“为我制作一个基于Radiohead和Boards of Canada的播放列表”
→ start_smart_playlist()
→ add_seed_artist("Radiohead")
→ add_seed_artist("Boards of Canada")
→ get_recommendations()
→ create_smart_playlist("Late Night Electronica")
“将这些歌曲添加到我的锻炼播放列表中”
→ search_songs("high energy workout")
→ add_songs_to_playlist(playlistId, [videoId1, videoId2, ...])
建筑
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 build -t youtube-music-mcp .
docker run -p 8081:8081 \
-e GOOGLE_OAUTH_CLIENT_ID="..." \
-e GOOGLE_OAUTH_CLIENT_SECRET="..." \
youtube-music-mcp
发展
npm run dev # Development mode
BYPASS_AUTH_FOR_TESTING=true npm run dev # Skip OAuth for testing
链接
- 模型上下文协议
- ListenBrainz --开放音乐推荐
- MusicBrainz --打开音乐数据库
许可证
麻省理工学院