Single tool with basic schema and description. Tool name 'clima_api' lacks action verb (should be 'get_weather' or 'fetch_weather'). Description is adequate (89 chars) but generic. Input schema present with type and description, but output schema is undocumented, LLM cannot plan downstream operations. No error recovery guidance, no pagination, no parameter constraints (city is free-form string). Tool is read-only but lacks explicit annotation. Overall structure is minimal; follows ~20% of production patterns.
Informações sobre o clima de uma cidade (usando api Open-Meteo)
Tool name 'clima_api' does not start with action verb. Should be 'get_weather', 'fetch_weather', or 'search_weather' to signal intent to LLM.
Output schema is not documented. WeatherApiResponse interface exists in code but is not exposed to MCP client. LLM cannot predict return fields (city, temperature, condition, humidity, windSpeed, feelsLike, precipitation, description) and cannot chain to downstream tools.
Input parameter 'city' is unconstrained free-form string. No enum, pattern, or length limits. LLM may pass invalid city names, leading to 'Cidade não encontrada' errors with no recovery guidance.
Error handling returns generic messages ('Erro ao buscar dados do clima') without recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Tool lacks readOnlyHint annotation. Although risk is marked READ_ONLY in metadata, the tool definition itself does not declare this via MCP tool annotations, limiting client-side safety checks.