Single tool 'general_search' has a basic description (89 chars) and minimal parameter documentation. The tool name lacks clarity on what 'general' means vs domain-specific search. Input schema is present with type and description for 'keyword', but output schema is undocumented (returns 'dict' with no field specification). No error handling guidance, no pagination support despite search results likely being large, and no indication of result limits. The implementation directly wraps bilibili_api without sanitization or result shaping.
Search Bilibili API with the given keyword. Args: keyword (str): Search term to look for on Bilibili. Returns: dict: Dictionary contains the search results from Bilibili.
Output schema completely undocumented. Tool returns 'dict' with no field definitions, forcing LLM to guess structure and preventing downstream tool chaining.
No pagination support. Search results likely contain many items but tool provides no limit, offset, or cursor parameters. Large result sets will exhaust context window.
Tool name 'general_search' is vague. Does not indicate what is being searched (Bilibili videos? users? channels?). Rename to 'search_bilibili_videos' or similar to clarify scope.
No error handling or recovery guidance. Tool will fail silently on invalid keywords, network errors, or API rate limits with no actionable message for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Raw API response returned without filtering. Bilibili API likely returns verbose metadata, audit fields, and internal IDs that dilute signal and waste tokens.