MCP server providing weather forecasts, alerts, image generation, and basic arithmetic operations
Server has 5 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-50 chars, mostly short) and Zod-based input schemas with type constraints. However, descriptions are generic and lack context for LLM selection. The 'add' tool is a utility function unrelated to weather domain. No output schemas documented. Error handling returns plain text without recovery guidance. Tool naming is mostly verb-noun but lacks clarity on when to use each tool vs alternatives (e.g., get-alerts vs get-forecast distinction). Parameters have types and constraints but descriptions are minimal. No pagination, no structured output, no error classification.
Add two numbers
This function will display the generated image in a new tab
Generate an image using Replicate
Get weather alerts for a state
Get weather forecast for a location
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from responses. All tools return plain text wrapped in content arrays without field definitions.
Descriptions are too short (10-50 chars) and lack context. 'Get weather alerts for a state' does not explain when to use this vs get-forecast, what data is returned, or prerequisites. Baseline for A+ tools is 50-200 chars with WHEN/WHAT/RETURN guidance.
Error responses provide no recovery guidance. 'Failed to retrieve alerts data' and 'Failed to retrieve grid point data' do not tell the LLM what to do next (retry, ask user, try alternative tool). Errors should be actionable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Tool 'add' is a generic math utility unrelated to weather domain. Mixing domain-specific tools (weather, image generation) with utility functions dilutes focus and confuses LLM tool selection. Should be removed or moved to a separate utility server.
Parameter descriptions are minimal. 'Two-letter state code (e.g. CA, NY)' includes example values that LLMs may reuse literally. Use enum constraints instead. 'Latitude of the location' lacks range context (already in schema but not in description text).