ncm-mcp-server
ncm-mcp-server
网易云音乐 MCP Server。接到 Claude 官端后,Claude 可以直接搜歌、加歌、切歌、接一起听邀请、发私信。
全程只需要手机 SSH,不需要电脑抳 F12 cookie。
架构
Claude.ai
↓ MCP (HTTPS)
nginx 你的域名/ncm/mcp
↓
ncm_mcp_server.py 127.0.0.1:3940
├─ 读操作 → NeteaseCloudMusicApi 容器 :3939
└─ 写操作 → 本地 eapi/weapi 加密 → 网易云官方接口写操作不走容器,因为公开镜像的 eapi 加密参数已经过期,一起听和私信全部 400。
文件
文件 | 作用 |
| eapi / weapi 两套加密 |
| 请求层、cookie 和房间号读写 |
| MCP 主服务,16 个工具 |
| 登录拿完整 cookie(qr / sms / password) |
| 一起听心跳保活,给 cron 用 |
| systemd 单元 |
| 反代配置 |
部署
1. 拉代码、装依赖
cd ~
git clone https://github.com/1049376904-crypto/ncm-mcp-server.git
cd ncm-mcp-server
sudo pip3 install -r requirements.txt旧版 pip 不认 --break-system-packages,直接用上面这行就行。如果报 externally-managed-environment,加上该参数重试。
2. 起读接口容器
sudo docker run -d -p 3939:3000 --restart=always \
--name ncmapi binaryify/netease_cloud_music_api:latest
curl -s "http://localhost:3939/search?keywords=test" | head -c 120出 JSON 就行。
3. 登录拿 cookie
建一个只有自己能读的目录,cookie 等同账号密码,别丢 /tmp:
mkdir -p ~/.ncm && chmod 700 ~/.ncm
export NCM_COOKIE_FILE=~/.ncm/music_cookie.txt
export NCM_ROOM_FILE=~/.ncm/listen_room_id.txt然后选一种登录方式:
python3 login.py sms # 推荐:手机号 + 短信验证码
python3 login.py qr # 终端直接画二维码,网易云 APP 扫
python3 login.py password # 手机号 + 密码(网易云经常拦)qr 模式在手机 SSH 里二维码可能挤得扫不出来,它会同时存一份 /tmp/ncm_qr.png。最稳的是 sms。
看到 [ok] logged in as … (uid=…) 就成了,把这个 uid 记下来,它是 AI 号的 uid。
4. 挂成服务
先改 ncm-mcp.service 里的 User 和路径对上你的实际用户,再:
sudo cp ncm-mcp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now ncm-mcp
sudo systemctl status ncm-mcp --no-pager看日志:
sudo journalctl -u ncm-mcp -f启动时会打印容器可达性、cookie 长度和监听地址,三行都正常再往下走。
5. nginx 反代
把 nginx.conf.example 的内容贴进你域名的 HTTPS server 块:
sudo nginx -t && sudo systemctl reload nginx
curl -i https://你的域名/ncm/mcp返回 400/406 而不是 502,就说明反代通了(MCP 不吃裸 GET,报错是正常的)。502 代表后端没起来。
6. 心跳 cron
crontab -e加一行(路径改成你自己的):
* * * * * NCM_COOKIE_FILE=/home/ubuntu/.ncm/music_cookie.txt NCM_ROOM_FILE=/home/ubuntu/.ncm/listen_room_id.txt /usr/bin/python3 /home/ubuntu/ncm-mcp-server/heartbeat.py >> /home/ubuntu/.ncm/heartbeat.log 2>&1没有活跃房间时它直接退出,不会乱发请求,可以一直挂着。
7. 接到 Claude
Claude.ai → Settings → Connectors → Add custom connector:
URL:
https://你的域名/ncm/mcp名称:网易云音乐
连上后应该能看到 16 个工具。
使用
一起听
你在网易云 APP 里给 AI 号发一起听邀请
告诉 Claude:“我发了一起听邀请”
Claude 调
get_private_list→get_private_messages解析出 roomId 和 inviterIdClaude 调
accept_listen_together加入,房间号自动存下,cron 接手保活
点歌
Claude 调
search_music拿 songIdadd_song加进列表你清一次 APP 后台重进(列表同步只能这么弄)
之后
play_command切歌,实时生效
工具清单
写操作:accept_listen_together end_listen_together listen_together_heartbeat listen_together_status get_room_playlist play_command add_song send_private_message
读操作:search_music get_song_detail get_private_list get_private_messages get_user_playlist get_playlist_detail get_login_status get_user_detail
兜底:http_request
安全
MCP 服务本身没有鲉权。它只听 127.0.0.1,靠 nginx 暴露。任何知道 https://你的域名/ncm/mcp 的人都能操作你的网易云账号。两个建议:
路径别用
/ncm/,换成一串随机字符,比如/ncm-a7f3k9d2/或者在 nginx 里加 header 校验,Claude 的 connector 支持自定义 header
cookie 等同账号密码,别提交进仓库,.gitignore 已经挡了。
排查
现象 | 原因 |
写操作全 400 | cookie 不完整,缺 |
读操作报错 | 容器挂了, |
一起听房间自己断 | 心跳没跑,看 |
nginx 502 | 服务没起, |
Claude 连不上 | 证书问题或 URL 漏了 |
加歌了但 APP 看不到 | 正常,清后台重进 |
致谢
基于 Iris & Rei 的接入教程实现。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for Suno AI music generation, lyrics, and covers
MCP server for GLM chat completions using Zhipu AI models via AceDataCloud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/1049376904-crypto/ncm-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server