Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Weathersight is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Historical weather and climate: 100+ years of station data, normals, extremes, and trends.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http weathersight-mcp https://weathersight.io/api/mcp
# 2 — ask your agent for something these tools do
# anom, anomalies, bestplace and 18 more
Weathersight costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http weathersight-mcp https://weathersight.io/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
21 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Returns observations with 1991–2020 baseline comparisons at daily, weekly, or monthly granularity for a location and period. <br><b>When to use:</b> Graph or tabulate recent anomalies at a location for a specific period — e.g. 'how did last month compare to normal?' <br><b>Date format:</b> YYYYMMDD for ymd; use groupby (day/week/month) to control granularity. For 'last week' use YYYYMMDD of 7 days
| Parameter | Type | Required | Notes |
|---|---|---|---|
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| observed_period | string | no | Observed period (default: 1) |
| period_type | string | no | Period Type [ MONTH | YEAR | WEEK | DAY | FULL_DAY | FUTURE_DAY] (default: FULL_DAY) |
| ymd_end | string | yes | End of period (YYYY[MMDD]) |
| ymd_start | string | yes | Start of period (YYYY[MMDD]) |
Returns precomputed anomalous observations for locations in a given time period and scope. <br><b>When to use:</b> Survey anomalous weather at regional or global scale quickly without specifying individual cities. <br><b>Date format:</b> YYYY[MM[DD]]: YYYY for annual anomalies (scope=year), YYYYMM for monthly (scope=month), YYYYMMDD for weekly or daily (scope=week/day). <br><b>Performance:</b> Fas
| Parameter | Type | Required | Notes |
|---|---|---|---|
| anomaly_type | string | no | Anomaly Type [HIGH | LOW] |
| category | string | no | Metrics Category[Not Available] as defined by /api/metrics |
| ctryid | string | no | Country IDs (comma sep) returned by /api/countries |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| metrics | string | no | One of metrics returned by /api/metrics. Overrides 'CAT' |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| period_type | string | no | Period Type [MONTH | WEEK | YEAR | DAY | FULL_DAY | FUTURE_DAY] (default: DAY) |
| scope | string | no | Scope Type [week | month | year] |
| ymd | string | yes | Time Period YYYY[MMDD] |
| z | string | no | Minimum avg std-devs departure from mean (default: 0) |
Given a single week, month, or day, ranks locations whose weather best matches a set of criteria (most optional criteria met first; all MUST criteria satisfied by every result). Filter by lat/lon+radius or countries. <br><b>When to use:</b> Answer 'where has the best weather for week/month/day X?' <br><b>Date format:</b> scope=day + time=YYYYMMDD (forecast); scope=week + time=MMDD; scope=month + t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline | string | no | Baseline year range YYYY-YYYY (default: 1996-2025) |
| criteria | string | yes | JSON array of criteria, passed as a string. Example: [{"metric":"avg:max_t.p50","lb":18,"ub":28,"must_have":true},{"metric":"avg:obs.rain.sum","ub":40,"must_have":true},{"metric":"avg:obs.is_rain.coun |
| ctryid | string | no | Comma-separated ISO country codes (mutually exclusive with latlon) |
| latlon | string | no | Latitude,Longitude for area search ex: 40.78,-73.97 |
| max_results | string | no | Max results (default: 100) |
| radius_km | string | no | Radius km for area search (default: 100) |
| scope | string | no | day | week | month (default: week) |
| time | string | no | YYYYMMDD (day), MMDD (week), or MM (month) |
Given a location, ranks the weeks or months whose historical climatology best matches a set of weather criteria (most optional criteria met first; all MUST criteria satisfied by every result). <br><b>When to use:</b> Answer 'when is the best time to visit X for weather like Y?' Choose when_type=week or month over the 1996-2025 baseline. <br><b>Date format:</b> when_type: week|month|day. Historical
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline | string | no | Baseline year range YYYY-YYYY (default: 1996-2025) |
| criteria | string | yes | JSON array of criteria, passed as a string. Example: [{"metric":"avg:max_t.p50","lb":18,"ub":28,"must_have":true},{"metric":"avg:obs.rain.sum","ub":40,"must_have":true},{"metric":"avg:obs.is_rain.coun |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| max_results | string | no | Max results (default: 25) |
| name | string | no | Location name, e.g. New York |
| when_basis | string | no | historical | forecast (default: historical) |
| when_type | string | no | week | month | day (default: week) |
Returns anomalous weather conditions (breaking news) across the world or specified countries in the very recent past (observations) or immediate future (forecast). <br><b>When to use:</b> First call when looking for current or upcoming notable weather events globally or by country. <br><b>Date format:</b> No date params — always returns the most recent ~3 days of observations (breaking_type=obs) o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| breaking_type | string | no | Type of anomaly source. Values: obs (recent observations, ~last 3 days), forecast (upcoming 0-7 days). (default: obs) |
| ctryid | string | no | Comma-separated country codes to filter (as returned by /api/countries). Leave empty for global results. |
| metric_category | string | no | Filter by metric category. Values: A (All), T (Temperature), P (Precipitation), H (Humidity/Dew Point), W (Wind). (default: A) |
Returns monthly distributions of selected metrics for locations compared against a baseline period. <br><b>When to use:</b> Compute normalized and absolute deviations from a baseline, inter-annual and intra-annual variations within months and seasons. Check base_N and obs_N to assess data completeness. <br><b>Date format:</b> obs_years as YYYY or YYYY-YYYY range; months as MM or MM-MM (e.g. '06',
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base_years | string | no | Baseline period. Available: 1991-2020. (default: 1991-2020) |
| countries | string | no | Comma-separated ISO country codes to filter (e.g. 'GB,FR'). |
| lat_lon | string | no | Latitude,Longitude of area centre (e.g. '51.5,-0.1'). Used with radius_km for area search. Ignored when locids is set. |
| locids | string | no | Comma-separated location IDs (as returned by /api/location). Example: '037720_99999,432950_99999'. |
| metrics | string | yes | Metric to compare. Available: max_t, max_t.means, max_wind, max_wind.means, min_t, min_t.means, obs.dewp, obs.dewp.means, obs.dpd, obs.dpd.means, obs.gust, obs.heatindex, obs.heatindex.means, obs.is_d |
| months | string | no | Single month ('06') or hyphenated range ('MM-MM'). Seasons: '12-02' (Dec-Feb), '12-03' (Dec-Mar), '10-11' (Oct-Nov), '03-05' (Mar-May), '06-08' (Jun-Aug), '06-09' (Jun-Sep). Use 'All' for annual. Exam |
| obs_years | string | no | Observation year or range (e.g. '2024' or '2020-2024'). Values can range from 2024 to current year, or a single hyphenated range e.g. 1981-2010. |
| radius_km | string | no | Search radius in km around lat_lon. Default 100. (default: 100) |
| src_type | string | no | Data source: Obs (station observations) | ERA5 (reanalysis). (default: Obs) |
Returns monthly timeseries of selected climate trend metrics for one or more locations, suitable for long-term trend analysis. <br><b>When to use:</b> Retrieve long-term monthly timeseries for statistical trend analysis across any number of locations including globally. Use num_years and avg_N to filter sparse records. <br><b>Date format:</b> years as YYYY- range (e.g. '1975-' for 1975 to present)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avg_N | string | no | Minimum average number of days per period for years with data. (default: 0) |
| countries | string | no | Comma-separated ISO country codes to filter results (e.g. 'GB,FR'). |
| lat_lon | string | no | Latitude,Longitude of area centre (e.g. '51.5,-0.1'). Used with radius_km for area search. Ignored when locids is set. |
| locids | string | no | Comma-separated list of location IDs (as returned by /api/location). Example: '037720_99999,432950_99999'. Use locids for point queries. |
| metrics | string | yes | Comma-separated metric(s) in format agg_func:metric_id.attribute. Example: avg:max_t.p50. Available: avg:max_t.mean, avg:max_t.p10, avg:max_t.p5, avg:max_t.p90, avg:max_t.p95, avg:max_wind.p95, avg:mi |
| months | string | no | Single month ('06') or hyphenated range ('03-05' for March-May, '06-08' for June-August) or 'All' for annual trends. Example: '06' or '03-05'. |
| num_years | string | no | Minimum number of years with non-null data. Use to filter sparse records. (default: 0) |
| radius_km | string | no | Search radius in km around lat_lon. Default 100. (default: 100) |
| src_type | string | no | Data source: Obs (station observations) | ERA5 (reanalysis). ERA5 provides global coverage including ocean areas. (default: Obs) |
| years | string | no | Year range string. Known values: '1975-' (data from 1975 onward). (default: 1975-) |
Compares a location's observed weather period against the corresponding periods in a historical baseline distribution. <br><b>When to use:</b> Quantify how extreme a specific period was across all metrics at once — e.g. how anomalous was March 2025 at New York vs the 1991–2020 baseline. <br><b>Date format:</b> YYYY[MM[DD]]: YYYYMMDD for a specific day or short window (period_type DAY/WEEK), YYYYMM
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline_offset | string | no | Baseline offset in years (default: 1) |
| baseline_period | string | no | Baseline period in years (default: 30) |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| observed_period | string | no | Observed period (default: 1) |
| period_type | string | no | Period Type [ MONTH | YEAR | WEEK | DAY | FULL_DAY | FUTURE_DAY] (default: DAY) |
| ymd_end | string | yes | End of period (YYYY[MMDD]) |
| ymd_start | string | yes | Start of period (YYYY[MMDD]) |
Returns countries with their canonical country IDs used in all other API calls. <br><b>When to use:</b> Resolve country names to canonical IDs, or obtain the full list of supported countries. This list rarely changes. <br><b>Performance:</b> Fast — static data; safe to cache across calls. <br><b>Prerequisites:</b> None. <br><b>Investigate:</b> Call once if country-level filtering is needed; cache
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ctryid | string | no | Country Id |
Returns per-day observed values with percentiles and z-scores vs a sliding N-day window over a historical baseline. <br><b>When to use:</b> Graph heatwaves, cold spells, and other streaks by showing daily departures from normal. Also compare two separate periods or locations using z-scores or percentiles for normalized severity. <br><b>Date format:</b> YYYYMMDD for ymd_start and ymd_end. Keep rang
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline_year_end | string | no | Baseline year end YYYY (default: 2020) |
| baseline_year_start | string | no | Baseline year start YYYY (default: 1991) |
| category | string | no | Category: Temp | Prcp | Wind | Humidity (default: Temp) |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| name | string | no | Location name, e.g. New York |
| window | string | no | Sliding window days (3-7) (default: 7) |
| ymd_end | string | yes | Observation end date (YYYYMMDD) |
| ymd_start | string | yes | Observation start date (YYYYMMDD), max 5-year span |
Returns cumulative degree-day indicators (heating/cooling/growing) for a location and period using ERA5 reanalysis data. <br><b>When to use:</b> Estimate energy demand anomalies or agricultural stress in a recent or upcoming period. <br><b>Date format:</b> YYYYMMDD for ymd_start and ymd_end. Maximum interval is 14 days per call. <br><b>Performance:</b> Computed on demand using ERA5; moderate speed
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base_temp_C | string | no | Base temperature in °C for all indicators (default: 18.3) |
| indicators | string | no | Comma separated list of indicator names. ['hdd'|'cdd'|'wbcdd'|'gdd] (default: hdd,cdd,wbcdd) |
| is_forecast | string | no | Forecast requested? (0|1) (default: 1) |
| latlon | string | yes | Latitude,Longitude ex: 40.78,-73.97 |
| unit | string | no | Degree days as measured in F|C (default: C) |
| ymd_end | string | no | End of period (YYYYMMDD) |
| ymd_start | string | no | Start of period (YYYYMMDD) |
Finds days matching one or more compound weather conditions (e.g. hot + humid, rainy + windy) for a location. Returns up to 5000 most-recent matching events plus the total count. <br><b>When to use:</b> Count occurrences of compound weather events across years, study extreme or unusual day combinations, or identify streaks of such events. <br><b>Date format:</b> year_start/year_end as YYYY; month_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline | string | no | Baseline period used to resolve sigma/percentile bounds, format YYYY_YYYY (default: 1991_2020) |
| criteria | string | yes | JSON array of criteria objects. Each criterion is either a numeric criterion {"metric":"<name>","bound_type":"A|S|P","lower_bound":<val>,"upper_bound":<val>,"must_have":true|false} where bound_type A= |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| month_day_end | string | no | Month-day end filter MMDD e.g. 0831 (Aug 31). Omit for full year. |
| month_day_start | string | no | Month-day start filter MMDD e.g. 0601 (June 1). Omit for full year. |
| name | string | no | Location name, e.g. New York |
| year_end | string | no | Year end (YYYY, inclusive) (default: 2026) |
| year_start | string | no | Year start (YYYY) (default: 2024) |
Returns extreme value analysis (return periods) for a specified location and metric. <br><b>When to use:</b> Quantify the statistical rarity of a record or near-record value. Typically called after other APIs establish that an observation is anomalous. <br><b>Performance:</b> Computed on demand; moderate speed. <br><b>Prerequisites:</b> Use /location to obtain a locid first. Prefer level='area' ov
| Parameter | Type | Required | Notes |
|---|---|---|---|
| exceedance_type | string | no | Exceedance direction: High (probability of exceeding value) | Low (probability of being below value). (default: High) |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| level | string | no | Aggregation level: city (single station) | area (nearby stations pooled). Use 'area' to improve period of record. (default: area) |
| locid | string | no | Unique Location Identifier |
| metric_category | string | no | Metric category. Values: AVG_TEMP, DEWPH, DPD, MAX_TEMP, MIN_TEMP, PRCP, RAINH, SNOW, SNOWH, WBULB, WIND. Example: MAX_TEMP for maximum temperature extremes. (default: MAX_TEMP) |
| model_type | string | no | Statistical model: '' (empirical/default) | MLE (maximum likelihood estimate). |
| month | string | no | Two-digit month filter (e.g. '06' for June). Leave empty for all months. |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| season | string | no | Season filter as 'MM-MM' (e.g. '06-08' for Jun-Aug, '12-02' for Dec-Feb). Overridden by 'month' if both are set. |
| src_type | string | no | Data source: Obs (station observations) | ERA5 (reanalysis). ERA5 recommended for precipitation outside US. (default: Obs) |
| window_size | string | no | Rolling window in days. Temperature metrics (MAX_TEMP, MIN_TEMP, AVG_TEMP, DEWPH, WBULB, DPD): 1, 2, 3. Precipitation metrics (PRCP, SNOW, RAINH, SNOWH): 1, 2, 3, 4, 7. (default: 1) |
Scores how well each forecast model actually performed at each of many locations, by comparing what the models predicted against what was then observed. Returns one score matrix per location, models by evaluation metrics, for a single weather metric at a single lead time, plus the winning model per location. <br><b>When to use:</b> Answer 'which forecast model is most accurate here?' at scale — to
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ctryid | string | no | Comma-separated ISO country codes from /api/countries, e.g. US,CA. Omit for a global query. This endpoint compares many locations and has no single-location argument; for one place use fcastevalbyloca |
| eval_metrics | string | no | Evaluation metrics, comma-separated, any of: 'mae' mean absolute error in the metric's own unit, lower is better; 'rmse' root mean squared error, same unit, lower is better, more sensitive to large mi |
| lead_time | string | no | Forecast lead time in days. A lead time is how many days ahead the forecast was issued, so lead time 1 is yesterday's forecast for today and lead time 10 is a forecast made ten days before the day it |
| limit | string | no | Maximum locations returned, 1 to 4000 (default: 500) |
| metric | string | no | Metric names are literal and case-sensitive. Never drop the 'obs.' segment and never drop the '.mean' suffix. The eight metrics are: max_t.mean, min_t.mean, obs.temp.mean, obs.dewp.mean (C); obs.rain. |
| models | string | no | Forecast models, given as comma-separated keys: auto (Open-Meteo's own per-location blend — what a caller gets by default), IFS (ECMWF IFS 0.25 degree, physical NWP), GFS (NCEP GFS), AIFS (ECMWF AIFS, |
| sample_pct | string | no | Percent of the world's locations to sample, from 0.1 to 100. Sampling is by stable hash bucket, so every location has an equal chance of being selected and the sample is unbiased by geography. The gra |
| seed | string | no | Any string. The sample of locations is drawn deterministically from it, so the same seed always returns the same locations. Every response reports the seed it used, including when one was not supplied |
| threshold | string | no | Precipitation threshold in mm per day for the 'ets' eval metric, ignored otherwise. A day counts as a wet-day event when the total is at or above this. Useful rungs are 0.2, 1.0, 5.0, 10.0, 25.0. (def |
| ymd_end | string | no | Last day evaluated, YYYYMMDD, inclusive |
| ymd_start | string | no | Inclusive day range as YYYYMMDD. Defaults to the 14 days ending yesterday; today is never included because it has not been verified yet. At most 180 days, which is also how much history the index reta |
Scores how well each forecast model performed at ONE location, across several forecast lead times and across a sliding time window. Shows both how fast accuracy decays as the forecast reaches further ahead, and how accuracy at a given lead time has varied over recent weeks. <br><b>When to use:</b> Answer 'how far ahead can I trust the forecast here?' or 'has the forecast been unusually poor here l
| Parameter | Type | Required | Notes |
|---|---|---|---|
| eval_metrics | string | no | Evaluation metrics, comma-separated, any of: 'mae' mean absolute error in the metric's own unit, lower is better; 'rmse' root mean squared error, same unit, lower is better, more sensitive to large mi |
| latlon | string | no | 'lat,lon' ex: 37.62,-122.4. Used if locid and name are absent |
| lead_times | string | no | Comma-separated forecast lead times in days. A lead time is how many days ahead the forecast was issued, so lead time 1 is yesterday's forecast for today and lead time 10 is a forecast made ten days b |
| locid | string | no | Location id from /api/location, e.g. 725030_14732 |
| metric | string | no | Metric names are literal and case-sensitive. Never drop the 'obs.' segment and never drop the '.mean' suffix. The eight metrics are: max_t.mean, min_t.mean, obs.temp.mean, obs.dewp.mean (C); obs.rain. |
| models | string | no | Forecast models, given as comma-separated keys: auto (Open-Meteo's own per-location blend — what a caller gets by default), IFS (ECMWF IFS 0.25 degree, physical NWP), GFS (NCEP GFS), AIFS (ECMWF AIFS, |
| name | string | no | Place name, e.g. 'San Francisco'. Ignored if locid is set |
| threshold | string | no | Precipitation threshold in mm per day for the 'ets' eval metric, ignored otherwise. A day counts as a wet-day event when the total is at or above this. Useful rungs are 0.2, 1.0, 5.0, 10.0, 25.0. (def |
| window | string | no | Sliding window in days for the moving average. A 14 day range with a 7 day window yields 8 windows. Defaults to the whole range, which yields exactly one window |
| ymd_end | string | no | Last day evaluated, YYYYMMDD, inclusive |
| ymd_start | string | no | Inclusive day range as YYYYMMDD. Defaults to the 14 days ending yesterday; today is never included because it has not been verified yet. At most 180 days, which is also how much history the index reta |
Returns meta information for a location given a name, locid, or lat/lon. <br><b>When to use:</b> Obtain the canonical locid needed by all location-specific API calls. Typically the first call in any workflow. <br><b>Performance:</b> Fast — precomputed lookup. <br><b>Prerequisites:</b> None — this is the entry point. <br><b>Investigate:</b> Call first whenever the user names a city or region; cache
| Parameter | Type | Required | Notes |
|---|---|---|---|
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
Returns the catalogue of all supported weather metric identifiers with units and categories. <br><b>When to use:</b> Resolve metric IDs to human-friendly names, units, and categories. Call once and cache per session. <br><b>Performance:</b> Fast — static data; safe to cache for the lifetime of a session. <br><b>Prerequisites:</b> None. <br><b>Investigate:</b> Call once at session start; use metric
No parameter schema on file.
Returns recent weather records (all-time or period-of-record extremes) for the world or specified countries. <br><b>When to use:</b> Find which locations have broken or nearly broken records in a recent date window. Set history_years ≥ 15 to ensure a meaningful period of record. <br><b>Date format:</b> YYYYMMDD for ymd_start and ymd_end. Keep windows ≤ 3 months per call for reasonable performance.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ctryid | string | no | Comma-separated country codes to filter (as returned by /api/countries). |
| history_years | string | no | Minimum years of history required to qualify as a record. Use >= 15 for meaningful records. (default: 5) |
| metrics | string | no | Applicable metrics. For period_type DAY: ('temp.max','temp.min', 'temp.mean', 'rain.mean', 'snow.mean', 'dewp.mean', 'wbulb.max', 'heatindex.max', 'wbgt.max', 'dpd.max','gust.max','wind.max','rainh.ma |
| period_type | string | no | Period type. Values: DAY (US daily obs), FULL_DAY (non-US daily obs), FUTURE_DAY (forecast). (default: FULL_DAY) |
| scope | string | no | Record scope. Values: month (monthly records), week (weekly records), year (annual records). (default: month) |
| ymd_end | string | no | End date YYYYMMDD. Defaults to today. |
| ymd_start | string | no | Start date YYYYMMDD. Defaults to 15 days ago. |
Seasonal (monthly) forecast anomalies for the next six months, with the local climatology they are measured against. Each result gives, per metric: the ERA5 baseline mean (means), its interannual standard deviation (std), the predicted anomaly (anom, in degrees C / mm / km/h) and how unusual that is, both as standard deviations (norm) and as a percentile rank among the last 30 years (perc). <br><b
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline | string | no | Baseline year range YYYY-YYYY (default: 1996-2025) |
| criteria | string | no | JSON array of criteria, passed as a string. Optional for this API: omit it to get every location for the requested months. Example: [{"metric":"norm:max_t.mean","lb":1.5,"must_have":true},{"metric":"p |
| ctryid | string | no | Comma-separated ISO country codes (mutually exclusive with latlon) |
| cursor | string | no | next_cursor from a previous response. Only valid with sort=locid; sending it with a ranked sort is an error |
| fields | string | no | 'full' for everything, 'compact' for locid/lat/lon/ym plus anom, norm and perc of the requested metrics only (default: full) |
| latlon | string | no | Centre of an area search as 'lat,lon' ex: 37.62,-122.4 |
| limit | string | no | Results per page, 1 to 4000. 4000 covers every location in one page (default: 100) |
| locid | string | no | Location id from /api/location, e.g. 724940_23234 |
| metrics | string | no | Comma-separated metrics to return: max_t.mean, min_t.mean, obs.temp.mean, obs.dewp.mean, obs.wind.mean, obs.rain.sum, obs.snow.sum. The metric named by sort is always returned as well, whether or not |
| name | string | no | Place name, e.g. 'San Francisco'. Ignored if locid is set |
| offset | string | no | Offset into a ranked result (any sort except locid). offset plus limit must be at most 4000. Use cursor, not offset, with sort=locid (default: 0) |
| radius_km | string | no | Radius km for latlon, 1 to 2000 (default: 100) |
| sort | string | no | One of: 'criteria' (most optional criteria met first), 'locid' (id order, resumable with cursor), or an attribute name to rank by how far from normal it is: 'norm:METRIC' or 'perc:METRIC', e.g. norm:o |
| src_type | string | no | Forecast model to read: SEAS5 (ECMWF seasonal). SEAS5 is currently the only value, so this can be omitted. (default: SEAS5) |
| ym_end | string | no | Last target month as YYYYMM, inclusive. Must be at least ym_start. Defaults to ym_start plus 5 months. |
| ym_start | string | no | First target month as YYYYMM, e.g. 202611. For a single month set ym_start and ym_end to the same value. Defaults to next month. |
Returns aggregated metric values as a yearly or monthly timeseries for a location. <br><b>When to use:</b> Detect long-term trends and compute statistical significance (r-squared, p-value). Best suited for multi-decade spans. <br><b>Date format:</b> mm_dd_start/mm_dd_end as MMDD (day-of-year window, not a calendar year); year_start/year_end as YYYY. Note: Use mm_dd_start/mm_dd_end as MM when month
| Parameter | Type | Required | Notes |
|---|---|---|---|
| groupby | string | no | Aggregating key: Year | Month | Week | Hour (default: Year) |
| hour_end | string | no | Hour End (00 to 24) (default: 24) |
| hour_start | string | no | Hour Start (00 to 24) (default: 24) |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| metrics | string | yes | Comma separated list of tuple describing <i>aggregation function</i>:<i>metric_id</i>.<i>attribute</i> <br> ex: sum:obs.is_rain.count, avg:max_t.p99<br>agg_func = {sum,avg,min,max}. See /api/metrics f |
| month_day_end | string | no | Month day start MM[DD] |
| month_day_start | string | no | Month day start MM[DD] |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| src_type | string | no | Data source type: Obs (station observations) | ERA5 (reanalysis gridded data) (default: Obs) |
| year_end | string | no | Year end YYYY (default: 2025) |
| year_start | string | no | Year start start YYYY (default: 1975) |
Returns statistical distributions of weather attributes (temperature, precipitation, wind, etc.) for a location and time period. <br><b>When to use:</b> Establish the climatological baseline — what is 'normal' for this location and period. Use before discussing anomalies. <br><b>Date format:</b> YYYY[MM[DD]]: YYYYMMDD for a specific week, YYYYMM for a month, YYYY for a seasonal or annual overview.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hour_end | string | no | Hour End (00 to 24) (default: 24) |
| hour_start | string | no | Hour Start (00 to 24) (default: 24) |
| latlon | string | no | Latitude,Longitude ex: 40.78,-73.97 |
| locid | string | no | Unique Location Identifier |
| lookback | string | no | Years looked back[1] (1 to 40) (default: 30) |
| name | string | no | Common name of metro or metro area. for ex: New York, Beijing, Mumbai Airport |
| ymd_end | string | yes | End of period (YYYY[MMDD]) |
| ymd_start | string | yes | Start of period (YYYY[MMDD]) |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Weathersight or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| anom | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| anomalies | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| bestplace | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| besttime | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| breaking | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| climatecomps | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| climatetrends | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| compare | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| countries | untrusted-input | untrusted-input: keyword "fetch", declares openWorldHint: true (interacts with entities outside the server) |
| dailycomp | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| degreedays | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| events | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| extremes | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| fcastevalbygroup | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| fcastevalbylocation | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| location | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| metrics | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| recentextremes | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| seasonal | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| timeseries | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| typicalweather | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Weathersight can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.