Spring Boot MCP server implementation with weather tools using Spring AI MCP Server framework
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema specification. Tool names follow verb_noun convention (getWeatherForecastByLocation, getAlerts), but descriptions lack depth on when/why to use each tool and what they return. Parameter descriptions exist but are minimal (e.g., 'Latitude coordinate' for latitude). No documented output schemas, error handling guidance, or pagination support. No tool annotations (readOnlyHint, etc.) despite both being read-only operations.
Get weather alerts for a US state. Input is Two-letter US state code (e.g., CA, NY)
Get weather forecast for a specific latitude/longitude
Output schemas not documented. LLMs cannot plan downstream operations or extract fields without knowing what these tools return.
Tool descriptions lack context on when/why to use them and what they return. 'Get weather forecast for a specific latitude/longitude' does not explain return format, use cases, or dependencies.
Parameter descriptions are minimal (e.g., 'Latitude coordinate', 'Two-letter US state code'). Missing format constraints, valid ranges, and examples. Baseline: 72 chars per param; these are ~20 chars.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both tools being read-only. Agents cannot distinguish safe tools from destructive ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No error handling guidance. If latitude/longitude are invalid or state code is malformed, what error does the tool return? How should the LLM recover?