Skip to main content
Glama
Code-MonkeyZhang

Cloud Music MCP Server

网易云音乐 MCP 服务器

Python 3.10+ License: MIT Pull Requests Welcome

基于 网易云音乐开发平台 标准 API 实现

🎵 为您的 AI Agent 插上音乐的翅膀

这是一个基于 网易云音乐 官方API 的本地MCP服务器。可以让用户通过 Claude Code, OpenCode 等 AI Agent以原生 API 的方式点歌!

📢 Update

  • 2026-06-29 🎉 新增歌单管理 — AI 现在可以帮你创建歌单并批量添加歌曲,一句话完成「搜歌 → 建单 → 加歌」全流程。

  • 2026-06-29 🔎 新增资料查询 — 支持查询歌单详情、专辑信息、歌手信息以及你的收藏列表。

  • 2026-06-16 🔧 修复安装问题 — 替换已失效的 PyPI pyncm 为自维护 fork,补齐 build-system,并清除误提交的登录态等敏感文件。

Related MCP server: qq-music-mcp

✨ 功能特性

  • 🤖 让 AI Agent 为你播放音乐:通过自然语言指令控制音乐播放。只需说“给我放首热血的歌”,Agent 就会为你搞定一切。

  • 🔓 扫码登录:支持使用手机 App 扫码安全登录。登录状态(Cookies)仅保存在本地,保护您的隐私。

  • 🧠 个性化推荐:完美接入您的每日推荐歌单。Agent 会根据您的听歌品味来播放音乐。

  • 🔍 搜歌功能:支持按关键词搜索歌曲、歌手或专辑,并直接播放。

  • 📝 歌单管理:不只是放歌,还能帮你创建歌单、批量加歌。说一句"建个某个主题的歌单",AI 就会自动搜歌、建单、加歌一气呵成。

  • 🎛️ 桌面端联动:通过 URL Scheme 唤起网易云音乐客户端播放,无缝衔接原生体验。

🛠️ 工具列表

本服务器向 AI Agent 暴露以下工具:

工具名称 (Tool Name)

参数 (Parameters)

功能描述 (Description)

cloud_music_login

启动扫码登录流程 (模拟官方 App)。

cloud_music_status

检查当前登录状态和用户信息。

cloud_music_get_daily_recommend

获取今日推荐歌曲列表。

cloud_music_my_playlists

获取用户的所有歌单(包括创建的和收藏的)。

cloud_music_playlist_detail

playlist_id: 歌单 ID

获取歌单详情及歌单内所有歌曲。

cloud_music_create_playlist

name: 歌单名称 <br>privacy: 是否隐私(默认否)

创建新歌单。

cloud_music_add_to_playlist

playlist_id: 歌单 ID <br>track_ids: 歌曲 ID 列表

批量添加歌曲到指定歌单。

cloud_music_search

keyword: 关键词 <br>category: 类型(默认'song')

按关键词搜索歌曲、专辑、歌手或歌单。

cloud_music_album_info

album_id: 专辑 ID

获取专辑详情及歌曲列表。

cloud_music_artist_info

artist_id: 歌手 ID

获取歌手详情和热门歌曲 Top 10。

cloud_music_my_subscriptions

category: 'artists'/'albums'

获取收藏的歌手或专辑列表。

cloud_music_play

id: 资源ID <br>type: 类型 ('song'/'playlist')

播放指定的歌曲或歌单(自动唤起桌面应用)。

🚀 安装与使用

前置条件

  • 操作系统:macOS 或 Windows

  • Python 版本:3.10 或更高

    • macOS:通常自带,运行 python3 --version 检查

    • Windows:从 python.org 下载安装

  • 安装网易云音乐桌面客户端

  • LLM 客户端(如 Claude Desktop、OpenCode 等)

安装步骤

1. 安装 uv 包管理器

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

2. 克隆项目并安装依赖

# 克隆项目
git clone https://github.com/Code-MonkeyZhang/cloud-music-mcp.git
cd cloud-music-mcp

# 创建虚拟环境
uv venv

# 激活虚拟环境
source .venv/bin/activate  # macOS/Linux
# .venv\Scripts\activate   # Windows

# 安装项目(可编辑模式)
uv pip install -e .

配置 LLM 客户端

Claude Desktop

找到配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

添加以下配置:

{
  "mcpServers": {
    "cloud-music": {
      "command": ["/绝对路径到/cloud-music-mcp/.venv/bin/cloud-music-mcp"],
      "enabled": true
    }
  }
}

重要:将 /绝对路径/到/cloud-music-mcp 替换为项目的实际绝对路径。Windows 用户请使用双反斜杠 \\ 或正斜杠 /

开启日志(可选)

如需调试,可在配置中添加环境变量:

{
  "mcpServers": {
    "cloud-music": {
      "command": ["/绝对路径/到/cloud-music-mcp/.venv/bin/cloud-music-mcp"],
      "enabled": true,
      "env": {
        "MCP_LOG_ENABLE": "true"
      }
    }
  }
}

日志说明:

  • 默认状态:日志功能默认关闭

  • 开启后:日志会以 session_YYYYMMDD_HHMMSS.log 的格式保存在项目根目录的 logs/ 文件夹中

使用方法

  1. 重启 LLM 客户端(如 Claude Desktop)

  2. 登录网易云音乐

    • 在对话中输入:"帮我扫码登录网易云音乐"

    • AI 会调用 cloud_music_login 工具,弹出二维码

    • 用手机网易云 App 扫码登录

    • 登录状态(Cookies)仅保存在本地,保护隐私

  3. 开始使用

    • 播放音乐:"给我放首歌"

    • 获取推荐:"看看今日推荐有什么"

    • 搜索歌曲:"搜一下周杰伦的歌"

    • 创建歌单:"帮我建个周杰伦热门歌曲的歌单"

    • 播放歌单:"播放我的收藏歌单"

Available Tools

12 tools
cloud_music_add_to_playlistC

添加歌曲到指定歌单 args: playlist_id: 目标歌单 ID track_ids: 要添加的歌曲 ID 列表,例如 [123, 456]

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idsYes
playlist_idYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits beyond the basic operation. It does not mention error handling, rate limits, or whether the tool is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two lines with no redundant information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with no output schema and no annotations, the description is too sparse. It does not specify behavior like whether duplicates are handled or what happens on success/failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds basic parameter names and examples in Chinese, providing some meaning beyond raw schema types. However, it lacks details like value ranges or uniqueness constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add songs to specified playlist', which is a specific verb-resource pair and distinguishes from sibling tools like create_playlist or playlist_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as whether it appends or replaces tracks, or any prerequisites like needing a valid playlist ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_album_infoB

获取专辑详情,包括专辑信息和歌曲列表 args: album_id: 专辑 ID

ParametersJSON Schema
NameRequiredDescriptionDefault
album_idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear full burden. It only states the tool retrieves album details and song list, with no mention of behavioral traits like read-only nature, authentication requirements, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the purpose. Every word contributes meaning; there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description covers the basic purpose. However, it omits any mention of authentication or expected behavior, which would be helpful for a complete understanding. It is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description merely repeats the parameter name and type ('album_id: 专辑 ID') without adding any context such as where to find the album_id, format constraints, or default values. This adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states '获取专辑详情,包括专辑信息和歌曲列表' (Get album details, including album info and song list), clearly identifying the tool's function as retrieving album details and song list. It is distinct from sibling tools like cloud_music_artist_info or cloud_music_playlist_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when album details are needed, but lacks explicit guidance on when to use this tool over alternatives or any prerequisites. No exclusions or contextual conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_artist_infoB

获取歌手详情和热门歌曲 Top 10 args: artist_id: 歌手 ID

ParametersJSON Schema
NameRequiredDescriptionDefault
artist_idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or side effects. The description only states the action and one parameter, leaving the agent uninformed about operational characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two lines), front-loaded with the purpose, and contains no fluff. The 'args:' line is slightly redundant but not harmful. Efficient for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description minimally explains the outcome (artist details and top 10 songs). However, it lacks specifics about return structure, error handling, or usage context. Not fully complete but adequate for a basic retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaning for the single parameter: 'artist_id: 歌手 ID' (artist ID). This clarifies the parameter's purpose beyond the schema's type-only definition. However, it lacks details like where to find the ID or any constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states '获取歌手详情和热门歌曲 Top 10' (get artist details and top 10 popular songs), which is a specific verb+resource combination. It clearly distinguishes from siblings like album_info or search by focusing on artist details and top songs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., search, album_info). No mention of prerequisites, context, or exclusions. The description only states what it does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_create_playlistC

创建新歌单 args: name: 歌单名称 privacy: 是否设为隐私歌单,默认为 False

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
privacyNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only mentions the action and parameters, but does not describe side effects (e.g., overwriting existing playlists), authentication needs, or success/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the action. However, it is under-specified; conciseness should not sacrifice completeness. It earns a 3 as it is not verbose but lacks necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and low parameter count, the description should cover return value, errors, and usage. It provides none of that, leaving a gap in how the agent should handle responses or edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add value. It lists parameters with basic labels ('name: 歌单名称', 'privacy: ...默认 False') but provides no additional detail beyond the schema (e.g., allowed name length, privacy implications). Insufficient for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states '创建新歌单' meaning 'create new playlist', specifying the verb and resource. It distinguishes from sibling tools like cloud_music_add_to_playlist and cloud_music_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Missing context such as prerequisites (e.g., login requirement) or when creation might fail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_get_daily_recommendA

获取今日推荐歌曲 返回歌曲列表 (包含 ID, 歌名, 歌手)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool returns a list of songs with specific fields, which informs the agent about the output. However, it does not mention if authentication is required or if the tool is read-only, which are relevant behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences, zero wasted words. It front-loads the purpose and immediately states what is returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description is complete. It explains what the tool does and what the response contains, which is sufficient for an agent to decide to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100% (empty schema). The description adds no parameter info because none exist. According to guidelines, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (获取 - get) and the resource (今日推荐歌曲 - today's recommended songs). It specifies that it returns a song list with ID, name, and singer, which is distinct from sibling tools like search or play.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you want today's recommendations), but does not explicitly state when to use it over siblings or mention any prerequisites like login. However, the context signals (0 params) and simple function make the usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_loginA

登录网易云音乐 (模拟 OAuth 流程) 调用此工具后,电脑会弹出一张二维码图片。 请用网易云音乐 App 扫描该二维码。 扫描成功后,工具会自动保存登录状态。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully explains behavior: pops up QR image, requires app scan, saves login state. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter login tool with no output schema, the description sufficiently covers the process and outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. Description adds no param info, but baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb '登录' (login) and resource '网易云音乐' (NetEase Cloud Music), and distinguishes from siblings as the only authentication tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes the interactive process (QR code, scanning, saving state) and implicitly when to use (when authentication needed). No explicit alternatives, but none exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_my_playlistsA

获取我的歌单 (包括创建的歌单和红心歌单)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states basic retrieval, no details on auth, side effects, or response structure. For a simple read tool, more transparency expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single clear sentence, no wasted words. Front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameter-less tool, description covers core purpose and playlist types. Lacks output specification but acceptable given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; description does not need to add semantics. Schema coverage is 100% (trivially). Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb '获取' (get) and resource '我的歌单' (my playlists), including specific categories created and hearted. Distinguishes from sibling tools like cloud_music_playlist_detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when needing user's own playlists, but no explicit when-not or alternatives. Context is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_my_subscriptionsA

获取我收藏的歌手或专辑 args: category: 类型,'artists'(歌手) 或 'albums'(专辑),默认为 'artists'

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoartists

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states '获取' (get), implying read-only behavior. It fails to disclose authentication requirements, rate limits, or whether the tool returns a list or single item. The description adds minimal context beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two lines: first line states the purpose, second line details the parameter. Every word earns its place, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description covers purpose and parameter meaning, but it omits what the return value looks like (e.g., list of items) and whether authentication is required. Given its simplicity, it is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the description explicitly explains the 'category' parameter: its type, allowed values ('artists' or 'albums'), and default ('artists'). This adds meaning beyond the schema, compensating for the lack of schema-level documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb '获取' (get) and the resource '我收藏的歌手或专辑' (my subscribed singers or albums). It distinguishes from siblings like 'cloud_music_my_playlists' by focusing on subscriptions to artists/albums rather than playlists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'cloud_music_search' or 'cloud_music_my_playlists'. There are no conditions, exclusions, or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_playA

唤起客户端播放指定歌曲或歌单 args: id: 歌曲ID 或 歌单ID type: 'song' (单曲) 或 'playlist' (歌单)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
typeNosong

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions invoking a client (唤起客户端) which implies an external action, but does not disclose side effects, required client state, or what happens on failure. No annotations to fill gaps, so description carries full burden but is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence for purpose, then clear parameter explanations. Every part is useful with no redundancy. Front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description covers the basic function and parameters. However, it lacks info on return values, error handling, and client dependencies, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning: id is explained as '歌曲ID 或 歌单ID' and type as 'song' or 'playlist'. This clarifies the parameters beyond the raw schema types, though format details are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool plays a specified song or playlist (唤起客户端播放指定歌曲或歌单), distinguishing it from siblings like cloud_music_add_to_playlist or cloud_music_status. The verb 'play' and resource 'song/playlist' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, e.g., when to choose this over cloud_music_my_playlists or cloud_music_status. No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_playlist_detailC

获取歌单详情,包括歌单内所有歌曲 args: playlist_id: 歌单 ID

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYes

TDQS

C2.9/5.0
Behavior2/5

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 only states the basic function (get details with songs). It does not disclose side effects, permissions, error behavior, or rate limits. As a read operation, it could hint at non-destructiveness, but it remains implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence plus an args line) with no wasted words. It is appropriately front-loaded. However, it is slightly terse; additional context would not harm conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should explain the return structure (e.g., list of songs) and potential errors. It mentions 'including all songs' but lacks details on format or pagination. For a simple tool, it is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the schema: it labels 'playlist_id' as '歌单 ID' (playlist ID). With 0% schema description coverage, the description should elaborate on the parameter's source, format, or constraints, but it only repeats the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states '获取歌单详情,包括歌单内所有歌曲' (Get playlist details, including all songs in the playlist). It uses a specific verb ('Get') and resource ('playlist details'), and the scope (all songs) distinguishes it from sibling tools like add_to_playlist or create_playlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 vs alternatives. It does not mention use cases, prerequisites, or when not to use it. Given the sibling tools (e.g., search, my_playlists), the agent lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_music_statusA

检查网易云音乐当前是否已登录

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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 only states the action, but does not disclose any behavioral traits such as what happens if not logged in or any side effects. However, the tool is inherently benign and read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous information. It is front-loaded and concise, with every word serving a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters, no output schema, and no annotations. The description adequately covers the tool's purpose and behavior for its intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema already provides complete information. The description adds no extra parameter details, which is acceptable given zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: checking login status of NetEase Cloud Music. It uses a specific verb 'check' and resource 'login status', and effectively distinguishes from sibling tools like playlists and search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (to verify login status), and no explicit alternatives are needed given the simplistic nature. However, it does not provide explicit when-not or alternative guidance.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedcloud_music_add_to_playlist
    • First observedcloud_music_album_info
    • First observedcloud_music_artist_info
    • First observedcloud_music_create_playlist
    • First observedcloud_music_get_daily_recommend
    • First observedcloud_music_login
    • First observedcloud_music_my_playlists
    • First observedcloud_music_my_subscriptions
    • First observedcloud_music_play
    • First observedcloud_music_playlist_detail
    • First observedcloud_music_search
    • First observedcloud_music_status

TDQS

A3.6/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose, from login and search to playlist management and playback. There is no ambiguity between tools.

Naming Consistency5/5

All tools follow a consistent 'cloud_music_' prefix with snake_case verb_noun pattern (e.g., add_to_playlist, create_playlist, get_daily_recommend), making naming predictable.

Tool Count4/5

12 tools are appropriate for a cloud music server, covering search, details, playlist management, login, and playback. Slightly over the ideal range but each tool earns its place.

Completeness3/5

Core workflows like search, get details, create playlist, add tracks, and play are covered. However, notable gaps exist: no tools to remove tracks, delete playlists, or manage likes, limiting full lifecycle coverage.

Maintenance

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Integrates QQ Music API with MCP, enabling LLMs to search music, retrieve song details, lyrics, and playback URLs.
    10
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Controls the official NetEase Cloud Music desktop client on Windows, enabling AI to search, play, manage queues, and adjust playback settings via a local control channel.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Code-MonkeyZhang/cloud-music-mcp'

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