crates-music-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
crates-music-mcp
把你三个音乐 App 的收藏交给 Agent,让它每天替你挑一张对味的歌单。
网易云 · QQ 音乐 · 酷狗 —— 一个 MCP server、21 个工具、一份共享凭证、零原生依赖。
大多数"音乐 MCP"只做一件事:把接口包一层,让模型能搜歌。这个包多做两步—— 先读懂你的耳朵,再替你选歌:
它做什么 | 具体怎么做的 |
读 | 三家「我喜欢 / 收藏」+ 今日推荐全部拉下来,按「歌名 + 歌手」跨平台去重(实测一份池子 1500+ 首) |
懂 | 把候选池交给模型,产出结构化偏好画像:常听歌手、口味、情绪倾向,缓存到本地,下次不用重算 |
推 | 按画像权重从池子里挑歌,避开最近 14 天推过的,在目标平台现场搜歌再建单(搜不到就跳过,不硬塞) |
全程在你自己机器上跑:没有容器、没有 sidecar、没有云端账号,凭证就是你自己的登录 Cookie。 Windows / Linux 行为一致——三平台的协议都是纯 Python 实现的。
一分钟跑通
pip install . # 或 pip install git+https://github.com/<owner>/crates-music-mcp.git装完得到 4 个命令:
crates-music # 单 server,全部 21 个工具(默认 stdio)—— 推荐
crates-auth # 只带登录/凭证工具
crates-profile # 只带画像工具
crates-playlist # 只带建单/推荐工具接到客户端(客户端调用时自动拉起进程,用完即退,不需要常驻、不需要 systemd):
{ "mcpServers": { "music": { "command": "crates-music", "args": [] } } }Codex 用 TOML:
[mcp_servers.music]
command = "crates-music"
args = []工具名会带 server 前缀(如 music_create_daily_playlist)。然后就能这样用:
你:看看我最近都听什么,给我建一张今天的歌单
Agent:analyze_music_profile → 画像:偏爱华语流行 + 电子,常听 邓紫棋 / 陈奕迅 / 梁博
create_daily_playlist(count=40, prompt="今天想安静点")
→ 网易云《20261107-独处时光》40 首 / QQ音乐 40 首 / 酷狗 40 首Related MCP server: Cloud Music MCP Server
21 个工具
登录与凭证(8)
login_methods · login_start · login_poll · login_submit · credential_status · credential_refresh · credential_set_cookie · credential_logout
画像与听歌数据(4)
analyze_music_profile · get_profile · save_profile · recent_tracks
歌单与推荐(9)
create_daily_playlist · create_qq_playlist · create_ncm_playlist · create_kugou_playlist · daily_recommendations · ncm_liked_songs · delete_playlist · my_playlists · qq_recent
登录
平台 | 方式 |
QQ 音乐 |
|
网易云 |
|
酷狗 |
|
三端都默认手机验证码(纯文本、不用截图扫码、跨设备零差异):
login_start(service="qq_music", method="phone_code", phone="138...")
→ 用户把验证码输入对话框
login_submit(session_id=..., code="123456")凭证自动续期:QQ 到期前 6 小时按需刷新,网易云距上次续期超 12 小时主动调 /login/refresh;
跨进程 flock 互斥,保证同一份凭证不会被两个进程同时刷新。
登录会话:有效期按真实值上报,进程重启也能续
login_start返回的expires_in_seconds是该平台二维码的真实寿命,不是一刀切的会话 TTL (另有session_ttl_seconds表示我们最多留多久):方式
实测有效期
依据
网易云
qr300 s
291 s 仍回 801、306 s 回 800
QQ
qq_qr/wx_qr120 s
114 s 仍回 SCAN、131 s 回 TIMEOUT
QQ
mobile_qr300 s(MQTT 监听窗口)
走推送,没有可询的 HTTP 状态
酷狗
qr≥480 s
实测 8 分钟仍可用,上报按会话窗口 600 s
会话落盘(
state/login_sessions.json):票据是纯数据的那些(网易云/酷狗的unikey、 QQ 的qrsig、验证码登录的phone)会被持久化,MCP 进程重启后login_poll照样能续。 QQmobile_qr例外——它的登录结果由 MQTT 推送带回来,错过就没了,必须在当前进程里完成。
生成歌单
create_daily_playlist(count=40) # 全平台各建一份
create_daily_playlist(count=100, prompt="今天心情不好") # 主题自动取心情
create_daily_playlist(include="晴天 - 周杰伦", count=20) # 点名的歌排最前候选池 = 所有平台「今日推荐 + 全部收藏」去重,避开最近 14 天推过的
画像权重选曲:命中
top_artists的歌 rank=2,命中mood_tendencies的 rank=1每首歌在目标平台现场搜索,找不到就跳过(记进
failed,绝不硬塞一首不相干的)歌单名 =
<日期>-<主题>,主题取自心情 / 场景 / 天气
凭证 vault
数据默认落在用户级目录(不写进安装目录):
文件 | 内容 |
| QQ 音乐完整 Credential(含 refresh_token) |
| 网易云 Cookie |
| 酷狗 Cookie(token + userid) |
| 各平台收藏快照 |
| 偏好画像 |
| 最近 14 天推荐历史(去重口径) |
| 未完成的登录会话(可跨进程续,见上) |
覆盖路径用 MUSIC_DATA_DIR(一处决定 secrets/ 与 state/)。
三个平台的上游出处
协议不是凭空写的:网易云、酷狗的签名与加密都是照公开实现逐字复刻的,QQ 直接用现成的纯 Python 库。
平台 | 上游项目 | 许可 |
QQ 音乐 | MIT | |
网易云 | MIT | |
酷狗 | MIT |
依赖与自检
运行依赖只有 mcp / qqmusic-api-python / qrcode / Pillow / httpx / uvicorn,
由 pyproject.toml 声明,pip 自动装齐。
自检:
python tests/test_ncm_native.py # 网易云:AES/RSA/weapi/eapi 与官方向量
NCM_LIVE=1 python tests/test_ncm_native.py # 再加真实搜索 / 推荐 / 登录态
python tests/test_kugou_native.py # 酷狗:签名/RSA/AES 与上游 JS 逐字节对拍
KUGOU_LIVE=1 python tests/test_kugou_native.py # 再加真实搜索 / 歌单 / 曲目 / 二维码
python tests/test_login_resumable.py # 登录会话:有效期 + 跨进程续(含另起进程验证)项目结构
music_mcp/
├── app.py 入口:起 MCP server(stdio / http 两种传输,4 个命令都走它)
├── servers.py MCP 工具定义(21 个):校验参数 → 转给业务层 → 结果 JSON 化
├── compose.py 业务编排:画像加权选曲、跨平台建单、最近 14 天去重
├── login.py 登录会话注册表:发号 / 回收 / 落盘(跨进程可续)
├── vault.py 共享凭证库:三个进程共用一份,读-刷新-回写用 flock 互斥
├── paths.py 数据目录(用户级,MUSIC_DATA_DIR 一处覆盖)
├── qr.py 二维码本地渲染 + 127.0.0.1 回环图片服务
└── platforms/
├── __init__.py 平台注册表:枚举 ↔ 实现
├── qq.py QQ 音乐 · 平台层(登录流程、收藏/推荐/搜索/建单)
├── netease.py 网易云 · 平台层(同上 + Cookie 续期)
├── kugou.py 酷狗 · 平台层(同上)
└── core/ ← 共用底座 + 各平台协议实现(纯 Python 传输层)
├── base.py 平台接口 + 通用结构/工具(Song / LoginStart / normalize / dedupe…)
├── aes.py 通用 AES-128/192/256(CBC/ECB + PKCS7,标准库实现)
├── ncm_crypto.py 网易云 · 参数加密:weapi(双层 AES + 裸 RSA)/ eapi(AES-ECB + md5)
├── ncm_native.py 网易云 · 路由与请求:域名、参数、指纹 Cookie、响应归一
├── kugou_crypto.py 酷狗 · 签名/加密:md5 盐值签名、两种 RSA、三处 AES、设备指纹
└── kugou_native.py 酷狗 · 路由与请求:13 条上游接口一句话分工:
层 | 负责 | 不知道的事 |
| 怎么签名:把参数算成上游要的样子 | 不知道要调哪个接口 |
| 打哪个请求:URL / 参数 / 头 / 响应 | 不知道"我喜欢"是什么 |
| 业务上要干什么:登录编排、收藏、搜索、建单 | 不碰签名细节 |
| 对外暴露哪些工具 | 任何平台差异 |
新增一个平台 = 一个 x_crypto.py + 一个 x_native.py(放 core/)+ 一个 x.py(放 platforms/),
再加一行注册。
许可证
MIT。三个平台的上游实现同样是 MIT(见上表)——我们只对齐了协议行为、没有复制它们的代码: 网易云/酷狗的签名与加密都是照公开协议自己实现的,QQ 那个库是以依赖形式引入的。
开发
pip install -e .
python tests/test_stdio.py all # 冒烟:21 个工具
python tests/test_methods.py # 登录方式目录 + Cookie 导入 + 凭证状态
python tests/test_analyze_all.py # 三平台画像(需要本地已有凭证)This server cannot be deployed
Maintenance
Related MCP Connectors
Agents-first viral-hook engine: generate, score, and remix short-form hooks over MCP.
One MCP for any agent: your connected apps, shared memory, web search, social data and media tools.
MCP server: AI-agent access to Chinese social & trend signals — Douyin, Weibo, Xiaohongshu/RedNote,
Music industry tools for AI agents: artist research, catalogs, release plans and content.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Spotify that enables playlist building and music discovery through 19 tools, allowing LLM agents to search tracks/artists/albums, manage playlists, control playback, and access personal listening data.2031 PyPI1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to control NetEase Cloud Music playback, login, search, and get personalized recommendations through official APIs.1248MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that enables LLMs to search, play, and manage music from multiple platforms (NetEase, QQ, Kugou) and local files, with lyrics retrieval and playback control.MIT
- AlicenseNot gradedqualityDmaintenance非官方MCP服务,允许通过统一的工具接口操作网易云音乐,包括搜索歌曲、创建与管理歌单、查看听歌记录、收藏歌曲及获取每日推荐。1MIT