ncm-mcp-server
ncm-mcp-server
网易云音乐 MCP サーバー。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 の 2 セットの暗号化 |
| リクエスト層、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 を認識しないので、上の行をそのまま使えば OK。externally-managed-environment エラーが出たら、そのパラメータを付けて再試行してください。
2. 読み取り API コンテナを起動
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 120JSON が返れば OK。
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そしてログイン方式を 1 つ選びます:
python3 login.py sms # 推荐:手机号 + 短信验证码
python3 login.py qr # 终端直接画二维码,网易云 APP 扫
python3 login.py password # 手机号 + 密码(网易云经常拦)qr モードはスマホの SSH では QR コードが小さくて読み取れない可能性があります。その場合も /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 の長さ、待受アドレスが表示されます。3 行とも正常なら次に進みます。
5. nginx リバースプロキシ
nginx.conf.example の内容を、あなたのドメインの HTTPS server ブロックに貼り付けます:
sudo nginx -t && sudo systemctl reload nginx
curl -i https://你的域名/ncm/mcp502 ではなく 400/406 が返れば、リバースプロキシは通っています(MCP は素の GET を受け付けないため、エラーは正常です)。502 はバックエンドが起動していないことを意味します。
6. ハートビート cron
crontab -e1 行追加します(パスは自分のものに変更):
* * * * * 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 個のツールが見えるはずです。
使い方
一緒に聴く
网易云音乐アプリで AI アカウントに一緒に聴く招待を送る
Claude に「一緒に聴く招待を送りました」と伝える
Claude が
get_private_list→get_private_messagesを呼び出して roomId と inviterId を解析Claude が
accept_listen_togetherを呼び出して参加。ルーム番号は自動で保存され、cron がハートビート維持を引き継ぐ
曲のリクエスト
Claude が
search_musicを呼び出して songId を取得add_songでリストに追加アプリのバックグラウンドを一度クリアして再起動(リストの同期はこの方法しかない)
その後
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 を知っている人は誰でもあなたの网易云音乐アカウントを操作できます。2 つの提案:
パスに
/ncm/を使わず、ランダムな文字列に変更する。例:/ncm-a7f3k9d2/または nginx でヘッダー検証を追加する。Claude のコネクタはカスタムヘッダーに対応しています
cookie はアカウントのパスワードと同等です。リポジトリにコミットしないでください。.gitignore で既に除外されています。
トラブルシューティング
現象 | 原因 |
書き込み操作がすべて 400 | cookie が不完全。 |
読み取り操作でエラー | コンテナが停止。 |
一緒に聴くルームが自動切断 | ハートビートが実行されていない。 |
nginx 502 | サービスが起動していない。 |
Claude が接続できない | 証明書の問題、または URL に |
曲を追加したのにアプリに表示されない | 正常。バックグラウンドをクリアして再起動 |
謝辞
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