All three tools have identical structural weaknesses. Tool descriptions are in Chinese and extremely brief (10-20 chars), failing the 10-1024 char guideline and providing minimal LLM context. Input schemas exist but are minimal: single 'city' string parameter with no enum constraints, range validation, or format specification. No output schemas documented. Error handling returns plain text without recovery guidance. Tools lack idempotency hints and destructive operation markers. No pagination support despite potentially returning large datasets. Parameter descriptions duplicate tool descriptions rather than adding clarity.
要查询天气预报的城市名称
要查询精细天气预报的城市名称
要查询天气的城市名称,如北京、上海、广州等
Tool descriptions are under 20 characters and in Chinese only. Descriptions must be 10-1024 chars and explain WHAT, WHEN, and WHY in English for LLM clarity.
No input validation or constraints. 'city' parameter accepts any string with no enum of supported cities, no format specification, and no length bounds. Hardcoded CITY_MAP contains only 3 cities but tool accepts arbitrary input, causing silent failures.
No output schema documented. Tools return unstructured text with emoji formatting. LLMs cannot parse structured fields for downstream tool chaining or data extraction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Error messages lack recovery guidance. Generic 'error.message' returned without suggesting next steps (e.g., 'City not found. Try: 北京, 上海, 武汉').
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent but do not declare this via MCP tool annotations, limiting agent optimization.