The server defines 8 tools with explicit, complete JSON Schema input definitions and descriptions in English and Chinese. All tools follow a consistent verb_noun naming convention (get_*). However, descriptions are minimal (10-20 chars avg), lacking the 50-200 char LLM-optimized length and WHEN/WHY context. No output schemas are documented. Parameter descriptions exist but are terse. No error handling guidance, no idempotency markers, and security posture is weak (API key required but no secret injection pattern). Tools are read-only and well-constrained with enums and min/max bounds, which is good. Tools show clear single responsibility (each targets one weather data type), supporting composition. Average across 8 tools yields mid-50s, fair baseline for a simple domain tool, but well below 70 for production readiness.
获取空气质量趋势信息
获取天级天气预报
获取小时级天气预报
获取分钟级降水预报
获取实时天气数据
获取天气预警信息
根据地址获取天气信息
Minimal tool descriptions (avg 10-20 chars). Descriptions must explain WHAT the tool does, WHEN to use it (vs similar tools), and what it returns. Current descriptions are single Chinese phrases with no English context or usage guidance. LLMs cannot select between similar tools without detailed docstrings.
No output schemas documented. Tools return data from Caiyun API but no response structure is described. LLMs cannot plan downstream tool calls or extract required fields without knowing what they get back. Pattern baseline: 100% of A+ tools have documented return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
根据经纬度获取天气信息
No error handling guidance. Tools can fail (invalid coordinates, API rate limits, network errors, missing API key at runtime) but error responses do not guide recovery. LLMs need actionable error messages like 'Invalid coordinates: latitude must be -90 to 90, longitude -180 to 180. Received: <values>.'
API key exposed in constructor and startup code. CAIYUN_API_KEY is read from environment and command-line args (--api-key=) without secret injection pattern. Agent traces will log the key if it appears in init logs. Secrets must never be tool parameters or logged.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 8 tools are read-only and idempotent, but this is not declared in schema. Clients cannot infer retry safety or whether a tool modifies state without explicit annotations.
Parameter descriptions in Chinese only. get_weather_by_location.longitude: '经度' (Chinese for 'longitude'). This excludes English-speaking LLMs unless descriptions are localized. Server is English but parameter docs are not.
No dependency hints or prerequisites. Tools accept raw coordinates or addresses but do not document what happens if coordinates are out of bounds, if the address is ambiguous, or how geocoding errors are handled. Agents cannot plan error recovery.