netease-music-mcp
Click on "Deploy 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 'Faded' by Alan Walker and show the lyrics."
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.
网易云音乐 MCP
一个隐私优先、可自托管的网易云音乐 Model Context Protocol 服务。它把 搜索、歌曲详情、歌词和个人歌单能力提供给任何支持 MCP 的客户端,同时把 本地播放器控制隔离在设备适配器中。
非网易云音乐官方项目,与网易公司无隶属或背书关系。
第一次接触 GitHub、Docker 或 MCP?
请直接阅读 网易云音乐 MCP 小白部署教程, 从下载安装到域名、账号和各 AI 平台接入都按步骤写好了。
从 v0.6.0 起,项目同时提供:
本机单用户 stdio MCP;
兼容旧版秘密 URL 的私有 HTTP MCP;
标准 OAuth 2.1 个人远程 MCP(每个部署只有一个所有者);
面向 ChatGPT、自建前端、DeepSeek 工具桥等客户端的 REST/OpenAPI 层。
可以在哪些设备使用
Mac:全部通用能力;附带稳定的 macOS 网易云客户端控制。
Windows:搜索、歌词、详情、歌单和 stdio/HTTP MCP 可用;本地播放 控制适配器尚未标记为稳定。
Linux / VPS / NAS:适合托管远程 MCP;提供搜索、歌词、详情和歌单 能力,不负责操作桌面播放器。
Android / iPhone / 新设备:使用支持远程 MCP 的客户端连接你自己 托管的 HTTPS 地址,即可使用通用能力。云端服务不能绕过手机系统权限 操控另一个 App;手机内切歌需要单独的本地伴侣程序。
完整矩阵见 Platform support。
Related MCP server: netease-mcp
工具
所有平台
netease_status:报告运行平台和可用设备适配器。netease_search:匿名搜索歌曲。netease_song_detail:读取歌曲详情。netease_lyrics:读取歌词、翻译和罗马音。netease_playlist_auth_status:检查歌单账号能力配置,不返回 Cookie。netease_playlist_list:列出当前账号创建的歌单。netease_playlist_create:创建公开或隐私歌单。netease_playlist_add_songs:添加歌曲到指定歌单。netease_playlist_remove_songs:从指定歌单移除歌曲。netease_listen_together_capabilities:报告当前设备的一起听能力。
macOS 本地适配器
netease_launch:启动官方客户端。netease_open_entity:打开歌曲、歌单、专辑或歌手页面。netease_open_area:打开私人 FM、下载管理或听歌识曲。netease_control:播放/暂停、上一首、下一首。netease_next_track:发送系统级下一首命令,不操控屏幕。netease_listen_together_invite:打开一起听邀请界面。
快速开始
需要 Node.js 20 或更高版本。
git clone https://github.com/tianyupaipai-cmd/netease-music-mcp.git
cd netease-music-mcp
npm ci
npm test
npm startnpm start 使用 stdio,适合本机 MCP 客户端。通用配置示例:
{
"mcpServers": {
"netease-music": {
"command": "node",
"args": ["/absolute/path/to/netease-music-mcp/src/server.js"]
}
}
}这不是某一个 AI 产品的专用格式;任何支持 stdio MCP 的桌面端或自建前端 都可以使用同一个服务。
个人成品 MCP(OAuth、独立部署)
个人模式使用你自己的地址 https://your-domain.example/mcp。支持远程
MCP OAuth 的客户端会自动完成客户端注册、PKCE 登录和授权。一次部署只能
初始化一个所有者;其他人应在自己的电脑、VPS 或容器中部署自己的实例,
不会共用 Cookie、数据库、Token 或调用额度。
所有者可以在自己的控制台生成、撤销个人 Token,供不支持 MCP OAuth 的 自建前端或工具调用平台使用。
初始化独立状态目录:
sudo install -d -m 700 -o netease-mcp -g netease-mcp /var/lib/netease-music-mcp
sudo -u netease-mcp npm run init:personal -- /var/lib/netease-music-mcp配置:
NETEASE_PERSONAL_ORIGIN=https://music.example.com
NETEASE_PERSONAL_HOST=127.0.0.1
NETEASE_PERSONAL_PORT=3304
NETEASE_PERSONAL_STORE_FILE=/var/lib/netease-music-mcp/auth.json
NETEASE_PERSONAL_MASTER_KEY_FILE=/var/lib/netease-music-mcp/master.key启动:
npm run start:personal入口如下:
MCP:
https://music.example.com/mcp用户控制台:
https://music.example.com/dashboardOpenAPI:
https://music.example.com/openapi.jsonREST:
https://music.example.com/api/v1
完整的反向代理、OAuth、权限和迁移说明见
Personal remote guide。示例 systemd 与 Nginx 配置
位于 deploy/。
不同设备分别需要安装什么、如何接入,见 Device guide。

Docker 快速路径:
export NETEASE_PERSONAL_ORIGIN=https://music.your-domain.example
docker compose run --rm netease-mcp npm run init:personal -- /data
docker compose up -d远程 HTTP 与手机连接
这一节是旧版秘密 URL 模式。新部署优先采用上面的个人 OAuth 模式。
先创建只允许当前用户读取的 64 位十六进制秘密:
mkdir -p ~/.netease-music-mcp
openssl rand -hex 32 > ~/.netease-music-mcp/http.secret
chmod 600 ~/.netease-music-mcp/http.secret
NETEASE_MCP_SECRET_FILE="$HOME/.netease-music-mcp/http.secret" npm run start:http服务默认只监听 127.0.0.1:3303。请在它前面使用你自己的 HTTPS 反向代理
或零信任隧道,然后把最终地址
https://your-domain.example/mcp/<64位秘密> 加入支持 Streamable HTTP MCP
的客户端。
不要直接监听公网,不要提交或分享完整 MCP URL。手机可以连接这个远程地址, 但 Mac 睡眠或托管服务器停止后服务也会离线。
可选:启用个人歌单
账号写入默认关闭。项目不读取密码,只从指定文件加载 MUSIC_U 和可选
__csrf:
MUSIC_U=你的值; __csrf=你的值然后配置:
export NETEASE_MCP_ACCOUNT_WRITE_ENABLED=1
export NETEASE_MCP_COOKIE_FILE=/absolute/path/to/netease.sessionmacOS 用户可在官方客户端登录后运行:
npm run import:session:macos脚本只保存白名单 Cookie,不打印秘密值。POSIX 系统要求会话文件权限为
600;Windows 请把文件 ACL 限制为当前用户。创建、添加和移除歌曲工具
仍要求本次调用显式传入 confirm: true。
安全和边界
不保存账号密码,Cookie、
.env、会话文件和秘密文件均被 Git 忽略。公共模式对密码使用 scrypt;访问令牌只保存 SHA-256 摘要,网易云会话 使用 AES-256-GCM 按用户加密。
OAuth 使用授权码 + PKCE、资源绑定和短期访问令牌;个人 Token 可撤销。
账号写工具默认关闭,且只能修改当前会话账号拥有的歌单。
不提供音频下载、解密、会员绕过或版权限制规避。
不调用私有聊天接口,也不自动发送一起听消息。
macOS 播放控制可能需要“隐私与安全性 → 辅助功能/自动化”授权。
netease_next_track使用系统媒体命令,不读取画面或点击坐标,但只保证 普通播放模式;一起听房间是否接受切歌由官方客户端决定。
披露安全问题前请阅读 SECURITY.md。
开发
npm ci
npm testCI 在 macOS、Windows 和 Linux 的 Node.js 20/22 上运行。欢迎提交平台 适配器,但未在目标设备实测的能力必须标为实验性。
License
Available Tools
17 toolsnetease_control控制网易云播放A
控制官方 Mac 客户端播放/暂停、上一首或下一首,需要 macOS 辅助功能权限。
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already characterize this as a non-readonly, non-destructive mutating operation. The description adds valuable context beyond the annotations: it targets the official Mac client and requires accessibility permissions, which informs likely failure modes. It does not detail toggle behavior or no-op conditions, but the core side effect is transparent.
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 compact sentence that front-loads the action and target, then states the critical permission requirement. Every word earns its place; there is no filler or redundant restating of the tool name.
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 single-parameter control tool with annotations covering the safety profile, the description covers the target client, the available actions, and the key prerequisite. It could add a note about behavior when the client is not running, but given the low complexity, this is a minor gap rather than a serious omission.
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 0%, so the description carries the burden of explaining the single 'action' parameter. It compensates by listing the three actions in Chinese (播放/暂停、上一首或下一首), which maps directly to the enum values play_pause, previous, and next. For a self-explanatory enum, this is sufficient.
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 states a specific verb (控制/control) and resource (官方 Mac 客户端 / official Mac client), and enumerates the exact actions: play/pause, previous, next. This clearly conveys what the tool does and differentiates it from most siblings like netease_launch or netease_status, though it does not explicitly contrast with the potentially overlapping netease_next_track.
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 mentions a prerequisite (macOS accessibility permission) but gives no guidance on when to use this tool versus alternatives. Since netease_next_track exists as a sibling, the absence of any exclusion or selection criterion leaves the agent to guess which one to invoke for 'next'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_launch启动网易云音乐(macOS)A
通过 macOS 适配器启动已安装的官方网易云音乐客户端;其他平台会返回清晰的能力错误。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is transparent about the platform constraint and the error condition, which is a side-effect of the tool's behavior. The annotations (readOnlyHint=false, destructiveHint=false) align with a state-changing but non-destructive launch operation; there is no contradiction.
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 directly conveys the action, target, and platform limitation without any redundant wording. It is well-structured and easy to parse.
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 lack of parameters and output schema, the description covers the essential context: what the tool does, on which platform, and what happens on unsupported platforms. Success behavior is implicitly understood as launching the client.
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 tool has no parameters, so schema coverage is complete by default. The description accurately reflects this, requiring no additional parameter explanations.
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 purpose: launching the installed official NetEase Cloud Music client via the macOS adapter. It distinguishes this from sibling tools that handle playlists, song details, or playback control, making the action 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?
It explicitly notes that on non-macOS platforms, a clear capability error will be returned, guiding the user on platform compatibility. While it doesn't mention alternatives like netease_control for playback, the launch action is sufficiently distinct to be understood.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_listen_together_capabilities检查一起听能力ARead-only
检查当前设备的一起听能力。macOS 适配器可打开邀请;互动能力取决于网易云官方移动端。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals non-mutating behavior, and the description adds value by disclosing platform-dependent behavior: the macOS adapter can open invites, while interactive capabilities depend on the official mobile client. This goes beyond the structured 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?
Two short, front-loaded sentences deliver the essential purpose and platform nuance with no filler. Every clause 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?
For a zero-parameter read-only capability check, the description is mostly complete: it states what is checked and notes platform constraints. It stops short of describing the return value or result format, but the tool is simple enough that this is a minor gap.
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 tool has zero parameters, so the schema leaves nothing for the description to clarify. The description appropriately focuses on what the tool checks rather than parameter details.
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 '检查' with a clear resource '当前设备的一起听能力', making the tool's purpose unambiguous. It also implies a distinction from the sibling 'netease_listen_together_invite' by focusing on capability inspection rather than invitation action.
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 gives useful platform context ('macOS 适配器可打开邀请;互动能力取决于网易云官方移动端'), which implies the tool should be used to check whether an invite can be opened or interactive features are supported. However, it never explicitly tells the agent when to choose this tool over netease_listen_together_invite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_listen_together_invite邀请好友一起听A
通过 macOS 适配器打开“一起听”邀请界面。调用前必须确认用户明确希望发起邀请;好友或分享方式由用户在客户端中选择。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as non-read-only, open-world, and non-idempotent. The description adds valuable context beyond annotations: it operates through a macOS adapter, requires explicit user confirmation, and leaves friend selection to the user in the client. This clarifies what the tool does and does not do, without contradicting 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?
Two tight sentences: the first states the action, the second states the prerequisite and the user's role. Every sentence 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?
For a zero-parameter UI-launch tool with no output schema, the description provides the action, platform, precondition, and user responsibility boundaries. It doesn't mention whether a listen-together session or capability check is needed first, but that is a minor omission given the tool's simplicity.
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 has zero parameters, so schema description coverage is effectively 100%. The description goes beyond the empty schema by explaining that friends and sharing method are selected by the user in the client, which tells the agent that no parameters should be supplied and why they are absent.
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: open the 'Listen Together' invitation interface through the macOS adapter. It is specific about the resource and effect, and it is clearly distinct from sibling tools like netease_listen_together_capabilities or netease_control, which handle different aspects.
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 gives an explicit precondition: only call after confirming that the user explicitly wants to initiate an invitation. It also indicates that friend selection and sharing method are chosen by the user in the client, so the agent shouldn't ask for those details. It doesn't name alternative tools, but the triggering condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_lyrics读取网易云歌词ARead-only
按歌曲 ID 读取 LRC、翻译和罗马音歌词;不下载音频。
| Name | Required | Description | Default |
|---|---|---|---|
| songId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds behavioral detail beyond the annotations by specifying that no audio is downloaded and by enumerating the returned content types (LRC, translation, romaji). It omits error/auth/rate-limit behavior, so it is not a 5, but it provides meaningful extra transparency.
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 two compact clauses with no filler. It front-loads the core action and resource, and the exclusion is appended efficiently. 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?
For a single-parameter, read-only tool with no output schema, the description covers the input (song ID), the returned content (LRC, translation, romaji), and the notable non-behavior (no audio download). It could mention error cases or response format, but those are minor gaps for such a simple tool.
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 0%, so the description must compensate. '按歌曲 ID' confirms that the sole parameter songId is the lookup key for the lyrics, adding some meaning beyond the property name and regex pattern. It does not explain how to obtain a song ID or give additional guidance, which keeps it at an adequate but not rich level.
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 states a specific verb ('读取' / read) and a precise resource (LRC, translation, and romaji lyrics) accessed by song ID. It further distinguishes itself by explicitly noting it does not download audio, which separates it from audio-related siblings.
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 makes the target use case clear: fetch lyrics for a given song ID. It also gives a clear exclusion ('不下载音频'), but it does not name an alternative tool for downloading audio, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_next_track普通播放下一首A
让 macOS 直接向当前网易云播放器发送下一首命令。仅用于普通播放,不操控屏幕,也不用于一起听房间。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint=false and idempotentHint=false, so the agent knows this is a mutating, non-idempotent action. The description adds useful context: it is a 'direct' command to the 'current' player and does not control the screen, clarifying the mechanism and scope. It does not describe error behavior, but for this simple action the added context is meaningful.
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?
Two short sentences, both informative. The first states the action, the second defines applicability boundaries. No filler or repetition, front-loaded with the core action.
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 zero-parameter, no-output-schema action tool, the description covers the action, the target, and the critical exclusions (screen control and listen-together). It does not state prerequisites like the player being active, but given the simplicity and the sibling context, it is largely 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?
The input schema has zero parameters, so there is nothing for the description to explain about parameters. Baseline for 0 params is 4, and the description appropriately focuses on the action and scope rather than parameter details.
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 and object: '向当前网易云播放器发送下一首命令' (send next-track command to the current NetEase player). It explicitly distinguishes itself with '不操控屏幕,也不用于一起听房间', separating it from screen-control and listen-together sibling 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 description clearly states when to use it: '仅用于普通播放' (only for normal playback). It gives explicit when-not conditions by excluding screen control and listen-together rooms, but it does not name the alternative sibling tools that should be used in those cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_open_area打开网易云功能页A
打开私人 FM、下载管理或听歌识曲。只允许预设的 orpheus:// 路由。
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful behavioral fact that only preset orpheus:// routes are allowed, which the annotations do not cover. However, it does not disclose other behavioral traits such as whether the NetEase client must already be running or what UI side effects occur. The annotations are sparse and not contradictory.
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 concise sentence with the target areas listed first and the route restriction immediately after. No filler, every clause adds useful information.
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 one-enum navigation tool, the description plus schema cover target selection and the core restriction. The lack of an output schema is acceptable for a UI-navigation action. A note on whether the client must be launched first would be a minor 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 0%, so the description bears the semantic burden. It maps the enum values to understandable targets: private FM, downloads, and song recognition. This helps an agent select the correct 'area' value, though it does not document the exact orpheus:// URI mapping.
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 '打开' with a clear resource: the NetEase function page, listing the exact areas (private FM, downloads, song recognition). It distinguishes itself from content/control siblings through the 'orpheus:// route' constraint, but does not explicitly name any sibling tool for contrast.
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 guidance is given about when to use this tool versus netease_launch or netease_open_entity. The description states a route restriction, which is a constraint, not usage direction. An agent must infer from the area names and sibling names when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_open_entity在网易云打开资源A
通过 macOS 适配器在官方客户端中打开歌曲、歌单、专辑或歌手页面。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, opens the external world, and is non-destructive. The description adds a useful technical detail about the macOS adapter, which implies platform-specific behavior not covered by annotations, but does not disclose side effects like client focus changes or failure behavior if the client is not running. This is adequate given annotation coverage.
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 front-loads the primary action and resource types, with zero waste. It efficiently conveys the core functionality without 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?
For a simple open action with only two parameters and no output schema, the description is adequate. It specifies what is opened and the mechanism (macOS adapter). While it could mention prerequisites like client installation, the simplicity of the tool means the description is sufficiently complete for an agent to call it 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 coverage is 0%, but the description explicitly lists the allowed types (song, playlist, album, artist), which partially maps to the type parameter enum. It does not explain the id parameter beyond being an identifier, but for a simple two-parameter tool, the description provides enough context to infer usage without fully compensating for the schema gap.
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 clearly states the action (open) and the specific entity types (song, playlist, album, artist) via the official client, which distinguishes it from sibling tools like netease_open_area (which opens a different area) and netease_launch (which launches the app). The verb and resource are explicit and 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?
No guidance is provided on when to use this tool versus alternatives such as netease_song_detail or netease_search. There is no mention of prerequisites or exclusions, leaving the agent to infer that this is for opening pages 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.
netease_playlist_add_songs添加歌曲到网易云歌单A
将 1–100 首歌曲加入当前账号拥有的指定歌单;修改前会再次校验歌单归属。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 用户已明确确认添加这些歌曲 | |
| songIds | Yes | ||
| playlistId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds a safety-relevant behavior: '修改前会再次校验歌单归属' (re-validates playlist ownership before modifying). This is useful but does not disclose other behaviors such as duplicate handling, rate limits, or partial success behavior. It does not contradict 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?
One concise sentence that states the core action, quantity range, ownership constraint, and a behavioral safeguard. Every clause earns its place; no filler.
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 mutation tool with no output schema, the description covers the essential context: what it does, range, and ownership validation. It does not explain failure modes or duplicate behavior, but for a simple add-to-playlist operation this 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 coverage is only 33%, so the description must compensate. It explains that songIds must be 1–100 song IDs and that the operation applies to the current account's owned playlist. The confirm parameter's purpose is partly in the schema, but the description's mention of validation before modifying gives it practical context.
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 (add), the resource (songs to a playlist), the range (1–100), and the account-ownership constraint (current account's owned playlist). It distinguishes this from siblings like netease_playlist_remove_songs and netease_playlist_create.
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?
Explicitly says 'current account's owned playlist', informing when this tool is appropriate. It does not explicitly name alternatives, but the sibling list makes the distinction clear. The ownership check is a use-condition that helps an agent avoid attempting to add to playlists the user does not own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_playlist_auth_status网易云歌单账号能力状态ARead-only
只检查账号写入功能是否已启用、是否配置会话文件;不返回任何 Cookie 值。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
注解已声明 readOnlyHint=true,描述在此基础上补充了具体检查项和“不返回任何 Cookie 值”的敏感信息边界,增强了行为透明度;但未说明返回值结构或可能的状态枚举。
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?
描述仅用一句话完成,前段说明核心检查动作,分号后明确否定边界,信息密度高且无冗余。
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?
对于零参数、只读的状态检查工具,描述已覆盖检查范围和敏感信息排除项;但缺少输出 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 覆盖率为 100%,描述无需补充参数含义;按 0 参数基线评为 4。
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?
描述使用明确的动词“检查”和具体对象“账号写入功能是否已启用、是否配置会话文件”,清楚指明了工具的作用范围,并且通过“只检查”和“不返回任何 Cookie 值”与歌单写入、状态查询等兄弟工具区分开。
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?
描述暗示该工具用于确认账号写入能力和会话配置状态,但没有明确说明在什么场景下应使用它而非其他状态类或写操作类工具,也未给出排除条件或前置流程指引。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_playlist_create创建网易云歌单A
在当前登录账号下创建公开或隐私歌单。必须在用户明确确认本次创建后调用。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| confirm | Yes | 用户已明确确认创建这个歌单 | |
| isPrivate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-idempotent write. The description adds useful context: the playlist is created under the current logged-in account and requires explicit user confirmation. It does not explain duplicate-creation behavior or failure modes, but those are partially anticipated by idempotentHint=false and the creation scope.
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?
Two short sentences with no filler: the action is front-loaded and the critical confirmation rule is separated into its own sentence. Every phrase 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?
For a simple creation tool with no output schema, the core invocation requirements—name, confirmation, and optional privacy—are discoverable from the description plus input schema. Missing error/return details are minor because the user-facing confirmation condition is clearly stated and defaults are provided by 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 only 33%, so the description must compensate. It does this by mapping 'public or private' to the isPrivate parameter and restating the confirmation requirement for the confirm parameter. The name parameter is self-evident from the schema constraints, so the overall parameter meaning is adequately conveyed.
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?
States a specific action (create) on a specific resource (Netease playlist) with scope ('under current logged-in account') and visibility ('public or private'). This operationally distinguishes it from sibling tools like netease_playlist_add_songs, netease_playlist_get_songs, and netease_playlist_list, so an agent can select it without opening the schema.
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?
Contains a clear invocation condition: call only after the user explicitly confirms this creation, which is essential for a mutation tool. It does not explicitly name alternatives or when-not-to-use cases, but sibling tools are operationally distinct enough that 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.
netease_playlist_get_songs获取网易云歌单歌曲列表ARead-only
读取指定歌单(必须是当前账号拥有的)中的所有歌曲信息,包括歌曲ID、名称、歌手、专辑等。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回歌曲数量上限,默认为100 | |
| playlistId | Yes | 歌单 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and non-destructive, so safety is covered. The description adds beyond annotations by disclosing the ownership requirement, which is an access/auth condition, and by summarizing the returned fields. It does not mention pagination or error behavior, but these are less critical for a simple read 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?
A single, front-loaded sentence that states operation, object, constraint, and output in compact form. No waste.
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-only tool with 2 params and annotations covering safety, the description covers scope, ownership requirement, and output fields. It lacks an explicit note on how pagination/limit works in practice, but the schema documents the limit, so the definition is nearly 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%, so both playlistId and limit are already documented. The description does not add parameter semantics beyond the schema; it focuses on the output content, which is acceptable given the 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 uses a specific verb ('读取') and resource ('指定歌单'), and clearly states it returns song information including ID, name, artist, and album. The ownership constraint ('必须是当前账号拥有的') helps differentiate it from playlist-level or song-detail 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?
It explicitly states the prerequisite that the playlist must be owned by the current account, which is clear usage context. It does not name alternatives or exclusions, but the condition is enough to route an agent correctly for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_playlist_list列出我创建的网易云歌单ARead-only
使用本机登录会话列出当前账号拥有的歌单,供后续添加或移除歌曲。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful auth and scope context ('使用本机登录会话', '当前账号拥有'), but it does not address failure modes such as missing login session or the exact return structure.
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 short sentence carries the action, scope, auth context, and downstream purpose. There is no filler or repetition of the name/title.
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 parameterless read-only list tool, the description gives essential context: auth session, account scope, and downstream purpose. The only missing piece is a precise description of the return structure, but '列出' makes a list of playlists the obvious result.
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 tool has zero parameters and schema description coverage is 100%, so the schema fully defines the input surface. No parameter elaboration is needed from the description.
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 '列出' with clear resource '当前账号拥有的歌单', and the title further says '我创建的网易云歌单'. The phrase '供后续添加或移除歌曲' signals it is a listing/preparation tool, distinguishing it from modification/song-detail siblings.
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 explicitly frames the tool as a prerequisite for '后续添加或移除歌曲', giving a concrete when-to-use signal. It does not name alternatives or exclusions, but for this simple list operation the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_playlist_remove_songs从网易云歌单移除歌曲ADestructive
从当前账号拥有的指定歌单移除 1–100 首歌曲;必须明确确认,且会校验歌单归属。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 用户已明确确认移除这些歌曲 | |
| songIds | Yes | ||
| playlistId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-read-only. The description adds useful behavioral context: explicit user confirmation is required, playlist ownership is validated, and the operation is scoped to the current account's playlist. It does not contradict the 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?
The description is a single compact sentence that front-loads the action and scope, then states the constraints. Every part adds necessary information and there is no 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?
For a destructive three-parameter tool with no output schema, the description covers what is removed, the target playlist, the quantity limit, the confirmation requirement, and the ownership check. An agent has enough information to select and 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 low (33%), but the description maps to all three parameters: playlistId ('specified playlist'), songIds ('1–100 songs'), and confirm ('must explicitly confirm'). It also adds the ownership-verification behavior for playlistId, going beyond the bare schema patterns.
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 ('移除' / remove), the resource ('songs from a specified playlist owned by the current account'), and the 1–100 count limit. This makes it immediately distinguishable from sibling tools such as add_songs or get_songs.
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 context: use this when removing songs from an owned playlist, and it highlights the ownership and confirmation preconditions. It does not explicitly name alternative tools or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_search搜索网易云歌曲ARead-only
通过 music.163.com 的匿名只读接口搜索歌曲,不读取账号 Cookie。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | 歌曲、歌手或关键词 | |
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description explicitly mentions 'anonymous read-only interface' and 'does not read account cookies', reinforcing the readOnlyHint annotation with additional privacy context.
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 concise sentence covers purpose and key behavioral constraints without unnecessary verbosity.
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?
Missing return format or result description, no pagination explanation beyond parameters, and no error or rate-limit context. The absence of an output schema makes this gap more significant.
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?
Only the query parameter is described ('song, artist or keyword'), while limit and offset lack descriptions. Schema coverage is 33%, and the description does not compensate for the missing parameter semantics.
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 clearly states the tool searches songs via a specific interface, with a specific verb 'search' and resource 'songs', distinguishing it from sibling tools like detail or lyrics.
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 alternative tools. It implies anonymous/read-only usage but does not state when to prefer search over song_detail or playlist operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_song_detail读取网易云歌曲详情ARead-only
按网易云歌曲 ID 读取名称、歌手、专辑、时长和官方页面链接。
| Name | Required | Description | Default |
|---|---|---|---|
| songIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds value by listing the concrete output fields (name, artist, album, duration, official page link), which is especially useful because no output schema exists. It doesn't discuss error behavior or availability, but for a read-only metadata lookup this is adequate.
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 short sentence, front-loaded with the input mode and output fields, with no filler or repetition. Every part carries meaningful information.
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?
This is a simple one-parameter read-only lookup with annotations and no output schema. The description covers the required input (song IDs) and the output fields, giving an agent enough to select and invoke it correctly. No critical missing context, such as destructive effects or authentication requirements, is relevant given readOnlyHint.
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 0%, so the description must clarify the parameter. It does: songIds are NetEase Cloud song IDs used to fetch details. Format and size limits are left to the schema pattern and maxItems, which is acceptable.
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 ('读取' / read) and a precise resource: NetEase Cloud song details by song ID, enumerating the returned fields (name, artist, album, duration, official page link). This clearly separates it from siblings such as netease_lyrics (lyrics) and netease_search (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?
The phrase '按网易云歌曲 ID' implies the tool is for when the agent already has song IDs and needs metadata. However, it does not explicitly say when to prefer this over netease_search or netease_lyrics, nor does it name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netease_status网易云客户端状态ARead-only
检查当前运行平台、远程能力和可用的本地播放器适配器;macOS 还会读取客户端状态。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly frames the tool as a read-only check ('检查' / '读取'), and the readOnlyHint annotation confirms no side effects. The macOS-specific behavior is also disclosed, adding useful transparency beyond the annotation.
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 two short sentences with no filler. The primary scope is stated first, and the platform-specific detail is added concisely.
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 low-complexity, parameterless status tool, the description provides enough context to understand what is being checked. It covers platform, remote capabilities, adapters, and the macOS exception, which is sufficient even without an output 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?
The input schema has no parameters, so there is no parameter documentation gap. The description does not need to explain parameters that do not exist.
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 ('检查' / checks) and names concrete resources: current platform, remote capabilities, local player adapters, and macOS client status. This clearly distinguishes it from sibling tools like playlist auth or playlist management.
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 makes it clear the tool is for checking runtime status and capabilities, which implies when it should be used. It does not explicitly mention alternatives, but the scope is distinct enough from siblings that usage context is clear.
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.
17 tool updates
v0.6.0- First observed
netease_control - First observed
netease_launch - First observed
netease_listen_together_capabilities - First observed
netease_listen_together_invite - First observed
netease_lyrics - First observed
netease_next_track - First observed
netease_open_area - First observed
netease_open_entity - First observed
netease_playlist_add_songs - First observed
netease_playlist_auth_status - First observed
netease_playlist_create - First observed
netease_playlist_get_songs - First observed
netease_playlist_list - First observed
netease_playlist_remove_songs - First observed
netease_search - First observed
netease_song_detail - First observed
netease_status
TDQS
Scored across 17 tools
Most tools map to clearly distinct resource-action pairs: playlist operations, song metadata/search, lyrics, and macOS client controls are well separated. The main overlap is netease_next_track versus netease_control, which both cover the next-track action, and netease_status versus netease_playlist_auth_status are somewhat similar in name but distinct in purpose.
All tools use a consistent snake_case format with the netease_ prefix, which is readable and predictable. There are minor deviations: some names are noun-like (song_detail, lyrics, status) while others are verb-based (search, launch, playlist_create), but the overall pattern is still recognizable.
17 tools is slightly above the ideal range but reasonable for a server that covers playlist management, song discovery, lyrics, and macOS client control. Most tools are narrow and functional, though a few could potentially be consolidated without much loss.
Playlist management covers create, list, add, remove, and read operations, but lacks playlist rename or delete. Playback control is present, but there is no way to retrieve the current playing track or directly play a specific song, which are notable gaps for a music-focused server.
Maintenance
Related MCP Connectors
MCP server for Yoto: manage cards, tracks, icons and family devices from any MCP client.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
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.1377MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI assistants to search and retrieve music data (songs, lyrics, playlists, albums, artists) from Netease Cloud Music.MIT
- AlicenseNot gradedqualityAmaintenanceMCP 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 gradedqualityCmaintenanceEnables searching NetEase Cloud Music and safely managing playlists through a local stdio MCP server with automatic backend lifecycle management.MIT