MCP Server exposing Weather tools via api.weather.gov
Server exposes two weather tools with reasonable names and descriptions. Both tools use Zod schemas with clear parameter types and constraints. However, output schemas are not formally documented, responses are returned as JSON strings without a declared schema structure. Error handling is minimal; many edge cases (API timeouts, invalid coordinates, null responses) are not explicitly managed. Descriptions are adequate but lack detail on prerequisites, expected return structures, and failure modes. Parameters lack comprehensive validation guidance beyond what Zod provides. Schemas are visible in source but output documentation is entirely absent, which weakens the overall quality score.
Get current weather conditions for a US city using the National Weather Service API (api.weather.gov). Returns temperature, forecast, wind, humidity and more.
Get a multi-day weather forecast for a US city using the National Weather Service API.
Output schemas not documented. Both tools return JSON strings with unspecified structure. LLMs cannot plan downstream operations or extract fields reliably without knowing the response schema.
Minimal error handling and recovery guidance. Geocoding failures, timeouts (set to 10s), and API errors from NWS are caught but return generic errors with no actionable guidance for the LLM.
Tool descriptions lack context on when to use each tool. Description for get_weather says 'Use this tool for any weather-related questions', doesn't clarify why get_weather_forecast exists or when to prefer it.
get_weather_forecast parameter 'days' has min/max constraints in schema (1-7) but description doesn't explain the reasoning or what happens if the user requests 14 days (is it clamped or rejected?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
API timeout is hardcoded to 10 seconds for all external calls (geocoding, NWS). No documented timeout error handling or retry guidance for the LLM.