Skip to main content
Glama
YuanYeYouTao

netease-music-mcp

by YuanYeYouTao

netease-music-mcp

netease-music-mcp 是面向通用 MCP Client 的网易云音乐数据服务器。它以紧凑、分页、 结构化的方式提供歌曲、歌手、专辑、歌单、歌词和登录用户音乐库数据,可供 Claude Desktop、 Codex、IDE Agent、Yuki 等 MCP Client 使用。

当前开发版本:1.0.0。本项目是独立的社区项目,不是网易云音乐官方项目,也未获得网易公司的 认可或担保。所用 Web 接口不是公开稳定 API,可能随上游变更。

项目不调用任何 LLM,不下载、播放或转发音频,不提供付费音频链接,也不绕过会员、版权、 地区或 DRM 限制。写操作默认关闭;仅当显式设置 NETEASE_WRITE_OPERATIONS_ENABLED=true 后才会 启用,且每次写调用仍必须传入 confirm=true。项目不提供删除歌单接口。

安装

本地开发需要 Python 3.12 与 uv

git clone <repository-url> netease-music-mcp
cd netease-music-mcp
uv sync --all-extras

公开查询无需 Cookie。访问私人音乐库前,将 .env.example 复制为 .env 并配置 NETEASE_COOKIENETEASE_USER_ID。服务不会自动读取浏览器 Cookie。

Windows 与 macOS 部署建议直接使用 Docker Desktop;仅用 .env 启动容器时宿主机不需要 Python, 网易云 Cookie 通过项目目录的 .env 注入容器。Docker Compose 使用具名缓存卷,不依赖宿主机路径格式。 如果使用下方 auth 宿主机导入命令,则宿主机需要 Python 3.12 与 uv;Keychain/DPAPI 不能在 Linux 容器内部代替宿主机读取。

Related MCP server: MusicBrainz MCP Server

启动

stdio:

uv run netease-music-mcp serve --transport stdio

Streamable HTTP(默认路径 /mcp):

uv run netease-music-mcp serve \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8766

辅助命令:

uv run netease-music-mcp config
uv run netease-music-mcp doctor
uv run netease-music-mcp cache stats
uv run netease-music-mcp cache clear

config 仅显示非敏感值、配置来源和 Cookie 是否已配置,不会显示 Cookie 内容。 doctor 检查配置、缓存可写性、公开查询和(已配置时)登录状态。

宿主机本地认证导入

Windows/macOS 桌面客户端登录态可由宿主机在运行前读取。导入器只读取网易云桌面客户端的 本地 MMKV Cookie 归档,并兼容 CEF Chromium Cookie 数据库;首次运行必须确认。读取加密的 CEF Cookie 时,macOS 使用 Keychain,Windows 使用 DPAPI。它不会扫描浏览器,不会打印 Cookie, 也不会把 Cookie 写入仓库或镜像。

仅查看脱敏结果:

uv run netease-music-mcp auth import-local

确认后直接以一次性环境变量启动 Docker(默认重新构建镜像):

uv run netease-music-mcp auth run-docker --detach

run-docker 只把 Cookie 传给本次 docker compose 子进程;接口请求使用固定的 appver=2.9.7, 导入器不落盘。 使用 --detach 时,Cookie 会随运行中的本地容器存在;停止后执行 docker compose down 清理。 非交互环境必须显式使用 --yes,否则导入会拒绝执行。客户端未登录、存储不存在或系统密钥 访问失败时会返回明确错误,不会使用空 Cookie 继续启动。

十五个工具

Tool

用途

返回模型

music_search

分页搜索歌曲、歌手、专辑或歌单

SearchPage

get_songs

按输入顺序批量读取歌曲元数据

GetSongsResult

get_recommendations

读取只读推荐歌单

RecommendationPage

get_similar_songs

读取相似歌曲

SimilarSongsPage

get_new_songs

按地区读取推荐新歌

NewSongsPage

get_rankings

读取排行榜摘要和 Top 曲目

RankingPage

get_album

读取专辑与可选的单页曲目

AlbumDetail

get_artist

读取歌手与可选的限量热门歌曲

ArtistDetail

get_playlist

读取歌单与可选的单页曲目

PlaylistDetail

get_lyrics

分页读取原文、翻译和罗马音歌词

LyricsDocument

get_user_library

读取已登录用户的音乐库分区

UserLibraryPage

get_playlist_statistics

计算确定性的歌单统计

PlaylistStatistics

create_playlist

创建歌单(需确认)

WriteResult

update_playlist_tracks

增删歌单曲目(需确认)

WriteResult

set_song_like

点赞或取消点赞(需确认)

WriteResult

搜索结果只保留概要;歌曲详情使用批量工具读取。专辑和歌单默认不包含曲目,歌词默认只返回 一页。MCP 响应使用 structuredContent,兼容文本内容仅为一句短摘要。

完整参数见 docs/tools.md,模型见 docs/data-models.md

四类资源

URI 模板

内容

netease://song/{id}

单曲完整元数据

netease://album/{id}

专辑元数据,不展开曲目

netease://artist/{id}

歌手元数据,不展开热门歌曲

netease://playlist/{id}

歌单元数据,不展开曲目

资源以 application/json 返回,并复用工具的验证、缓存和错误处理路径。需要曲目列表或热门 歌曲时,继续使用相应工具的显式分页/数量参数。

认证与数据边界

无需登录:搜索、歌曲、歌手、专辑、公开歌单、歌词、推荐、新歌速递和排行榜(以上游允许为准)。

需要 Cookie:用户歌单、收藏歌手、收藏专辑、每日推荐、播放记录和喜欢的歌曲。user_id 未传时使用 NETEASE_USER_ID;无登录态会返回 authentication_required,不会返回空列表伪装成功。

可直接配置完整 NETEASE_COOKIE,或使用 NETEASE_MUSIC_UNETEASE_CSRF 由认证组件 统一组装。Cookie 不进入日志、异常、MCP 输出或缓存。详见 docs/authentication.md

写工具仅对已认证账号开放。真实测试建议先读取歌单和喜欢状态,选择原本未存在的歌曲执行 “添加后删除”或“点赞后取消点赞”,并在每一步核对恢复结果。

Yuki 接入

stdio .mcp.json 示例:

{
  "mcpServers": {
    "netease_music": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/netease-music-mcp",
        "run",
        "netease-music-mcp",
        "serve",
        "--transport",
        "stdio"
      ],
      "env": { "NETEASE_COOKIE": "${NETEASE_COOKIE}" },
      "lifecycle": "lazy",
      "yuki": {
        "scope": "mcp.netease_music",
        "summary": "歌曲、歌手、专辑、歌单、歌词和音乐库查询",
        "tags": ["音乐", "网易云", "歌曲", "歌手", "专辑", "歌单", "歌词"]
      }
    }
  }
}

HTTP 示例:

{
  "mcpServers": {
    "netease_music": {
      "url": "http://127.0.0.1:8766/mcp",
      "lifecycle": "lazy",
      "yuki": {
        "scope": "mcp.netease_music",
        "summary": "网易云音乐数据查询"
      }
    }
  }
}

yuki 仅是 Client 读取的文档字段,本项目不依赖 Yuki。

Docker

docker build -t netease-music-mcp:1.0.0 .
docker compose up --build

Windows PowerShell 使用同样的 Docker 命令;Cookie 可用以下命令准备:

Copy-Item .env.example .env
docker compose up --build

macOS、Windows 和 Linux 的 Compose 行为保持一致:从本地 .env 读取配置,将 SQLite 缓存放入 具名卷,并暴露可配置端口。容器以非 root 用户运行,健康检查只检查 TCP 监听,不调用真实搜索接口。

故障排查

  • 启动即配置错误:运行 uv run netease-music-mcp config,检查分页默认值是否超过最大值、 路径是否以 / 开头、端口是否有效。

  • 私人数据返回 authentication_required:配置 Cookie 和 NETEASE_USER_ID,再运行 doctor。Cookie 过期会返回 authentication_expired

  • rate_limited:等待后重试;服务器只按配置进行有限指数退避。

  • upstream_unavailable:检查网络与网易云状态。

  • upstream_response_error:通常表示非公开 Web 接口的响应结构已变,需要更新 Backend 或 Normalizer。

  • HTTP Client 无法连接:确认 URL 为 http://host:port/mcp,且容器/防火墙端口一致。

数据与版权

服务器读取并规范化元数据和歌词,也可按显式确认执行歌单和点赞写操作。数据、封面与歌词的权利属于各自权利人;使用者应遵守 网易云音乐服务条款、适用法律及地区限制。本项目不缓存认证响应、Header 或原始上游 JSON。

更多信息:

Install Server
A
license - permissive license
A
quality
C
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 Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Suno AI music generation, lyrics, and covers

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • This MCP server provides seamless access to Malaysia's government open data, including datasets, w…

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/YuanYeYouTao/netease-music-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server