MCP server for Weibo open APIs (token, search, user status, hot search, crowd).
Server has 5 tools with basic schemas and descriptions. Tool naming is inconsistent (weibo_token, weibo_search, weibo_status, weibo_hot_search, weibo_crowd). The weibo_crowd tool is a mega-tool with 19 optional parameters handling 9 different actions, violates single-responsibility principle. Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Input schemas use Zod validation but lack comprehensive parameter descriptions. No output schema documentation. Error handling is minimal (only basic required-param checks visible). Tool annotations present (readOnlyHint, destructiveHint) but inconsistently applied.
Weibo crowd operations. Read-only actions: topics, topic-details, timeline, comments, child-comments. Write actions: post, comment, reply. Utility: refresh.
Get hot search list by category.
Search Weibo content by query and return source metadata.
Get statuses posted by the authenticated Weibo user.
Get current Weibo API token and expiry metadata.
weibo_crowd violates single-responsibility principle: 9 actions (topics, topic-details, timeline, post, comment, reply, comments, child-comments, refresh) bundled into one tool with 19 optional parameters. LLM cannot infer which params apply to which action.
No output schema documentation. Tools return JSON via toTextResult() but LLM has no visibility into response structure (fields, types, pagination). Prevents downstream tool chaining and forces LLM to parse unstructured text.
weibo_crowd parameter descriptions lack action-specific guidance. E.g., 'topic' is described as 'Topic name for timeline/post' but LLM cannot determine which actions require it. No documentation of parameter dependencies or mutual exclusivity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Error handling is minimal. Only basic required-param validation visible (e.g., 'topic is required when action=timeline'). No recovery guidance, no categorization of errors as retryable/user-fixable/fatal, no actionable error messages.
Tool descriptions are generic and lack context for LLM selection. E.g., 'Get hot search list by category' does not explain when to use this vs weibo_search, what data is returned, or typical use cases.