Smarter Weather
REMOTE · MCP.SMARTERWEATHER.COM · 2 COMPONENTS
Smarter Weather MCP: forecasts, alerts, outlooks, observations, AQI, grids, and map imagery.
Available components
Last scanned (23 hours ago)
Scores higher than 58% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 4470 tokens (~248/item across 18 items; 13 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability check failed: schema churn in the 30 days we've observed: 29 tool removals, 5 breaking changes, 0 auth/transport breaks, 7 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (92% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
Checks we ran (14)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
- Capabilities
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- New resource “views-guide” functional
- Server version: 0.0.0.320 → 0.0.0.332 functional
- 4 Nov 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_data” rewrote its description, which is the text the model reads security
- Server version: 0.0.0.314 → 0.0.0.320 functional
- 3 Nov 26 −1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_observed_precipitation” rewrote its description, which is the text the model reads security
- Tool “find_places” rewrote its description, which is the text the model reads security
- Tool “find_tools” rewrote its description, which is the text the model reads security
- Tool “get_alerts” rewrote its description, which is the text the model reads security
- Tool “get_current_conditions” rewrote its description, which is the text the model reads security
- Tool “get_data” rewrote its description, which is the text the model reads security
- Tool “get_forecast” rewrote its description, which is the text the model reads security
- Tool “get_forecast_distribution” rewrote its description, which is the text the model reads security
- Tool “search_data” rewrote its description, which is the text the model reads security
- Tool “get_time_context” rewrote its description, which is the text the model reads security
- “get_observed_precipitation” made “location” required, so existing callers break ▼ functional
- “get_current_conditions” made “location” required, so existing callers break ▼ functional
- “get_forecast_distribution” made “location” required, so existing callers break ▼ functional
- “get_time_context” made “location” required, so existing callers break ▼ functional
- “get_alerts” changed the type of “bbox”: object → array ▼ functional
- Schema quality: 296 → 259 ▲ functional
- Server version: 0.0.0.304 → 0.0.0.314 functional
- “get_alerts” added an optional parameter “area” cosmetic
- “get_alerts” added an optional parameter “cursor” cosmetic
- “get_alerts” added an optional parameter “filter” cosmetic
- “get_alerts” added an optional parameter “limit” cosmetic
- “get_alerts” added an optional parameter “view” cosmetic
- “get_observed_precipitation” added an optional parameter “start” cosmetic
- “get_observed_precipitation” added an optional parameter “product” cosmetic
- “get_observed_precipitation” added an optional parameter “hours” cosmetic
- “get_observed_precipitation” added an optional parameter “end” cosmetic
- “get_observed_precipitation” reworded the description of “location” cosmetic
- “get_observed_precipitation” reworded the description of “at” cosmetic
- “get_forecast_distribution” reworded the description of “units” cosmetic
- “get_forecast_distribution” reworded the description of “location” cosmetic
- “get_alerts” reworded the description of “at” cosmetic
- “get_alerts” reworded the description of “bbox” cosmetic
- “get_alerts” reworded the description of “location” cosmetic
- “get_current_conditions” reworded the description of “location” cosmetic
- “get_current_conditions” reworded the description of “units” cosmetic
- “get_data” reworded the description of “units” cosmetic
- “get_forecast” reworded the description of “include” cosmetic
- “get_forecast_distribution” reworded the description of “aspect” cosmetic
- “get_forecast_distribution” reworded the description of “hours” cosmetic
- “get_time_context” reworded the description of “location” cosmetic
- “get_observed_precipitation” reworded the description of “units” cosmetic
- “get_forecast_distribution” dropped the optional parameter “lat” cosmetic
- “get_observed_precipitation” dropped the optional parameter “lat” cosmetic
- “get_observed_precipitation” dropped the optional parameter “include_nowcast” cosmetic
- “get_forecast_distribution” dropped the optional parameter “lon” cosmetic
- “get_alerts” dropped the optional parameter “alert_id” cosmetic
- “get_alerts” dropped the optional parameter “events” cosmetic
- “get_alerts” dropped the optional parameter “lat” cosmetic
- “get_alerts” dropped the optional parameter “lon” cosmetic
- “get_current_conditions” dropped the optional parameter “lat” cosmetic
- “get_current_conditions” dropped the optional parameter “lon” cosmetic
- “get_time_context” dropped the optional parameter “lon” cosmetic
- “get_time_context” dropped the optional parameter “lat” cosmetic
- “get_observed_precipitation” dropped the optional parameter “windows” cosmetic
- “get_observed_precipitation” dropped the optional parameter “lon” cosmetic
- 2 Nov 26 0
- Server version: 0.0.0.303 → 0.0.0.304 functional
- 31 Oct 26 0
- Tool “query_dataset” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “search_data” rewrote its description, which is the text the model reads security
- Tool “get_observed_precipitation” rewrote its description, which is the text the model reads security
- Tool “find_tools” rewrote its description, which is the text the model reads security
- Tool “describe_data” rewrote its description, which is the text the model reads security
- Server version: 0.0.0.291 → 0.0.0.303 functional
- New tool “get_data” functional
- “find_places” added an optional parameter “include” cosmetic
- “describe_data” reworded the description of “dataset_id” cosmetic
- “search_data” reworded the description of “family” cosmetic
- 30 Oct 26 −3
- Tool “describe_dataset” was removed ▼ security
- Tool “search_locations” was removed ▼ security
- Tool “search_catalog” was removed ▼ security
- Tool “reverse_geocode” was removed ▼ security
- Tool “list_datasets” was removed ▼ security
- Tool “get_platform_status” was removed ▼ security
- Tool “get_hourly_forecast” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_forecast” rewrote its description, which is the text the model reads security
- Schema quality: 5592 → 4785 ▲ functional
- Schema quality: excellent → good functional
- Server version: 0.0.0.276 → 0.0.0.291 functional
- New tool “search_data” functional
- New tool “get_status” functional
- New tool “find_places” functional
- New tool “describe_data” functional
- “get_forecast” added an optional parameter “start” cosmetic
- “get_forecast” added an optional parameter “hours” cosmetic
- “get_forecast” added an optional parameter “end” cosmetic
- “get_forecast” reworded the description of “view” cosmetic
- “get_forecast” reworded the description of “include” cosmetic
- “get_forecast” reworded the description of “days” cosmetic
- “query_dataset” reworded the description of “variables” cosmetic
- “query_dataset” reworded the description of “dataset_id” cosmetic
- “get_forecast” dropped the optional parameter “detail_level” cosmetic
- 29 Oct 26 0
- New resource “Smarter Weather map” functional
- Server version: 0.0.0.268 → 0.0.0.276 functional
- 28 Oct 26 0
- Server version: 0.0.0.265 → 0.0.0.268 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.smarterweather.com
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.smarterweather.com | CN=Amazon RSA 2048 M01,O=Amazon,C=US | 24 Jun 2026 | 7 Jan 2027 | RSA 2048 | SHA256-RSA | d5cbd2b33185e147ebdc9f1b7435deb |
| SANs: mcp.smarterweather.com | ||||||
| CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 77312380b9d6688a33b1ed9bf9ccda68e0e0f |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.smarterweather.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| smarterweather.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.smarterweather.com | Verified | 200 | |
| http (plaintext) | http://mcp.smarterweather.com | HTTPS enforced | 301 | https://mcp.smarterweather.com/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
call_tool Call tool ~76
Runs a tool find_tools lists, by name: same price, limits and result as calling it directly. Tools already in your list are called directly, not through this. `arguments` follows that tool's input schema.
| Name | Type | Req | Description |
|---|---|---|---|
| arguments | object | – | That tool's arguments. |
| tool | string | yes | Tool name, from find_tools. |
No output schema declared.
No examples provided.
describe_data Describe data ~97
A dataset's variables or properties (standard names, units, categories, bands, aggregates), horizon, step, cadence, freshness, cost class, verified `examples` and an example_query to read its values. Free; call it after search_data, before get_data. Example: {"dataset_id": "<from search_data>"}.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset_id | string | yes | A dataset id from search_data or get_data (1-80 characters). |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| data_status | object | – | Present only when the data service could not answer: a cached copy, or catalog facts without freshness. |
| dataset_id | string | yes | – |
| detail | object | yes | – |
| example_query | object | – | get_data arguments for this dataset; add a location. |
No examples provided.
find_places Find places ~303
Find places: a name, ZIP, venue or address to ranked candidates with lat/lon, or coordinates to the place and timezone. Pass `query` (fuzzy=true for partial input) or `lat`+`lon`; rows carry `type` place|zip|address|poi|county, `matched_via: "autosuggest"` marks fallback rows and `partial` a timed-out section. Weather tools take `location`; use this to disambiguate or name a point. Example: {"lat": 39.74, "lon": -104.99} -> Denver, Colorado, America/Denver.
| Name | Type | Req | Description |
|---|---|---|---|
| fuzzy | boolean | – | Query only: autosuggest for partial or misspelled input. Default false. |
| include | array | – | boundaries: each row's state, county and zone ids for get_data's area. |
| lat | number | – | Latitude (-90 to 90), with lon; not with query. |
| limit | integer | – | Query only: how many candidates (1-10). Default 5. |
| lon | number | – | Longitude (-180 to 180), with lat. |
| near_lat | number | – | Query only: rank near this point (-90 to 90); with near_lon. |
| near_lon | number | – | Longitude of near_lat (-180 to 180). |
| query | string | – | Place name, ZIP or venue/address (1-200 characters); not with lat/lon. |
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | – |
| lat | number | – | – |
| lon | number | – | – |
| partial | object | – | Sections that did not finish, e.g. {"poi": "timeout"}; the list may be incomplete. |
| query | string | – | – |
No examples provided.
find_tools Find tools ~103
Lists the weather tools this connection does not show (best times, routes; storm cells, storm reports, lightning; outlooks, forecaster text; forecast accuracy; maps and charts), with when to use each and its required arguments. Run one with call_tool, in this session, no reconnect. With `tools`, returns their full input schemas. Free; no network call.
| Name | Type | Req | Description |
|---|---|---|---|
| tools | array | – | Tool names: return their full input schemas instead of the list. |
| Name | Type | Req | Description |
|---|---|---|---|
| next | string | yes | – |
| tools | array | – | With `tools`: each named tool as tools/list would list it. |
| toolsets | array | – | The tools this connection does not list, by toolset. |
No examples provided.
get_alerts Get NWS alerts ~439
NWS watches, warnings and advisories in effect at a place (`location`), over a `bbox`, or over a state or county as `area` {product, feature_id} (find_places `boundaries` hands those back), now or at a past instant (`at`). Narrow with `filter` over event, severity, urgency or certainty, and page past 50 with `cursor`; an alert's id is its group_id (each alert's `id`), or its current CAP `message_id`, and `filter` on either with `view: detailed` returns its full text and geometry. Empty means all clear or purged (about 24 h), and a city with none is not a statewide all-clear. Example: {"location": "Wichita, KS", "filter": ["event in Tornado Warning,Severe Thunderstorm Warning"]}.
| Name | Type | Req | Description |
|---|---|---|---|
| area | object | – | Space: a polygon by reference ({product, feature_id | feature_ids | filter}; the product must declare query.area_as_reference) or inline ({geometry}). Over a feature product, the overlay; over a grid… |
| at | string | – | Time: one instant (at least 10 characters). |
| bbox | array | – | Space: [west, south, east, north] in degrees. Items on a feature or text product; a grid needs `stats` (exactly 4 items). |
| cursor | string | – | next_cursor of the previous page, with the same arguments (non-empty). |
| filter | array | – | On a feature product: expressions over its filterable properties, applied before aggregation. |
| limit | integer | – | Frames per series element (default and max 168), or features per element (max 50); next_cursor continues (>= 1). |
| location | string | – | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| view | – | – | concise (default): values and feature properties with a centroid and bbox; detailed adds simplified geometry, provenance and raw encodings. |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| alerts | array | yes | One row per alert: its id and NWS properties (event, severity, headline, onset, expires, ...). |
| area | object | – | The area the alerts were read over. |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| location | object | – | – |
| matched | integer | yes | Alerts matching over every page. |
| next_cursor | string|null | yes | The next page, as `cursor`, with the same arguments. |
| notes | array | – | – |
| status | string | yes | – |
| valid_time | string | – | Echo of `at` for an as-of snapshot. |
No examples provided.
get_current_conditions Get current conditions ~166
Current weather right now at a place: the observed analysis at the exact point (temperature, dew point, relative humidity derived from them, wind speed, direction and gusts, pressure, visibility, cloud cover) plus the nearest station report. Values are in `units` (imperial by default; labels in analysis.units); nearest_station is the report as filed, with its distance in meters, and a forecast is get_forecast. Example: {"location": "Pella, IA"}.
| Name | Type | Req | Description |
|---|---|---|---|
| location | string | yes | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| units | – | – | metric, imperial or si; omitted returns each variable's catalog `units` (SI). |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| analysis | – | yes | – |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| location | object | – | – |
| nearest_station | – | yes | The nearest station report, its id and distance_m. |
| units | string | yes | – |
No examples provided.
get_data Get data ~815
Values, totals, comparisons, people and POI counts, station observations, upper-air profiles, climate records and normals, degree days and forecaster text from any catalog dataset (models, radar, alerts, outlooks, tropical cyclones and aircraft recon, reference layers) at a place or several, over a bbox or area, along a path, or as items. `select` takes `product:variable` or `product:property` tokens, a standard name or a concept such as `population`; send one space word (an `area` reference is `{product, feature_id}`) and at most one time word (hours, start+end or at; run pins a cycle); `stats` reduces per `step` or over the area; omit units for SI. Example: {"select": ["nbm_conus:temperature_2m"], "location": "Denver, CO", "hours": 24}.
| Name | Type | Req | Description |
|---|---|---|---|
| area | object | – | Space: a polygon by reference ({product, feature_id | feature_ids | filter}; the product must declare query.area_as_reference) or inline ({geometry}). Over a feature product, the overlay; over a grid… |
| at | string | – | Time: one instant (at least 10 characters). |
| bbox | array | – | Space: [west, south, east, north] in degrees. Items on a feature or text product; a grid needs `stats` (exactly 4 items). |
| cursor | string | – | next_cursor of the previous page, with the same arguments (non-empty). |
| end | string | – | Time: window end (with `start`) (at least 10 characters). |
| filter | array | – | On a feature product: expressions over its filterable properties, applied before aggregation. |
| hours | integer | – | Time: a rolling window of this many hours (ahead for a forecast, back for an analysis) (>= 1). |
| limit | integer | – | Frames per series element (default and max 168), or features per element (max 50); next_cursor continues (>= 1). |
| location | string | – | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| locations | array | – | Space: up to 25 places; one result element per place (at most 25 items). |
| path | object | – | Space: a trajectory sampled at each vertex's ETA: geometry or polyline with times, or departure + speed; departures fans out one element per departure. |
| run | string | – | Time: a model run (reference time), or `latest` (non-empty). |
| select | array | yes | What to read: `product:variable`, `product:*`, `product` (a feature or text product's properties), a bare standard_name (resolved in the place's domain), or `@observed:<standard_name>` / `@forecast:<… |
| start | string | – | Time: window start (with `end`) (at least 10 characters). |
| stats | array | – | Reducers per `step` bucket, over the whole window, or over the area's cells and features. `cumulative:` prefixes sum and degree_days only (a running total). |
| step | string | – | Bucket size for `stats`, an ISO 8601 duration. |
| units | – | – | metric, imperial or si; omitted returns each variable's catalog `units` (SI). |
| view | – | – | concise (default): values and feature properties with a centroid and bbox; detailed adds simplified geometry, provenance and raw encodings. |
| where | array | – | Value criteria over the selected variables' standard_names, tested per sample: they mask the series, or are the predicate for windows and count reducers. |
| windows | object | – | Window search over `where`: consecutive runs of at least min_hours. |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| next_cursor | string|null | yes | With one element, or a call that reads only grids and snapshots: resend the same call with this as `cursor`. Otherwise each element carries its own. |
| results | array | yes | One element per (select, place or area), tagged by kind. |
| truncated | boolean | yes | True when a page or an element is partial: next_cursor continues a page; an element's notes say why it is partial. |
| units | string | yes | – |
No examples provided.
get_forecast Get forecast ~586
Forecast for a US place: current conditions, daily forecast with sunrise and sunset, active alerts and outlooks in one call, hour by hour with include=hourly, and air quality (AQI) with include=aqi. Blended across NBM, HRRR, GFS, RTMA and SPC and unit-converted server-side; times are UTC ISO 8601, quote daily[].astro.local as local, and if forecast.location.timezone_resolved is false state times as UTC. For hours set `hours` (next N, default 48) or `start`+`end` for one stretch hour by hour, and check hourly_coverage (first_time, last_time, sample_interval_hours, truncated) before answering about a specific hour; past last_time say the forecast does not reach that far. Example: {"location": "Portland, OR", "include": "hourly", "hours": 24}.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Daily rows (1-14). Default 10. Does not limit hourly reach. |
| end | string | – | UTC ISO 8601 end of the stretch, exclusive; at most 168 h past the current hour. |
| hours | integer | – | Hourly rows for the next N hours (1-168; default 48 when hourly is asked). Adds hourly. |
| include | string | – | Comma-separated sections: current, daily, hourly, alerts, outlooks, aqi. Default "current,daily,alerts,outlooks". hours, start or end add hourly. |
| lat | number | – | Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon. |
| location | string | – | Free-text place: "City, ST" (e.g. "Portland, OR"), US ZIP, venue/address where enabled, or "lat,lon". Use this OR lat+lon, not both. |
| lon | number | – | Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian). |
| start | string | – | UTC ISO 8601 start of one stretch, returned hour by hour; needs end, not with hours. Adds hourly. |
| units | string | – | Units of every value in and out: imperial (default; °F, mph, in) or metric (°C, km/h, mm). si is deprecated and will be removed; use metric. |
| view | string | – | concise (default; REST's is detailed): daily has day_precip_probability / night_precip_probability (precip_probability is their max); hourly is sampled past 24h. detailed: adds CAPE, UV, full day/nig… |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| data_status | object | – | Present only when the platform reports degraded/outage data sources: overall state, a caveat note, and the affected sources. Absent means no advisory was available -- not a freshness guarantee. See g… |
| forecast | object | yes | – |
| location | object | yes | – |
| units | string | yes | – |
No examples provided.
get_forecast_distribution Get forecast distribution ~298
Probabilistic forecast guidance for one aspect, from severe risk to aviation ceilings: percentiles (p10 to p90), exceedance probabilities and ensemble spread, for the odds, ranges or confidence one forecast value cannot answer. Read p50 as the likely outcome, p90 as the reasonable worst case when the risk is the high end (snow, wind, rain) and p10 when it is the low end (cold, visibility, ceiling). Aspects: precip, snow, ice, temperature (daily high and low ranges), wind, severe (thunderstorm and severe-environment odds; SPC tornado, hail and wind odds are get_outlooks (guidance)), aviation (ceiling and visibility odds) and confidence (spread). Example: {"location": "Denver, CO", "aspect": "snow", "hours": 72}.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect | string | yes | Which aspect to read: one of precip, aviation, confidence, ice, severe, snow, temperature, wind. |
| hours | integer | – | Time: a rolling window of this many hours (ahead for a forecast, back for an analysis) (>= 1). |
| location | string | yes | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| units | – | – | metric, imperial or si; omitted returns each variable's catalog `units` (SI). |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| aspect | string | yes | – |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| daily | object | – | – |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| hours | number | – | – |
| location | object | – | – |
| series | array | yes | – |
| units | string | yes | – |
No examples provided.
get_observed_precipitation Observed precipitation ~311
How much rain fell: observed precipitation totals at a place over trailing 1 to 72 h windows (`hours`, default 24), or ending at a past time (`end` with `start`), from radar estimates bias-corrected to rain gauges. Values have about 0.08 in (2 mm) resolution, so 0 means under about 0.04 in, and data runs about an hour behind; `product: nowcast` adds the next hour's radar nowcast (peak intensity, type and start, not an amount). Example: {"location": "Chicago, IL", "hours": 24}.
| Name | Type | Req | Description |
|---|---|---|---|
| at | string | – | Time: one instant (at least 10 characters). |
| end | string | – | Time: window end (with `start`) (at least 10 characters). |
| hours | integer | – | Time: a rolling window of this many hours (ahead for a forecast, back for an analysis) (>= 1). |
| location | string | yes | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| product | string | – | Which product to read: one of observed, nowcast (default observed). |
| start | string | – | Time: window start (with `end`) (at least 10 characters). |
| units | – | – | metric, imperial or si; omitted returns each variable's catalog `units` (SI). |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| as_of | string | – | End of the newest hourly bucket. |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| location | object | – | – |
| nowcast | – | – | – |
| units | string | yes | – |
| windows | array | – | – |
No examples provided.
get_status Get status ~139
Data freshness of the weather platform (no inputs needed; refreshed about every 5 minutes): overall state, per-source states (ok / degraded / outage / no_signal), open incidents with their cause (provider outage vs internal processing delay) and active provider advisories. Use it when asked whether data is current, when other tools return stale-looking data, or before presenting time-critical weather. If a source is degraded or in outage, say the data may be stale rather than presenting it as live. Example: {}.
| Name | Type | Req | Description |
|---|---|---|---|
| include_ok | boolean | – | true: every monitored source, healthy ones too. false (default): only sources that are not ok. |
| Name | Type | Req | Description |
|---|---|---|---|
| advisories | array | – | – |
| generated_at | string | – | When the status document was generated (UTC). |
| note | string | – | – |
| overall | string | yes | Worst state across customer-facing data sources; "unknown" when status is unavailable. |
| sources | array | – | – |
No examples provided.
get_time_context Get time context ~133
Local time, timezone, a 14-day calendar with day names and Today/Tomorrow labels, sunrise, sunset and solar times, and moon phase and rise and set for a place. Use it to reason about dates, times or daylight there ("when is sunset?", "is it dark there now?"); when current_time.timezone_resolved is false, state times in UTC. Example: {"location": "Seattle, WA"}.
| Name | Type | Req | Description |
|---|---|---|---|
| location | string | yes | Space: one place (place text, ZIP or `lat,lon`). EDR position; `nearest` on a feature product (non-empty). |
| Name | Type | Req | Description |
|---|---|---|---|
| _sources | array | – | Per-source provenance: what produced these values and when. |
| attribution | string | – | Attribution the dataset licence requires. Cite it when quoting these values. |
| calendar | array | yes | – |
| current_time | object | yes | – |
| data_status | object | – | Present only when the data service did not answer and a cached copy was served. |
| daylight | object | yes | – |
| location | object | – | – |
| moon | object | yes | – |
No examples provided.
search_data Search data ~295
Search the data catalog: which dataset's values answer a question about weather and the people and places it affects, or what data exists at a point. With `query` it ranks grids, radar, satellite, outlooks and observations and returns hits with variable, units, cadence, why, the exact `call` to run next (a named place fills its `area`) and any verified `example`; without it, it lists datasets at the place with freshness, or every public one. A place (`location` or lat/lon) or `domain` keeps datasets covering it; variables come from describe_data. Example: {"location": "Anchorage, AK"}.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Coverage filter without a place. |
| family | string | – | Only this source family, describe_data's `family` (1-40 characters). |
| kind | string | – | Only this dataset kind. |
| lat | number | – | Latitude (-90 to 90), with lon. |
| limit | integer | – | Rows (1-10); default 5 with query, all without. |
| location | string | – | "City, ST", ZIP or "lat,lon" (up to 200 chars); not with lat/lon. |
| lon | number | – | Longitude (-180 to 180), with lat. |
| query | string | – | The question in the user's words (2-200 characters); omit to list. |
| Name | Type | Req | Description |
|---|---|---|---|
| data_status | object | – | Listing at a place: present only when the data service did not provide freshness, or answered from a cached copy. |
| domain | string|null | – | The coverage filter applied: the place's domain, or `domain`. |
| hits | array | yes | – |
| location | object | – | – |
| note | string | – | – |
| query | string | – | – |
No examples provided.
How do I install the Smarter Weather MCP server?
Smarter Weather is a hosted endpoint at https://mcp.smarterweather.com/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.smarterweather.com
claude mcp add --transport http smarterweather-weather 'https://mcp.smarterweather.com/'
What is the Smarter Weather MCP server?
Smarter Weather is an MCP server listed in the public MCP registry as io.github.smarterweather/weather. Smarter Weather MCP: forecasts, alerts, outlooks, observations, AQI, grids, and map imagery. This page covers its hosted endpoint (https://mcp.smarterweather.com).
Is the Smarter Weather MCP server safe to use?
Smarter Weather scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Smarter Weather MCP server expose?
Smarter Weather exposes 13 tools: find_places, get_forecast, get_current_conditions, get_alerts, get_observed_precipitation, and 8 more. Their descriptions and schemas cost roughly 3,761 tokens of context every time the server is loaded.
Does the Smarter Weather MCP server require authentication?
No. We connected to Smarter Weather without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Smarter Weather MCP server still maintained?
Smarter Weather is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Smarter Weather MCP server?
VerifyMCP ran 14 checks on Smarter Weather, covering TLS certificate, Authorization, HTTPS, HSTS header and 10 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.