Skip to main content
Glama
crates-music-mcp

crates-music-mcp

by guohangbk

daily_recommendations

Fetch today's music recommendations from QQ Music, NetEase, or Kugou to assemble a daily playlist and inspect recommended songs and sources.

Instructions

Today's platform recommendations (the raw material for a daily playlist).

service: qq_music | netease | kugou QQ: 雷达推荐 + 猜你喜欢 + 推荐歌单;Netease: 每日推荐 + 推荐歌单; 酷狗: 每日推荐(未登录也能拉)。 Returns {"ok","recommended","sources","songs":[{"name","artist"}],"diagnostics"}.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "daily_recommendations"
  }
}

Input Schema

NameRequiredDescriptionDefault
serviceNoqq_music

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does so reasonably: it discloses the per-platform source composition (QQ radar + guess-you-like + recommended playlists; Netease daily + playlists; Kugou daily) and a genuine operational nuance — Kugou works without login, implying QQ/Netease do not. It does not state failure behavior when unauthenticated for QQ/Netease or whether results are cached/paginated.

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?

Front-loaded with the core purpose, then compact per-platform breakdown, then return shape. Dense but nearly every token carries information; only the semicolon-separated platform list is slightly dense to parse on a first read.

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 single optional-parameter read tool with an output schema, this covers purpose, per-platform sourcing, auth nuance, and the response shape. The remaining gap is guidance on auth failure paths and whether to call a credential sibling first, which matters given the stated login dependency for QQ/Netease.

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 reported as 0%, so the description must supply parameter meaning; it does repeat the three service values and, more usefully, explains what content each platform returns, which is real added meaning beyond the enum. However it never mentions the default (qq_music) or what happens if service is omitted, leaving that to the schema's $defs.

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?

Names the resource precisely (today's platform recommendations) and adds a distinguishing gloss — 'the raw material for a daily playlist' — which separates it from the sibling create_daily_playlist. An agent can tell it is a read of upstream recommendation feeds rather than a playlist write, though it never names the sibling explicitly.

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?

Usage is implied through the 'raw material for a daily playlist' framing, suggesting it is called before playlist creation, and the per-platform source list hints at what each choice yields. There is no explicit when-to-use/when-not-to-use statement or prerequisite call chain (e.g. it does not say to call credential_status first for QQ/Netease).

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