YouTube音乐MCP服务器
一个生产级的模型上下文协议(MCP)服务器,将YouTube音乐连接到克劳德等人工智能助手。\ 实现完整的MCP基元集-- 工具、资源和提示 --真正的主体音乐体验。
建筑 • 特性 • 安装 • 认证 • 用法 • 工具 • 资源 • 提示
______________________________________________________________________
建筑
┌────────────────────────────────────────────────────────────┐
│ Claude / AI Assistant │
└──────────────────────┬─────────────────────────────────────┘
│ Model Context Protocol (stdio)
┌──────────────────────▼─────────────────────────────────────┐
│ YouTube Music MCP Server v2 │
│ │
│ ┌─────────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ 15 Tools │ │ 3 Resources │ │ 3 Prompts │ │
│ │ │ │ │ │ │ │
│ │ search │ │library:// │ │weekly-discovery │ │
│ │ stats │ │ songs │ │mood-based- │ │
│ │ similar ★ │ │ artists │ │ playlist │ │
│ │ recommend ★ │ │ playlists │ │artist-deep-dive │ │
│ │ smart pl ★ │ └───────────────┘ └──────────────────┘ │
│ │ charts │ │
│ │ insights │ ┌───────────────────────────────────┐ │
│ │ moods │ │ TTL Cache (5 min) • Async ★ │ │
│ │ ... │ │ Custom Exceptions • Logging │ │
│ └─────────────┘ └───────────────────────────────────┘ │
└──────────────────────┬─────────────────────────────────────┘
│ ytmusicapi
┌──────────────────────▼─────────────────────────────────────┐
│ YouTube Music API │
└────────────────────────────────────────────────────────────┘
★ = Agentic / async feature______________________________________________________________________
特性
15个工具·3个资源·3个提示——完整的MCP原语覆盖:
🛠️ 工具
| 工具 | 说明 |
|---|---|
get_liked_songs_count | 歌曲总数(绕过YT显示限制) |
get_library_stats | 歌曲、艺术家、播放列表+详细分类 |
search_music | 使用类型过滤器搜索(歌曲/专辑/艺术家/播放列表/视频) |
get_top_artists | 用视觉进度条对艺术家进行排名 |
find_similar_songs ⭐ | 真实 YTMusic广播引擎——不是虚假的艺术家搜索 |
get_recommendations ⭐ | 前5位艺术家的异步并行获取 |
create_playlist_from_songs | 根据搜索查询创建和填充播放列表 |
list_playlists | 所有带有ID和歌曲计数的播放列表 |
get_playlist_songs | 浏览任何播放列表中的歌曲 |
add_songs_to_playlist | 将歌曲添加到现有播放列表 |
build_smart_playlist ⭐ | 能动性 6步流程:情绪→类别→曲目→过滤器→保存 |
explore_moods | 发现所有YTMusic情绪和流派类别 |
get_charts | 全球或特定国家的趋势图 |
get_listening_insights | 历史分析:模式、多样性得分、见解 |
get_server_info | 身份验证方法、缓存状态、版本、功能 |
📦 资源(Claude被动可读)
| 资源URI | 描述 |
|---|---|
library://songs | 结构化JSON格式的完整库 |
library://artists | 艺术家百分比排名 |
library://playlists | 所有播放列表均为结构化JSON |
💬 提示(引导对话开始者)
| 提示 | 描述 |
|---|---|
weekly-discovery-mix | 指导每周音乐发现工作流程 |
mood-based-playlist | 协作情绪→ 播放列表会话 |
artist-deep-dive | 完整的艺术家探索+聆听计划 |
______________________________________________________________________
安装
先决条件
- Python 3.10或更高版本
- YouTube音乐帐户
- 浏览器开发工具访问(用于身份验证)
设置
- 克隆存储库
git clone https://github.com/codeRisshi25/youtubemusic-mcp.git
cd youtubemusic-mcp- 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# OR
venv\Scripts\activate # Windows- 安装依赖项
pip install -e .______________________________________________________________________
认证
选择一种身份验证方法:
选项A:Cookie文件(最简单——推荐)
- 访问 music.youtube.com 并登录
- 打开开发人员工具(
F12) - 首选 网络 选项卡并刷新页面
- 点击任何请求→ 标头 → 复制完整
cookie:价值 - 将其粘贴到名为的文件中
cookie.txt在项目目录中 - 完成! 服务器自动生成
browser.json首次启动时
# Optional: validate cookies before starting the server
python update_auth.py注: Cookie通常持续6-24个月。当它们过期时,只需将新鲜的饼干粘贴到 cookie.txt 并重新启动。
选项B:OAuth(长期)
看 docs/OAUTH_SETUP.md 获取完整的OAuth设置说明。
______________________________________________________________________
用法
使用MCP检查员进行测试
npx @modelcontextprotocol/inspector venv/bin/python server.py打开web界面 http://localhost:6274 测试所有15个工具、3个资源和3个提示。
Claude桌面集成
- 配置文件位置:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 添加配置:
{
"mcpServers": {
"youtube-music": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/server.py"]
}
}
}- 重新启动克劳德桌面
看 docs/CLAUDE_SETUP.md 详细说明。
______________________________________________________________________
可用工具
看 功能部分 上面是所有15种工具的完整表格。
机构亮点
build_smart_playlist --核心代理工具。在单个工具调用中运行一个6步流水线:
Step 1: Fetch all Moods & Genres from YouTube Music
Step 2: Match your mood keyword to a real category
Step 3: Pull mood playlist pool from that category
Step 4: Sample tracks across multiple playlists
Step 5: Apply energy-level filter (high/medium/low)
Step 6: Optionally create & save to YouTube Musicfind_similar_songs --用途 get_watch_playlist(radio=True),真正的YTMusic相似性引擎,而不是虚假的艺术家搜索。
get_recommendations --从5位艺术家那里获取 asyncio.gather() 真正的并行执行。
______________________________________________________________________
运行测试
pip install -e ".[dev]"
pytest tests/ -v51个测试,涵盖身份验证、缓存、所有工具、资源、提示和路由——不需要网络(完全模拟)。
______________________________________________________________________
故障排除
身份验证错误
如果您在大约6个月后出现身份验证错误:
- 您的Cookie可能已过期
- 按照中的简单更新过程进行操作 docs/AUTH_UPDATE.md
- 您只需从浏览器中粘贴新的Cookie
在Claude中未检测到服务器
- 在中使用绝对路径
claude_desktop_config.json - 配置更改后重新启动Claude Desktop
- 检查克劳德的日志→ Help → 查看日志
导入错误
- 确保虚拟环境已激活
- 跑
pip install -e .在项目目录中
启动时服务器崩溃
- 验证
browser.json或oauth.json存在 - 检查文件权限
- 看 docs/CLAUDE_SETUP.md 详细故障排除
______________________________________________________________________
贡献
看 docs/CONTRIBUTING.md 关于贡献指南。
______________________________________________________________________
许可证
MIT许可证-请参阅 许可证
版权所有(c)2025里希·拉吉·森
______________________________________________________________________
链接
______________________________________________________________________
⭐ 星如果有用!
