Single tool with acceptable naming and basic schema, but descriptions lack depth and output schema is not explicitly documented. The tool follows a verb-noun pattern (search_music) which is correct, but the description, while present, is generic and doesn't address when to use this tool vs alternatives or how to handle pagination. Parameters have types and defaults, which is good, but lack detailed constraints. The filtering logic in the implementation suggests the output structure, but there is no formal output schema documentation visible in the code or tool definition.
Search for music tracks Args: keyword: Search keyword or phrase page: Page number for pagination (default: 1) num: Maximum number of results to return (default: 20) Returns: List of music tracks matching the search criteria
Output schema not documented. Tool returns a filtered list of song objects, but the response structure is not formally declared. LLMs cannot reliably extract fields like 'id', 'mid', 'name' from unstructured results.
Tool description is generic and lacks depth. It does not explain when to call search_music vs other music lookup tools (none exist in this server, but the pattern applies), what constraints exist on keyword length, whether searches are case-sensitive, or whether pagination wraps around. Description is 118 characters, acceptable length, but lacks LLM-actionable detail on selection criteria.
Parameter descriptions lack constraints. 'num' is described as 'Maximum number of results to return (default: 20)' but does not specify the valid range. Can it be 1? 1000? Unbounded integers invite LLMs to pass absurd values that waste API quota or timeout.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
No error handling guidance. The tool calls qqmusic_api.search.search_by_type() but does not document what happens if the API fails, the keyword is empty, or page is out of range. Errors are not caught or transformed into actionable recovery messages for the LLM.
Pagination response structure not documented. The tool accepts 'page' and 'num' parameters but does not return a total_count, next_page, or has_more flag. Without pagination metadata, LLMs cannot determine if they've exhausted results or navigate large result sets efficiently.