netease-music-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@netease-music-mcpsearch for songs by Jay Chou"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_COOKIE 与 NETEASE_USER_ID。服务不会自动读取浏览器 Cookie。
Windows 与 macOS 部署建议直接使用 Docker Desktop;仅用 .env 启动容器时宿主机不需要 Python,
网易云 Cookie 通过项目目录的 .env 注入容器。Docker Compose 使用具名缓存卷,不依赖宿主机路径格式。
如果使用下方 auth 宿主机导入命令,则宿主机需要 Python 3.12 与 uv;Keychain/DPAPI 不能在
Linux 容器内部代替宿主机读取。
Related MCP server: netease-mcp
启动
stdio:
uv run netease-music-mcp serve --transport stdioStreamable 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 clearconfig 仅显示非敏感值、配置来源和 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 --detachrun-docker 只把 Cookie 传给本次 docker compose 子进程;接口请求使用固定的 appver=2.9.7,
导入器不落盘。
使用 --detach 时,Cookie 会随运行中的本地容器存在;停止后执行 docker compose down 清理。
非交互环境必须显式使用 --yes,否则导入会拒绝执行。客户端未登录、存储不存在或系统密钥
访问失败时会返回明确错误,不会使用空 Cookie 继续启动。
十五个工具
Tool | 用途 | 返回模型 |
| 分页搜索歌曲、歌手、专辑或歌单 |
|
| 按输入顺序批量读取歌曲元数据 |
|
| 读取只读推荐歌单 |
|
| 读取相似歌曲 |
|
| 按地区读取推荐新歌 |
|
| 读取排行榜摘要和 Top 曲目 |
|
| 读取专辑与可选的单页曲目 |
|
| 读取歌手与可选的限量热门歌曲 |
|
| 读取歌单与可选的单页曲目 |
|
| 分页读取原文、翻译和罗马音歌词 |
|
| 读取已登录用户的音乐库分区 |
|
| 计算确定性的歌单统计 |
|
| 创建歌单(需确认) |
|
| 增删歌单曲目(需确认) |
|
| 点赞或取消点赞(需确认) |
|
搜索结果只保留概要;歌曲详情使用批量工具读取。专辑和歌单默认不包含曲目,歌词默认只返回
一页。MCP 响应使用 structuredContent,兼容文本内容仅为一句短摘要。
完整参数见 docs/tools.md,模型见 docs/data-models.md。
四类资源
URI 模板 | 内容 |
| 单曲完整元数据 |
| 专辑元数据,不展开曲目 |
| 歌手元数据,不展开热门歌曲 |
| 歌单元数据,不展开曲目 |
资源以 application/json 返回,并复用工具的验证、缓存和错误处理路径。需要曲目列表或热门
歌曲时,继续使用相应工具的显式分页/数量参数。
认证与数据边界
无需登录:搜索、歌曲、歌手、专辑、公开歌单、歌词、推荐、新歌速递和排行榜(以上游允许为准)。
需要 Cookie:用户歌单、收藏歌手、收藏专辑、每日推荐、播放记录和喜欢的歌曲。user_id 未传时使用
NETEASE_USER_ID;无登录态会返回 authentication_required,不会返回空列表伪装成功。
可直接配置完整 NETEASE_COOKIE,或使用 NETEASE_MUSIC_U 与 NETEASE_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 --buildWindows PowerShell 使用同样的 Docker 命令;Cookie 可用以下命令准备:
Copy-Item .env.example .env
docker compose up --buildmacOS、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。
更多信息:
Available Tools
15 toolscreate_playlistA
Create a NetEase playlist after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New playlist name. | |
| confirm | No | Must be true to change the account. | |
| private | No | Create a private playlist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| liked | No | |
| action | Yes | |
| song_ids | No | |
| operation | No | |
| playlist_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects. It reveals that creation requires explicit confirmation, hinting at a safety mechanism, but it doesn't describe what happens if confirmation is false, or any other behavioral constraints like authentication. It adds some value but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One succinct sentence conveys action and prerequisite without waste. Front-loads the verb 'Create' for immediate understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and an output schema present, the agent has the necessary parameter details. The description adds the confirmation requirement, making it sufficiently complete for a simple creation tool, though it doesn't discuss return values (covered by output schema) or alternative tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so the baseline is 3. The description's mention of 'explicit confirmation' echoes the confirm parameter's description but doesn't add new meaning to name or private.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'create' and the resource 'NetEase playlist', clearly distinguishing it from the read-only sibling tools like get_playlist and music_search. It also adds the critical condition 'after explicit confirmation,' which is not present in the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case (creating a playlist) and provides a key usage guideline (must have explicit confirmation). However, it doesn't explicitly name alternatives or say when not to use, but given the sibling list is all read-oriented, the intended use is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_albumA
Fetch album metadata and optionally one page of tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| album_id | Yes | NetEase album ID. | |
| track_page | No | One-based track page. | |
| include_tracks | No | Whether to include a page of album tracks. | |
| track_page_size | No | Tracks per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| size | No | |
| type | No | |
| tracks | No | |
| artists | Yes | |
| company | No | |
| cover_url | No | |
| track_page | Yes | |
| description | No | |
| publish_date | No | |
| canonical_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that tracks can optionally be included, but does not disclose behavior such as pagination limits, error handling, or authentication requirements. This is minimal for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core action. Every word contributes value, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are covered. However, the description lacks context on when to use track_page or how pagination works, which could affect correct invocation. For a simple fetch tool, it is adequate but not highly informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema for parameters like 'album_id' or 'track_page', but the phrase 'optionally one page of tracks' hints at the include_tracks and track_page relationship. This is sufficient given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Fetch') and resource ('album metadata'), and mentions the optional inclusion of tracks. This distinguishes it from sibling tools like get_artist or get_playlist by focusing on the album entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when album metadata is needed, but it does not explicitly state when to use it versus alternatives. No exclusions or alternative tool mentions are provided, leaving the agent to infer usage from the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artistB
Fetch artist metadata and optionally a bounded list of top songs.
| Name | Required | Description | Default |
|---|---|---|---|
| artist_id | Yes | NetEase artist ID. | |
| top_song_count | No | Top-song count; uses configured default when omitted. | |
| include_top_songs | No | Whether to include top songs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| aliases | No | |
| mv_count | No | |
| cover_url | No | |
| top_songs | No | |
| album_count | No | |
| description | No | |
| music_count | No | |
| canonical_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states that the top songs list is 'bounded' without specifying the limit. It does not explicitly disclose that this is a read-only operation or mention potential limitations like error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that front-loads the main purpose and includes the optional behavior without any wasted words. It is appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core function and the optional top songs feature, and the schema covers parameters. However, it lacks usage context and behavioral caveats, which is noticeable given no annotations. It is adequate for a simple fetch tool but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters with 100% coverage, including the default behavior of include_top_songs and the meaning of top_song_count. The description does not add additional semantic detail beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and identifies the resource as 'artist metadata', clearly distinguishing it from sibling tools like get_album or get_playlist. It also mentions the optional top songs list, giving a complete scope of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool vs alternatives such as music_search. The description provides no context about prerequisites, exclusions, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lyricsB
Fetch a bounded lyric page with optional aligned translation and romanization.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum lyric lines; uses configured default when omitted. | |
| offset | No | Zero-based lyric-line offset. | |
| song_id | Yes | NetEase song ID. | |
| include_translation | No | Include aligned translated text when available. | |
| include_romanization | No | Include aligned romanized text when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| lines | Yes | |
| total | Yes | |
| offset | Yes | |
| song_id | Yes | |
| has_more | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. 'Fetch' implies a read-only operation and 'bounded' conveys pagination, which adds useful behavioral context. However, it does not disclose error handling, behavior when translation is unavailable, or side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. 'Bounded' efficiently conveys pagination, and the sentence structure is clear. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and all parameters are fully described, the tool becomes usable, but the description itself is minimal. It lacks usage context, pagination behavior details, and relationship to other tools. The description is minimally complete for a straightforward read operation but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of 'aligned translation and romanization' loosely maps to include_translation and include_romanization, but the schema already describes these parameters. No additional parameter semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Fetch' and clearly identifies the resource as a 'bounded lyric page', which distinguishes it from song search or recommendation tools. Mentioning optional aligned translation and romanization adds further specificity. However, it does not explicitly name alternative tools for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like music_search or get_songs. There is no mention of prerequisites, exclusions, or alternative tool names, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_new_songsA
Read a page of recommended new songs by region.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Release region filter. | all |
| page | No | One-based result page. | |
| page_size | No | Items per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| area | Yes | |
| page | Yes | |
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It only states 'Read' and 'page', which implies a non-mutating operation, but it does not disclose pagination defaults, output format, ordering, or any other behavioral traits such as rate limits or required authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It conveys the essential purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple paginated read tool, an output schema is present, and all parameters are fully documented in the schema, the description covers the core purpose. Minor gaps remain about recommendation behavior, but the overall context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (area, page, page_size). The description adds minimal semantic value beyond 'by region' and 'page', so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read'), the resource ('page of recommended new songs'), and the scope ('by region'). This distinguishes it from sibling tools like get_recommendations or get_rankings by emphasizing 'new' songs and region-based filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to read region-specific new song recommendations. However, it does not explicitly mention alternatives or when not to use it, though the regional focus implies differentiation from broader recommendation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlistA
Fetch playlist metadata and optionally one bounded page of tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| track_page | No | One-based track page. | |
| playlist_id | Yes | NetEase playlist ID. | |
| include_tracks | No | Whether to include a page of tracks. | |
| track_page_size | No | Tracks per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tracks | No | |
| playlist | Yes | |
| track_page | Yes | |
| privileges_available | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of transparency. It discloses that tracks are optional and limited to 'one bounded page,' which is valuable behavioral context. However, it does not mention authentication, rate limits, or explicitly confirm read-only semantics, leaving some ambiguity for a fetch operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word—'Fetch,' 'playlist metadata,' 'optionally,' 'bounded page'—contributes directly to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and the simplicity of a fetch operation, the description covers the essential behavior. It clearly communicates the optional, paginated track retrieval, and the schema handles parameter defaults. It could be slightly more explicit about the default of include_tracks, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters documented individually. The description's phrase 'bounded page of tracks' adds a slight semantic layer by implying pagination and the optional nature of include_tracks, but it does not materially extend what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' with a clear resource 'playlist metadata' and explicitly mentions an optional track page. This immediately distinguishes it from sibling tools like get_playlist_statistics or get_songs, making the primary purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching playlist metadata but provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools. It is left to the agent to infer that this is the correct getter for playlist data without any comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlist_statisticsB
Compute deterministic duration, artist, album, year, and availability statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | NetEase playlist ID. | |
| track_limit | No | Maximum analyzed tracks; uses configured maximum when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| playlist_id | Yes | |
| album_counts | Yes | |
| artist_counts | Yes | |
| total_duration_ms | Yes | |
| average_duration_ms | Yes | |
| analyzed_track_count | Yes | |
| playlist_track_count | Yes | |
| unavailable_track_count | Yes | |
| release_year_distribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'deterministic' but does not disclose whether the operation is read-only, potential performance implications of track_limit, error behavior, or any side effects. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tightly worded sentence that front-loads the action and lists key outputs. No redundancy or filler, though it could include a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered elsewhere. The description is missing usage context (when to use vs siblings) and behavioral caveats (e.g., what 'maximum analyzed tracks' means in practice). For a statistics tool, it is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so baseline is 3. The description adds no parameter-level meaning beyond the schema; it doesn't even mention the parameters. The schema already provides clear descriptions for playlist_id and track_limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('compute') and resource ('playlist statistics'), and lists concrete statistic dimensions (duration, artist, album, year, availability). This clearly distinguishes it from sibling tools like get_playlist or music_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than explicit. The description states what the tool computes but gives no guidance on when to prefer it over get_playlist (which might return similar data) or any exclusions/prerequisites. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rankingsA
Read a page of NetEase ranking boards with compact top tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | One-based result page. | |
| page_size | No | Items per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Read,' which indicates a non-mutating operation, but this is already implied by the verb 'get' in the tool name. With no annotations provided, the description does not disclose additional behavioral traits such as pagination behavior, authentication requirements, rate limits, or what 'compact' means in terms of response structure. Minimal extra value beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and resource. It is concise and every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters, both well-described in the schema, and an output schema exists. The description provides the high-level context of retrieving ranking boards with compact top tracks, which is sufficient for a read-only tool. It could benefit from noting whether authentication is needed, but overall the provided information is complete enough for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both 'page' and 'page_size'. The description itself does not add semantics beyond what the schema provides, but the schema already handles parameter understanding, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Read a page of NetEase ranking boards with compact top tracks.' It uses a specific verb ('Read') and resource ('NetEase ranking boards'), and the mention of 'compact top tracks' adds useful detail. This distinguishes it from sibling tools like get_songs or get_playlist, which are not about rankings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need NetEase ranking data. However, it does not explicitly state alternatives or provide exclusions, such as 'Use get_recommendations for personalized suggestions instead.' The usage context is clear from the purpose but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recommendationsA
Read a page of NetEase's read-only recommended playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | One-based result page. | |
| page_size | No | Items per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly labels the operation as 'read-only', indicating non-mutating behavior, and mentions pagination. However, it does not disclose auth requirements, rate limits, or other potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. It communicates purpose and key trait (read-only) in 9 words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated read tool with a full output schema, the description sufficiently covers purpose, safety, and pagination. The output schema handles return value details, so no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for 'page' and 'page_size'. The tool description ('Read a page') adds no further meaning beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read'), resource ('recommended playlists'), and scope ('a page'), distinguishing it from siblings like get_playlist or get_new_songs. The verb is specific and the resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when browsing NetEase recommendations, but it does not explicitly state when to use it over alternatives or provide exclusions. No sibling tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similar_songsA
Read a page of songs similar to one NetEase song.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | One-based result page. | |
| song_id | Yes | NetEase song ID. | |
| page_size | No | Items per page; uses configured default when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| items | Yes | |
| song_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. 'Read' indicates a non-destructive operation, which is useful. But it does not disclose error behavior, rate limits, pagination details beyond the word 'page', or whether similar songs are based on current trends vs permanent attributes. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant wording. It states the verb, resource, and target input efficiently, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with a full input schema and output schema, this description is adequate for invocation. It lacks nuance like sort order, empty-result behavior, or special cases, but these are not critical for basic use. The existence of an output schema reduces the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (song_id, page, page_size). The description adds no extra meaning beyond the schema's own explanations, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Read' with resource 'a page of songs similar to one NetEase song', clearly distinguishing from search/recommendation tools by focusing on song similarity. It immediately tells the agent what the tool does and what its input is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is clear: use when needing songs similar to a specific NetEase song. However, there is no explicit when-to-use vs alternatives, no prerequisites, no exclusion of search or recommendation tools. The guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_songsA
Fetch metadata for multiple songs in one call while preserving input order.
| Name | Required | Description | Default |
|---|---|---|---|
| song_ids | Yes | NetEase song IDs. | |
| detail_level | No | Summary or scalar-rich song metadata. | summary |
Output Schema
| Name | Required | Description |
|---|---|---|
| songs | Yes | |
| missing_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the order-preserving behavior and implies a read-only operation, but it omits details like how invalid IDs are handled, whether partial results are returned, or any rate-limit considerations. This leaves some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the primary action ('Fetch metadata') and immediately adds the key batch/order traits. No redundant words or information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema present, no nested objects), the description covers the essential behavior. It doesn't explain error responses or edge cases, but the combination of schema, output schema, and brief description is largely sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline semantics for both parameters. The description adds meaning beyond the schema by stating that input order is preserved, which is directly relevant to the song_ids parameter. This extra detail enhances understanding of the main parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches metadata for multiple songs in one call, which is a specific verb-resource pair. It also distinguishes from sibling tools by highlighting batch retrieval and order preservation, which other song-related tools (e.g., get_new_songs, get_similar_songs) do not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (use when you need metadata for multiple songs) but does not explicitly state when to prefer this over alternatives or provide exclusions. It lacks guidance such as 'for a single song, use get_album' or 'for searching, use music_search', so the agent receives only implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_libraryA
Read one authenticated, paginated section of a user's music library.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | One-based result page. | |
| section | Yes | Private library section. | |
| user_id | No | User ID; configured current user is used when omitted. | |
| page_size | No | Items per page; uses configured default when omitted. | |
| history_scope | No | Playback-history time scope. | week |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| items | Yes | |
| total | Yes | |
| section | Yes | |
| user_id | Yes | |
| has_more | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose two behavioral traits: it requires authentication ('authenticated') and it is paginated. However, it does not state return formats, error behavior, or whether it is strictly read-only (though 'Read' implies this). More detail would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is front-loaded with the key action and resource. It contains zero wasted words and efficiently conveys the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema is present, so return values are defined. The description gives enough context about the tool's purpose and scope for a simple paginated library reader, though it could mention the available sections (which are in the schema enum) and clarify the intended use case relative to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a description in the schema. The tool description does not add additional parameter semantics beyond restating that it is paginated and library-specific, which meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb (Read), the resource (a user's music library), and the scope (authenticated, paginated section). Among siblings, this is the only tool specifically for accessing a user's own library, so it is distinct from search and recommendation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'user's music library' implies it is for retrieving authenticated user content, but there is no explicit guidance about when to use this tool versus alternatives like music_search or get_recommendations. The context is clear enough for a human but not explicitly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
music_searchB
Search songs, artists, albums, or playlists with compact paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | One-based result page. | |
| query | Yes | Non-empty search text. | |
| category | Yes | Music entity category. | |
| page_size | No | Items per page; the configured default is used when omitted. | |
| detail_level | No | Requested result detail; summary is token-efficient. | summary |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| items | Yes | |
| query | Yes | |
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses that results are paginated ('compact paginated results') which is a useful behavioral trait, but it does not mention authentication, rate limits, error handling, or whether the operation is read-only (though 'search' implies non-destructive). It partially covers behavior but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource, and contains no filler words. Every word adds value, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of a rich input schema with full descriptions, and an output schema, the description covers the essential purpose and result style (paginated, compact). It doesn't explicitly address when to use it vs. siblings or edge-case behavior, but for a search tool with this schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all 5 parameters having descriptions. The description adds minimal parameter-level meaning (e.g., 'compact' relates to detail_level, 'paginated' relates to page/page_size) but the schema already documents the parameters well, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource domain (songs, artists, albums, playlists) with a scoping detail 'compact paginated results'. It distinguishes from siblings like get_songs or get_album by being a general search, but it doesn't explicitly differentiate or exclude specific use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_recommendations or get_songs. The description doesn't state any prerequisites, exclusions, or when this search is preferred over specific entity retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_song_likeA
Like or unlike one NetEase song after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| liked | No | True to like, false to unlike. | |
| confirm | No | Must be true to change the account. | |
| song_id | Yes | NetEase song ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| liked | No | |
| action | Yes | |
| song_ids | No | |
| operation | No | |
| playlist_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It effectively communicates that the tool mutates like status (like/unlike) and requires explicit confirmation, which is a key safety behavior. It does not detail permissions or error handling, but for a simple mutation tool, the core side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no filler. It front-loads the action and embeds the key requirement (confirmation) without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema exists, and schema coverage is 100%, the description is nearly complete. It covers the essential behavioral context (confirmation, like/unlike) but omits minor details like authentication or rate limits, which are not critical for this straightforward operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides complete descriptions for all three parameters, giving a baseline of 3. The description adds semantic context by linking 'like or unlike' to the liked parameter and 'explicit confirmation' to the confirm parameter, enriching the meaning beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: to like or unlike one NetEase song. The verb 'Like or unlike' is specific and the resource 'one NetEase song' is unambiguous, making it distinct from sibling tools like get_user_library or update_playlist_tracks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition: the operation should only be performed 'after explicit confirmation'. This conveys when the tool is appropriate to use and implies a prerequisite, though it does not explicitly name alternatives or exclusions. It gives enough context to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlist_tracksB
Add or remove songs from a NetEase playlist after confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to change the account. | |
| song_ids | Yes | NetEase song IDs. | |
| operation | Yes | Add or remove the songs. | |
| playlist_id | Yes | NetEase playlist ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| liked | No | |
| action | Yes | |
| song_ids | No | |
| operation | No | |
| playlist_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It only discloses that confirmation is required, but omits side effects, reversibility, permission requirements, and error behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the verb and resource. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite complete schema and output schema, the description lacks critical behavioral context for a mutation tool: no mention of required authentication, what happens on failure, or relationship to other playlist/song tools. This is minimally viable at best.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions for playlist_id, song_ids, operation, and confirm. The description adds no extra meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Add or remove songs') on a specific resource ('NetEase playlist'), with the additional constraint 'after confirmation.' It is easily distinguishable from sibling tools like create_playlist and set_song_like.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as create_playlist or set_song_like. The phrase 'after confirmation' hints at a prerequisite but does not clarify the required flow or exclude other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v1.0.0- First observed
create_playlist - First observed
get_album - First observed
get_artist - First observed
get_lyrics - First observed
get_new_songs - First observed
get_playlist - First observed
get_playlist_statistics - First observed
get_rankings - First observed
get_recommendations - First observed
get_similar_songs - First observed
get_songs - First observed
get_user_library - First observed
music_search - First observed
set_song_like - First observed
update_playlist_tracks
TDQS
Scored across 15 tools
Each tool targets a distinct resource or action: search, various recommendation feeds, metadata lookups by type, lyrics, library, statistics, and write operations. Potential overlaps like 'get_recommendations' vs 'get_new_songs' are clearly separated by content type and description, leaving no ambiguity.
Most tools follow a verb_noun snake_case pattern (get_*, create_*, update_*, set_*), which is highly consistent. The sole exception is 'music_search', which reverses the order (noun_verb) instead of 'search_music', but this is a minor deviation in an otherwise predictable set.
15 tools is well-scoped for a music service, covering search, discovery, metadata retrieval, user library access, statistics, and playlist management. Each tool has a clear and justified place, with no redundant or filler tools.
The tool surface covers the core lifecycle: browsing, searching, fetching details, managing playlists, and liking songs. Minor gaps include no delete playlist operation, no user profile endpoint, and limited artist discography, but these are workaroundable and do not severely hinder typical music workflows.
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
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for Suno AI music generation, lyrics, and covers
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
MCP server for Russian books search, details, and recommendation candidates.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for controlling local music playback via NetEase Cloud Music, enabling search, play, pause, skip, and lyrics display through a local web player.1376MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI assistants to search and retrieve music data (songs, lyrics, playlists, albums, artists) from Netease Cloud Music.MIT
- AlicenseCqualityAmaintenanceMulti-source music search and playback MCP server supporting QQ Music, NetEase Cloud, and local files with playlist management.32MIT
- AlicenseNot gradedqualityCmaintenance非官方MCP服务,允许通过统一的工具接口操作网易云音乐,包括搜索歌曲、创建与管理歌单、查看听歌记录、收藏歌曲及获取每日推荐。1MIT