Skip to main content
Glama

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。

文件

文件

作用

ncm_crypto.py

eapi / weapi 两套加密

ncm_client.py

请求层、cookie 和房间号读写

ncm_mcp_server.py

MCP 主服务,16 个工具

login.py

登录拿完整 cookie(qr / sms / password)

heartbeat.py

一起听心跳保活,给 cron 用

ncm-mcp.service

systemd 单元

nginx.conf.example

反代配置

部署

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 就行。

建一个只有自己能读的目录,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 个工具。

使用

一起听

  1. 你在网易云 APP 里给 AI 号发一起听邀请

  2. 告诉 Claude:“我发了一起听邀请”

  3. Claude 调 get_private_listget_private_messages 解析出 roomId 和 inviterId

  4. Claude 调 accept_listen_together 加入,房间号自动存下,cron 接手保活

点歌

  1. Claude 调 search_music 拿 songId

  2. add_song 加进列表

  3. 你清一次 APP 后台重进(列表同步只能这么弄)

  4. 之后 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 不完整,缺 __csrf;重新跑 login.py

读操作报错

容器挂了,sudo docker restart ncmapi

一起听房间自己断

心跳没跑,看 heartbeat.log

nginx 502

服务没起,systemctl status ncm-mcp

Claude 连不上

证书问题或 URL 漏了 /mcp

加歌了但 APP 看不到

正常,清后台重进

致谢

基于 Iris & Rei 的接入教程实现。

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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