MCP server providing weather forecast and alert tools for US locations using the National Weather Service API
Two tools with basic verb-noun naming (getWeatherForecastByLocation, getAlerts) but descriptions are minimal (under 100 chars). Input schemas present with type declarations but parameter descriptions are extremely terse (10-15 chars). No output schema documented. No error handling guidance, no pagination support, no idempotency hints. Tool definitions inferred from WeatherService.java method signatures rather than explicit MCP registration visible in code. Missing critical context: what fields are returned? What errors can occur? When should each tool be called vs the other?
Get weather alerts for a US state
Get weather forecast for a specific latitude/longitude
Output schemas not documented. LLMs cannot plan downstream operations or extract required fields without knowing what getWeatherForecastByLocation and getAlerts return.
Parameter descriptions are trivial (10-15 chars). 'Latitude coordinate' and 'Two-letter US state code' lack actionable constraints. No range, format, or validation guidance for LLM.
Tool definitions inferred from method signatures in WeatherService.java; no explicit MCP tool registration visible in McpServerApplication.java. MethodToolCallbackProvider auto-discovers tools but schema completeness cannot be verified.
No error handling guidance. What happens if latitude/longitude are out of bounds? If state code is invalid? LLM receives no recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Tool descriptions lack context on when to use each. Both are weather-related, what distinguishes them? When should an LLM call getAlerts vs getWeatherForecastByLocation?