MCP server to query weather in Chinese cities
Single tool 'get_weather' has critical definition gaps. Tool name is acceptable (verb_noun pattern), but description is minimal (34 chars, below 50-char baseline for clarity). Input schema exists but lacks parameter description, 'city' has no guidance on format, valid values, or examples. Output is unstructured JSON string with no documented schema. No error handling guidance. Tool returns None on exception without actionable recovery hints. Violates 6+ core patterns: tool-description, constrained-input, response-shaper, recovery-guide, error-classification, and audit-trail.
Get weather for a chinese city
Parameter 'city' lacks description. LLM cannot infer whether to pass 'Beijing', '北京', or a city code. No format constraints or examples provided.
Tool description is 34 characters ('Get weather for a chinese city'). Below 50-char minimum for LLM clarity. Does not explain WHEN to use it, WHAT it returns, or prerequisites (API key required).
Output schema undocumented. Tool returns JSON string from API (lives[0] object) but LLM has no schema to parse fields. Violates response-shaper pattern.
Error handling returns None on exception without guidance. LLM cannot determine if error is retryable, user-fixable, or fatal. No actionable recovery message.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
API key exposed as environment variable but no documentation of secret injection pattern. Tool description should note that AMAP_API_KEY must be configured server-side.