网易云音乐 MCP 控制器 - 提供全局快捷键、搜索单曲播放、搜索歌单播放、自定义歌单管理、每日推荐和私人漫游等丰富功能
Project description
🎵 网易云音乐 MCP 控制器
一个基于网易云音乐MCP智能控制器,提供全局快捷键、搜索单曲播放、搜索歌单播放、自定义歌单管理、每日推荐和私人漫游等丰富功能。
✨ 主要特性
🎮 基础控制功能
- 启动网易云音乐:支持 URL scheme 快速启动,可选自动最小化窗口
- 播放控制:播放/暂停、上一首/下一首、音量调节
- 界面控制:切换迷你模式、显示/隐藏歌词
- 互动功能:一键喜欢当前歌曲
🎼 音乐搜索与播放
- 歌曲搜索播放:直接搜索歌曲名或"歌曲名+歌手"组合播放
- 歌单搜索播放:搜索并播放指定歌单
- 系统预设歌单:快速播放飙升榜、新歌榜、热歌榜等官方榜单
- 私人雷达播放:播放个性化推荐歌单
📋 歌单管理
- 自定义歌单管理:添加、删除、列出用户自定义歌单
- 歌单配置文件:支持通过 JSON 文件批量管理歌单
- 系统歌单集成:内置官方热门榜单快速访问
🌟 高级功能
- 每日推荐播放:自动播放网易云音乐每日推荐歌单
- 私人漫游:启动网易云音乐私人漫游功能
- 全局快捷键:支持全局快捷键控制,无需切换到音乐应用,支持按键自定义
⌨️ 全局快捷键支持
Windows 默认快捷键
Ctrl+Alt+P:播放/暂停Ctrl+Alt+Left:上一首Ctrl+Alt+Right:下一首Ctrl+Alt+Up/Down:音量加/减Ctrl+Alt+M:切换迷你模式Ctrl+Alt+L:喜欢当前歌曲Ctrl+Alt+D:显示/隐藏歌词
macOS 默认快捷键
command+option+P:播放/暂停command+option+Left:上一首command+option+Right:下一首command+option+Up/Down:音量加/减command+option+M:切换迷你模式command+option+L:喜欢当前歌曲command+option+D:显示/隐藏歌词
💡 可以在
src/config/hotkeys.json的custom_hotkeys部分自定义快捷键
🔧 环境要求
通用要求
- Python:3.10+
- 网易云音乐客户端:需安装并可正常运行
- uv:现代 Python 包管理器 (安装指南)
平台要求
- Windows 10/11:完整功能支持 ✅
- 全局快捷键控制 ✅
- 音乐搜索播放 ✅
- 每日推荐功能 ✅
- 私人漫游功能 ✅
- 内置 ChromeDriver (Windows x64)
- macOS 10.15+:基础功能支持 ⚠️
- 全局快捷键控制 ✅
- 音乐搜索播放 ✅
- 每日推荐功能 ❌ (不支持)
- 私人漫游功能 ❌ (不支持)
📦 安装指南
1. 安装 uv(如果尚未安装)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. 克隆项目并安装依赖
git clone https://github.com/xiduan/CloudMusic_Auto_Player.git
cd CloudMusic_Auto_Player
uv sync
3. macOS 说明
macOS 版本仅支持基础功能(全局快捷键控制、音乐搜索播放),不支持每日推荐和私人漫游功能。
主要依赖
fastmcp>=2.0.0:MCP 服务器框架pyautogui>=0.9.54:跨平台全局快捷键支持pywin32>=306:Windows 系统集成(仅 Windows)psutil>=5.9.0:进程管理selenium>=4.0.0:Web 自动化(每日推荐/漫游功能)requests>=2.28.0:HTTP 请求库
⚙️ 配置说明
1. MCP 客户端配置
在你的 MCP 客户端配置文件中添加以下配置:
方式一:使用 uvx(推荐)
直接使用已发布的 PyPI 包,无需下载源码:
{
"mcpServers": {
"cloudmusic-auto-player": {
"command": "uvx",
"args": ["cloudmusic-auto-player==1.0.2"],
"env": {
"NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
"CHROMEDRIVER_PATH": "C:\\path\\to\\chromedriver.exe"
}
}
}
}
平台特定配置示例:
Windows 配置:
{
"mcpServers": {
"cloudmusic-auto-player": {
"command": "uvx",
"args": ["cloudmusic-auto-player==1.0.2"],
"env": {
"NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
"CHROMEDRIVER_PATH": "C:\\path\\to\\chromedriver.exe"
}
}
}
}
macOS 配置:
{
"mcpServers": {
"cloudmusic-auto-player": {
"command": "uvx",
"args": ["cloudmusic-auto-player==1.0.2"],
"env": {
"NETEASE_MUSIC_PATH": "/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic"
}
}
}
}
📝 注意:macOS 不支持每日推荐和私人漫游功能,因此无需配置
CHROMEDRIVER_PATH
方式二:本地项目运行
如果你需要修改源码或本地开发,可以下载项目后使用:
{
"mcpServers": {
"auto-music-player": {
"command": "uv",
"args": [
"run",
"--project",
"/path/to/CloudMusic_Auto_Player",
"src/server.py"
],
"cwd": "/path/to/CloudMusic_Auto_Player",
"env": {
"NETEASE_MUSIC_PATH": "/path/to/netease/music/executable",
"CHROMEDRIVER_PATH": "/path/to/chromedriver"
}
}
}
}
Windows 本地项目示例:
{
"mcpServers": {
"auto-music-player": {
"command": "uv",
"args": [
"run",
"--project",
"C:\\Users\\YourName\\CloudMusic_Auto_Player",
"src/server.py"
],
"cwd": "C:\\Users\\YourName\\CloudMusic_Auto_Player",
"env": {
"NETEASE_MUSIC_PATH": "C:\\Program Files (x86)\\Netease\\CloudMusic\\cloudmusic.exe",
"CHROMEDRIVER_PATH": "C:\\Users\\YourName\\CloudMusic_Auto_Player\\src\\chromedriver\\win64\\chromedriver.exe"
}
}
}
}
macOS 本地项目示例:
{
"mcpServers": {
"auto-music-player": {
"command": "uv",
"args": [
"run",
"python",
"/Users/YourName/CloudMusic_Auto_Player/src/server.py"
],
"cwd": "/Users/YourName/CloudMusic_Auto_Player",
"env": {
"NETEASE_MUSIC_PATH": "/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic"
}
}
}
}
⚠️ 重要提示:
- 请将路径替换为你的实际路径
- Windows 路径中的反斜杠需要转义为
\\- macOS 不支持每日推荐和私人漫游功能
- 配置完成后,建议调用
get_netease_config()工具验证环境变量配置是否正确
2. 自定义歌单配置
上传自定义歌单
可调用mcp上传自定义歌单,只需要输入歌单名称和歌单id即可(如有对歌单描述可添加)(推荐)
编辑项目根目录下的 playlists.json 文件:
{
"systemPlaylists": {
"飙升榜": {"id": "19723756", "name": "音乐飙升榜", "description": "网易云音乐官方飙升榜"},
"新歌榜": {"id": "3779629", "name": "音乐新歌榜", "description": "网易云音乐官方新歌榜"},
"热歌榜": {"id": "3778678", "name": "音乐热歌榜", "description": "网易云音乐官方热歌榜"}
},
"userPlaylists": {
"我的收藏": {"id": "123456789", "name": "我的收藏歌单", "description": "个人收藏"},
"工作音乐": {"id": "987654321", "name": "工作专用歌单", "description": "适合工作时听的音乐"}
}
}
获取歌单 ID 的方法:
- 在网易云音乐网页版或客户端中打开歌单
- 从 URL 中获取歌单 ID(例如:
https://music.163.com/#/playlist?id=123456789中的123456789) - 将歌单信息添加到
userPlaylists部分
🚀 使用方法
"""以下方法均推荐使用自然语言从agent调用mcp工具实现"""
基础播放控制
# 启动网易云音乐
launch_netease_music(minimize_window=True)
# 播放控制
control_playback(action="play_pause") # 播放/暂停
control_playback(action="next") # 下一首
control_playback(action="previous") # 上一首
# 音量控制
control_volume(action="volume_up") # 音量加
control_volume(action="volume_down") # 音量减
# 界面控制
toggle_mini_mode() # 切换迷你模式
toggle_lyrics() # 切换歌词显示
like_current_song() # 喜欢当前歌曲
音乐搜索与播放
# 搜索并播放歌曲
search_and_play(query="稻香 周杰伦", minimize_window=True)
# 播放预设歌单
search_and_play_playlist(playlist_name="飙升榜", minimize_window=True)
# 播放自定义歌单
search_and_play_playlist(playlist_name="我的收藏", minimize_window=True)
高级功能
# 播放每日推荐(需要先配置网易云音乐路径)
play_daily_recommend()
# 启动私人漫游(需要先配置网易云音乐路径)
play_roaming()
# 获取控制器信息和功能列表
get_controller_info()
# 获取当前配置(验证环境变量配置)
get_netease_config()
🔍 配置验证
配置完成后,强烈建议使用以下工具验证配置是否正确:
# 验证环境变量和路径配置
get_netease_config()
该工具会返回:
- 当前网易云音乐路径配置状态
- ChromeDriver路径配置状态
- 各路径文件是否存在
- 是否满足每日推荐功能的运行条件
示例输出:
{
"success": true,
"config": {
"netease_music_path": "你配置的网易云音乐路径",
"path_status": "✅ 有效",
"chromedriver_path": "你配置的chromedriver路径",
"chromedriver_status": "✅ 存在",
"platform": "windows"
},
"ready_for_daily_recommend": true
}
歌单管理
# 列出所有歌单
manage_custom_playlists(action="list")
# 添加新歌单
manage_custom_playlists(
action="add",
playlist_name="新歌单",
playlist_id="123456789",
description="歌单描述"
)
# 删除歌单
manage_custom_playlists(action="remove", playlist_name="旧歌单")
⚠️ 注意事项
重要提醒
- 平台功能差异:macOS 仅支持基础功能,不支持每日推荐和私人漫游
- 网易云音乐路径配置:Windows 用户使用每日推荐和私人漫游功能前,需要配置网易云音乐客户端路径(通过环境变量
NETEASE_MUSIC_PATH设置) - ChromeDriver要求:Windows 每日推荐和漫游功能需要 ChromeDriver,项目已包含 Windows 版本
- VIP功能限制:私人漫游功能可能需要网易云音乐 VIP 会员
- 网络连接:搜索和播放功能需要稳定的网络连接
- 配置验证:配置完成后,建议调用
get_netease_config()工具验证环境变量配置是否正确
故障排除
- 快捷键不响应:确保已安装
pyautogui且没有其他程序占用快捷键 - 网易云音乐启动失败:检查 URL scheme 是否正确注册,尝试重新安装网易云音乐
- 每日推荐无法播放:确认网易云音乐路径配置正确,检查是否已登录账户
- 搜索功能异常:检查网络连接,确认网易云音乐 API 可正常访问
兼容性说明
支持的操作系统
-
Windows 10/11:完整功能支持 ✅
- 全局快捷键控制 ✅
- 音乐搜索播放 ✅
- 每日推荐功能 ✅
- 私人漫游功能 ✅
- 内置 ChromeDriver ✅
-
macOS 10.15+:基础功能支持 ⚠️
- 全局快捷键控制 ✅
- 音乐搜索播放 ✅
- 每日推荐功能 ❌ (不支持)
- 私人漫游功能 ❌ (不支持)
客户端要求
- 需要网易云音乐桌面客户端(不支持 UWP 版本)
- 建议使用最新版本的网易云音乐客户端以获得最佳兼容性
- macOS 用户推荐从官方网站下载桌面版本
📁 项目结构
auto_music/
├── src/
│ ├── server.py # MCP 服务器主程序
│ └── chromedriver/ # ChromeDriver 文件
│ └── win64/
├── config.json # MCP 客户端配置示例
├── netease_config.json # 网易云音乐配置文件
├── playlists.json # 歌单配置文件
└── README.md # 项目文档
🤝 技术支持
- 项目仓库:https://github.com/SpongeBaby-124/CloudMusic_Auto_Player
- 问题反馈:请在 GitHub Issues 中提交
- 联系邮箱:lxd4094@foxmail.com
📄 许可证
本项目采用 MIT 许可证开源。
🔄 更新日志
v1.0.2
- ✅ 添加uvx配置方式
享受音乐,让控制更简单! 🎵
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_cloudmusic_auto_player-1.0.2.tar.gz.
File metadata
- Download URL: iflow_mcp_cloudmusic_auto_player-1.0.2.tar.gz
- Upload date:
- Size: 6.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c53b24acf5b01be6c7ea65ccda7acc3b82d694c0a150a62a2fb166c469741d4d
|
|
| MD5 |
39f6d2ca177b820bc8e0edce54611afa
|
|
| BLAKE2b-256 |
fb66d2a9f75fca1f807819411b06d2eb681208d8441f2f7d6034d5a06854e952
|
File details
Details for the file iflow_mcp_cloudmusic_auto_player-1.0.2-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_cloudmusic_auto_player-1.0.2-py3-none-any.whl
- Upload date:
- Size: 5.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9cff503c9ff828c0f2cf2aa9ddfe0cc5724845eb1cdca77679af73e2f93dc49
|
|
| MD5 |
874349b72eb6ad46857054c56ffffc89
|
|
| BLAKE2b-256 |
f3697d38064c338a192f267ab426e7b82c0cc6e5e91d753d1e4ab5574dc61eb7
|