MCP server providing weather alerts and forecasts for Indian cities using the wttr.in API
Two tools with basic but incomplete definitions. Both tools have adequate names and functional descriptions, but lack critical structured output documentation, parameter descriptions are minimal, and no error handling guidance is present. Tool definitions are directly visible in the source code (weather.py), so no inference penalty applies. Both tools return unstructured string responses rather than typed objects, which is a significant gap for agent composition. Parameter 'city' is a free-form string with no format constraints, enum values, or validation examples. No output schemas are documented, agents cannot predict or parse the response structure. Error messages are basic strings with no recovery guidance.
Get weather alerts (based on conditions) for an Indian city using wttr.in.
Get 2-day weather forecast for an Indian city.
No output schemas documented. Both tools return unstructured markdown-like strings instead of typed JSON objects with fields. Agents cannot parse results reliably or chain outputs to other tools.
Parameter 'city' lacks constraints, examples, or validation guidance. No enum of valid Indian cities, no regex pattern, no min/max length. String is free-form, inviting hallucinated or misspelled city names.
Error handling returns bare strings ('Couldn't fetch weather for {city}') with no recovery guidance. Agents cannot determine if the error is transient, user-fixable, or fatal.
No distinction between different failure modes. Both tools return the same error message for network timeouts, invalid city names, API outages, and JSON parsing failures. LLMs cannot distinguish retry-worthy errors from user-fixable ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Tool descriptions lack context on when to use each. 'Get weather alerts' vs 'Get 2-day weather forecast', both fetch weather but criteria for choosing between them is unclear. Add disambiguation: 'Use for immediate safety warnings' vs 'Use for planning upcoming activities'.