Weather of Record
Server Details
Published weather records for a U.S. address and date, with provenance, and current NWS forecasts.
- Status
- Healthy
- Uptime
- 100.0% over 32 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools split cleanly along resource and action lines: county-level climatology, point forecast, and a submit/poll pair for address lookups. The only mild overlap is between get_county_storm_history and submit_lookup, since both return storm event records with identical 'absence of a record is not evidence' caveats, but their inputs (county vs. address+date) are distinct enough that an agent can choose correctly.
All four names follow a consistent snake_case verb_noun pattern: get_county_storm_history, get_forecast, get_lookup, submit_lookup. The get_/submit_ prefix distinction usefully signals the synchronous vs. asynchronous pair.
Four tools is on the lean side but each earns its place: two data retrieval paths, one forecast, and the two halves of the async lookup lifecycle. Nothing appears redundant, though the surface is thin enough that an agent may wish for more direct query options.
The core workflow (start a lookup, poll for records, or pull county-level storm history or a forecast) is covered end to end. Minor gaps remain: there is no tool to enumerate published counties (it points to an external URL), no lookup cancellation, and no way to list or manage past lookups within the 30-day window.
Available Tools
4 toolsget_county_storm_historyGet a county's storm historyARead-onlyIdempotentInspect
Returns the hail, thunderstorm wind and tornado events of record for one published U.S. county over about the last three years, from NOAA's Storm Events Database, with the source file and revision named. Needs no key. state is the two-letter abbreviation and county is written as in the county page address, for example tn and sumner. The list of published counties is at https://weatherofrecord.com/api/v1/storms. County level only, never a street address. The absence of a record is not evidence that an event did not occur.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state abbreviation, e.g. tn | |
| county | Yes | County as in the page address, e.g. sumner or virginia-beach-city |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, it discloses the data source, the roughly three-year window, that the source file and revision are named, and the important interpretive caveat that absence of a record is not evidence an event did not occur. That is meaningful behavioral context an agent would not get from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior and data source, then gives parameter notes and caveats. It is efficient overall, though the county list URL and some example wording are slightly repetitive against the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what is returned, the source and revision metadata, the time span, and the key interpretive limitation. An agent has enough information to call the tool correctly and understand the result at a high level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description reinforces the formats and examples, but those examples largely duplicate the schema rather than adding new syntax or constraints beyond the county-level restriction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returns hail, thunderstorm wind, and tornado events for one published U.S. county from NOAA's Storm Events Database. It clearly distinguishes this from the sibling tools, which are forecast and lookup/submission utilities rather than historical storm queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: one published county, county-level only, never a street address, and no API key needed. It also points to the county list endpoint. It does not explicitly compare against alternatives, but the sibling tools do not overlap enough to require that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecastGet the current National Weather Service forecastARead-onlyInspect
Returns the current National Weather Service forecast for a US point. This is a forecast, not a record of observed weather. Send latitude and longitude (no key needed), or a U.S. street address (needs the free key). Returns 12-hour periods for about seven days and hourly values, with issued_utc, the time the National Weather Service issued it, and a stale flag. U.S. coverage only.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hourly values to return | |
| address | No | Full U.S. street address with city, state and ZIP (needs the free key) | |
| periods | No | 12-hour periods to return | |
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses the forecast-vs-observation distinction, the returned granularity (12-hour periods over ~7 days plus hourly values), the issued_utc timestamp, a stale flag, and the US-only coverage boundary. These are all behavioral traits the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each carrying distinct information: return type, forecast-vs-observed caveat, input options and key requirements, return shape, and coverage. The most important routing facts (what it returns, key-free vs keyed input) are front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only safety-oriented annotations, the description carries the burden well: it describes return granularity, timestamps, the stale signal, and the geographic limit. An agent has everything needed to decide to call it and to construct a valid request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the description compensates by explaining the lat/long-vs-address alternatives and the API-key requirement attached to address, plus that periods are 12-hour blocks spanning about seven days (matching the periods default of 14). It does not clarify the hours cap of 168 or the lat/long bounds, so it stops short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Returns the current National Weather Service forecast for a US point') and explicitly scopes the result as a forecast rather than observed weather, which prevents a common misreading. It does not differentiate itself from the sibling tools (get_lookup, submit_lookup), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the two input modes (lat/long with no key vs. U.S. street address requiring the free key) and the hard geographic constraint ('U.S. coverage only'), which is exactly the routing information an agent needs. There is no explicit when-not-to-use guidance or mention of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lookupGet a lookup's status and recordsARead-onlyInspect
Check a lookup started with submit_lookup. The status is queued, running, done or failed. When done, the result holds the records with their provenance and a notice. A failed lookup carries a reason and no records. The absence of a record is not evidence that an event did not occur. Results are kept for 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| lookup_id | Yes | The lookup_id from submit_lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the status lifecycle, what the result contains when done (records with provenance and a notice), the failure shape (reason, no records), the 30-day retention limit, and an important interpretive caveat that a missing record is not proof an event didn't occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short declarative sentences, front-loaded with the core action and status values; each subsequent sentence adds a distinct fact (result shape, failure shape, caveat, retention) with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so: status values, result contents, failure contents, and retention window. Combined with the annotations, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so lookup_id is already fully documented in the schema. The description only reiterates its origin ('from submit_lookup'), adding no new syntax or constraint information. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (a lookup started with submit_lookup), and immediately enumerates the status domain (queued, running, done, failed). It is unmistakably distinct from the sibling submit_lookup, which starts the lookup rather than polling it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Ties use to the sibling explicitly ('a lookup started with submit_lookup'), so the agent knows this is the follow-up/polling step after submit_lookup. It stops short of stating when not to call it (e.g., don't poll before completion) but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_lookupSubmit a weather-records lookupAIdempotentInspect
Start a weather-records lookup for one U.S. street address and date. Returns a lookup_id; the records are ready in about two minutes -- call get_lookup with it. Records reach back to about 1960. Records, not opinions: nothing returned is a determination about any property. Each accepted lookup uses one of the key's 10 free lookups this month.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The date of interest, YYYY-MM-DD | |
| address | Yes | Full U.S. street address with city, state and ZIP, e.g. 123 Main St, Nashville, TN 37203 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=true): an async result pattern with ~2-minute latency, a lookup_id handoff, coverage back to ~1960, a disclaimer that nothing returned is a property determination, and a quota of 10 free lookups per month per key. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the follow-up handoff, then coverage, disclaimer, and quota. Every sentence carries information, though the 'Records, not opinions' framing is slightly editorial and could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter submission tool with no output schema, the description supplies everything the agent needs: async behavior, the returned lookup_id, the follow-up tool, latency, data coverage, and the per-key quota. No output schema is needed given the lookup_id handoff is explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% โ address format (with a full example) and date format (YYYY-MM-DD) are already documented in the schema. The description only restates 'one U.S. street address and date' and adds no syntax or constraint beyond that, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Start a weather-records lookup') scoped to 'one U.S. street address and date', and explicitly names the sibling get_lookup as the follow-up. An agent can distinguish it from get_lookup without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear lifecycle context: this call returns a lookup_id, results are ready in about two minutes, and the agent should then 'call get_lookup with it'. That effectively routes between the two siblings, though it never states when NOT to use this tool (e.g., caching or reusing an existing lookup).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
get_county_storm_history
1 tool update
- Added
get_forecast
Related MCP Connectors
Forecasts, severe-weather alerts, air quality, 20-year weather history, solar and wind production.
Forecasts for any US point, with context: alerts, what changed overnight, why, and history.
Storm history by address since 2003, recent storm leads, model-based weather and storm forecasts.
Historical weather and climate: 100+ years of station data, normals, extremes, and trends.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceGet US weather forecasts, active alerts, and current observations via the National Weather Service API.605 npm1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides weather forecasts, current conditions, and alerts for US locations using the National Weather Service API.1-
- AlicenseNot gradedqualityDmaintenanceProvides weather forecasts for US locations using OpenStreetMap geocoding and the National Weather Service API, enabling natural language queries like city names or addresses.8 npmMIT
- FlicenseBqualityDmaintenanceProvides weather forecasts and active alerts from the US National Weather Service API for US locations.2-
Glama MCP Gateway
Add one secure layer between your agents and this server.