网易云音乐 MCP Server
网易云音乐 MCP Server(Zeabur 部署)
让 Claude.ai(官方 Connector)通过 MCP 协议操控网易云音乐:一起听、搜歌、加歌、切歌、发私信、查歌单。
架构
Claude.ai (Connector)
↓ HTTPS(Streamable HTTP,/mcp 端点)
ncm-mcp 服务(Python FastMCP,本仓库) ← 公网域名
├── 读操作(搜索/歌单/私信/详情)→ ncmapi 服务(NeteaseCloudMusicApi 镜像) ← 内网
└── 写操作(一起听/切歌/加歌/发私信)→ eapi/weapi 加密 → interface.music.163.com两个 Zeabur 服务:
服务 | 内容 | 是否公网 |
|
| 否(内网) |
| 本仓库的 Python 服务 | 是(绑域名) |
为什么写操作不走镜像?Docker Hub 那个镜像太老,eapi 加密参数过期,一起听/发私信会 400。所以写操作在 Python 里直接加密直连官方接口。
前置
GitHub 仓库(本仓库)
网易云音乐账号给 AI 用(「大号」),你自己的账号是「小号」,互相关注
大号的完整 Cookie
获取 Cookie
电脑浏览器打开
music.163.com,登录大号F12→ 网络(Network) → 随便找一个发到music.163.com的请求 → 请求标头 → 找到Cookie:→ 复制整条值⚠️ 必须整条,不能只抄
MUSIC_U(只存 MUSIC_U 的话写操作会全部 400)
部署步骤
1. 推代码到 GitHub
本仓库的 master 分支即为可部署代码,本地改完 git push 即可。
2. Zeabur 创建项目
登录 zeabur.com → 新建一个 Project。
3. 部署 ncmapi 服务(镜像)
Add Service → Docker Image → 填镜像名:
binaryify/netease_cloud_music_api:latest服务名改成
ncmapi不用绑定域名(内网给 ncm-mcp 调用)
4. 部署 ncm-mcp 服务(本仓库)
Add Service → GitHub → 选仓库 Yvine34/ncm-mcp
Zeabur 会自动识别根目录的
Dockerfile并构建服务名改成
ncm-mcp
5. 配置环境变量
在 ncm-mcp 服务的 Variables 里加:
变量 | 值 | 说明 |
| 大号的完整 Cookie | 必填,整条 |
|
| ncmapi 的内网地址 |
如果
http://ncmapi:3000连不通,就给ncmapi服务也绑个域名,然后NCM_API填那个公网https://域名。
6. 绑定域名
ncm-mcp 服务 → Domains → 生成/绑定一个域名,得到 https://xxx.zeabur.app。
7. Claude.ai 添加 Connector
Claude.ai → Settings → Connectors → 添加:
URL:
https://xxx.zeabur.app/mcp名称:网易云音乐
权限:Always allow
工具清单
工具 | 功能 | 加密 |
| 搜索音乐 | 走镜像 |
| 歌曲详情 | 走镜像 |
| 用户歌单 | 走镜像 |
| 歌单详情 | 走镜像 |
| 私信列表 | 走镜像 |
| 私信历史 | 走镜像 |
| 登录状态 | 走镜像 |
| 用户详情 | 走镜像 |
| 接受一起听 | eapi |
| 退出一起听 | eapi |
| 心跳保活(另有后台自动) | eapi |
| 查询一起听状态 | eapi |
| 切歌(实时) | eapi |
| 加歌到播放列表 | eapi |
| 发私信 | weapi |
| 万能请求兜底 | 走镜像 |
使用流程
一起听
你(小号)在网易云 APP 里给大号发一起听邀请
告诉 Claude「私信给我发了一起听」
Claude 调
get_private_list/get_private_messages读私信,解析出roomId、inviterIdClaude 调
accept_listen_together加入房间后台线程每 60s 自动心跳保活,房间不会过期
点歌
告诉 Claude 想听什么
Claude 调
search_music搜歌拿idClaude 调
add_song加歌你清一次 APP 后台重进,同步列表
之后 Claude 用
play_command随时切歌,实时生效
发私信
Claude 调 send_private_message 直接发私信(weapi/RSA,这部分未用真实 cookie 实测,首次用需验证)。
常见问题
写操作全部 400:Cookie 不完整,重新抓整条(含
__csrf、MUSIC_U、MUSIC_A_T、MUSIC_R_T)。Connector 连不上:确认 ncm-mcp 绑了域名,且 URL 是
https://域名/mcp(结尾带/mcp)。读操作报错:确认
NCM_API能通(ncmapi 服务在运行)。一起听房间掉了:正常,让 Claude 重新
accept_listen_together;自动心跳只在已 accept 的房间上生效。