Collection of utility scripts for various services including e-commerce search, audio transcription, cryptocurrency reports, Home Assistant integration, and weather data retrieval
This MCP server exposes three tools for e-commerce search, product detail retrieval, and audio transcription. All three tools lack critical quality attributes. Tool definitions are inferred from argparse CLI scripts rather than explicit MCP tool registration, placing an immediate cap at 50 per-tool. Schemas are partially visible but lack formal input/output documentation. Descriptions exist but are brief and lack the context needed for LLM selection. Parameter descriptions mix English and Chinese, complicating agent reasoning. No error handling guidance, no parameter validation rules, and no output schema documentation. The tools perform external API calls (MaiShou e-commerce API, Qwen ASR) but expose no mechanism for agents to understand failure modes or recovery strategies.
Get detailed product information and purchase link from MaiShou API
Search for products by keyword from MaiShou API with configurable source (Taobao, JD.com, Pinduoduo)
Transcribe audio file to text using Qwen ASR with optional language detection and ITN (Inverse Text Normalization)
Tool definitions are inferred from CLI scripts, not explicitly registered as MCP tools. No visible tool registration mechanism (e.g., MCP tool descriptor, manifest, or explicit class).
No documented output schemas for any tool. search() returns CSV text; detail() returns YAML; transcribe() returns text. LLMs cannot plan downstream calls or structure responses without knowing return field types and names.
Parameter descriptions mix English and Chinese (e.g., '关键词 (search keyword)', '来源 1:淘宝 2:京东 3:拼多多'). This creates ambiguity for English-only LLMs and complicates constraint parsing. Descriptions should be in a single language with clear constraint syntax.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
'source' parameter uses integer values (0, 1, 2, 3) in some tools and string values in others (detail uses string default '1'). This inconsistency invites type errors. Should be consistently typed and preferably use named enums (taobao, jd_com, pinduoduo) instead of opaque numbers.
No error handling guidance. External API calls (MaiShou, Qwen) can fail with rate limits, network errors, or invalid credentials, but tools provide no recovery hints. search() and detail() return raw API error messages; transcribe() calls sys.exit(1) silently. Agents cannot reason about retry strategies or fallback actions.
Descriptions are under 50 characters and lack context for LLM selection. 'Search for products by keyword from MaiShou API...' omits WHEN to use this vs. other search tools, what data is returned, and any prerequisites (API credentials, rate limits).
'page' parameter in search() has no constraints (min, max, default behavior at boundary). LLMs may pass page=0 or page=99999, causing API errors. Should document valid range and default behavior.
search() and detail() expose hardcoded API credentials and endpoints (MAISHOU_INVITE_CODE, hardcoded openid '564bdce0fa408fc9e1d5d42fd022ef0b'). While env vars are checked for MAISHOU_INVITE_CODE, the openid is hard-coded, creating security and auditability issues. Credentials should never be visible in source or tool parameters.