Skip to main content
Glama
crates-music-mcp

crates-music-mcp

by guohangbk

qq_recent

Returns recently recommended tracks from the last 14 days for deduplication, not listening history; retained as a legacy alias for older prompts.

Instructions

⚠️ 名字误导:与 QQ 平台无关,返回的也不是听歌历史。

它是 recent_recommended_tracks 的旧名字(我们最近 14 天推荐过的歌,用于去重), 保留只为兼容老提示词。想要"用户最近听过的歌"用 recent_played(service=...)。

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": "qq_recent"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior4/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, and it does disclose the key trait — this is a legacy alias with the same behaviour as recent_recommended_tracks, scoped to a 14-day recommendation window. It does not discuss authentication, rate limits, or whether results are paginated, though with zero parameters and an output schema covering return values, those omissions are minor.

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 misleading-name warning comes first, then the true identity of the tool, then the recommended alternative — all in three short lines with no wasted wording. The deprecation note earns its place because it changes which tool the agent should pick.

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 (zero parameters, output schema present), so the description only needs to cover identity and routing, and it does both completely. An agent knows what it returns, that it is deprecated, and what to call instead.

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 takes zero parameters, which sets the baseline at 4; there is no parameter meaning for the description to add. The description could have noted that it accepts no filters, but with 100% schema coverage that is already clear.

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 states a specific verb and resource — it returns the tracks recommended in the last 14 days, used for de-duplication — and explicitly says it is the old name of recent_recommended_tracks. It also rules out the two most likely misreadings: the name says QQ, and the word 'recent' suggests listening history.

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

Usage Guidelines5/5

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

The guidance is explicit in both directions: this alias is kept only for compatibility with old prompts, and anyone who wants the songs a user recently played should call recent_played(service=...) instead. The description names the replacement and the condition that selects it, leaving nothing for the agent to infer.

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