MCP server for retrieving METAR weather information from Aviation Weather API
Single tool 'get-metar' has a clear action verb and basic schema with Zod validation. However, the tool lacks critical production-grade features: no output schema documentation, no error recovery guidance, no parameter constraints beyond length validation, and no handling of edge cases (e.g., invalid ICAO codes, API timeouts). The description is adequate (56 chars) but does not explain when to use this tool or what the output structure contains. Parameter description is present but minimal. Error handling returns generic 'Failed to retrieve METAR data' without actionable recovery steps.
Get the METAR weather information for an ICAO id
No output schema documented. LLMs cannot predict response structure (fields, types, format) and must infer from unstructured text output. This violates pattern:tool and pattern:response-shaper.
Error handling is non-actionable. 'Failed to retrieve METAR data' gives the LLM no guidance on retry, fallback, or root cause. Should include: was the ICAO code invalid? API down? Timeout? See pattern:recovery-guide.
Parameter 'icaoId' lacks validation error messages. If an LLM passes a 3-letter or 5-letter code, the tool silently fails. Should validate and return: 'Invalid ICAO code: must be exactly 4 letters (e.g., KBOS, EGLL).'
Tool description does not explain output format or when to call it. Should state: 'Returns current METAR weather data (temperature, wind, visibility, altimeter) for an airport. Use this to get real-time aviation weather.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No timeout or rate-limit handling. External API calls can hang indefinitely, blocking the agent. Should set explicit fetch timeout (e.g., 5s) and return clear timeout error.