Skip to main content
Glama

Criora: climate & disaster risk for any place

7-day weather forecast and extreme-weather risk

get_forecast
Read-onlyIdempotent

This week's weather and extreme-weather risk at a place, day by day: temperature, rain, wind and each day's risk class (Very low, Low, Medium, High, Critical) with the hazard behind it and why. Heat and cold are graded on UTCI, the felt temperature outdoors.

Use for the next 7 days: "will it storm in Lisbon on Friday", "is it too hot to hike this week". Days 8 and later: assess_place with dates. Disasters already happening: get_hazards_near. Long-term exposure: get_climate_profile.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_forecast"
  }
}

Input Schema

NameRequiredDescriptionDefault
languageNoLanguage code for the name of the place found (resolved_from); the rest of the answer is Englishen
latitudeNoLatitude, WGS84; or give place_name
longitudeNoLongitude, WGS84; or give place_name
place_nameNoA place name or street address; add the country after a comma when ambiguous (Portland, Maine)
response_formatNoconcise (default) answers the question; detailed adds every field the sources giveconcise

Output Schema

NameRequiredDescriptionDefault
runYes
daysYes
notesYes
stepsNo
unitsYes
creditYes
issuedYes
sourceYes
locationYes
precisionYes
truncatedNo
criora_urlYes
risk_scaleYes
resolved_fromYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed96 schema fields changed
    • removedOutput schema / $defs / Credit / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Credit / properties / attribution / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Credit / properties / attribution / default
      Removed value: -null
    • removedOutput schema / $defs / Credit / properties / attribution / description
      Removed value: -"The credit the licence asks for when it is retold"
    • addedOutput schema / $defs / Credit / properties / attribution / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Credit / properties / licence / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Credit / properties / licence / default
      Removed value: -null
    • addedOutput schema / $defs / Credit / properties / licence / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Credit / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Credit / properties / name / default
      Removed value: -null
    • removedOutput schema / $defs / Credit / properties / name / description
      Removed value: -"The feed's name as it is cited"
    • addedOutput schema / $defs / Credit / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Driver / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Driver / properties / air_temperature_max / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Driver / properties / air_temperature_max / description
      Removed value: -"For heat and cold, the highest air temperature beside the UTCI; null otherwise"
    • addedOutput schema / $defs / Driver / properties / air_temperature_max / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Driver / properties / limit / description
      Removed value: -"Set where the value is past the end of the ladder and is only a bound"
    • removedOutput schema / $defs / Driver / properties / value / description
      Removed value: -"The value that set the class"
    • removedOutput schema / $defs / Driver / properties / value_max / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Driver / properties / value_max / description
      Removed value: -"The highest value the stored class allows; null when open"
    • addedOutput schema / $defs / Driver / properties / value_max / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Driver / properties / value_min / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Driver / properties / value_min / description
      Removed value: -"The lowest value the stored class allows; null when open"
    • addedOutput schema / $defs / Driver / properties / value_min / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Driver / properties / variable / description
      Removed value: -"utci, the felt temperature in full sun; wind_gust_10m; or precip_intensity_mmh"
    • removedOutput schema / $defs / ForecastDay / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / ForecastDay / properties / date / description
      Removed value: -"The local day"
    • removedOutput schema / $defs / ForecastDay / properties / partial / description
      Removed value: -"True when the forecast window starts or ends inside the day"
    • removedOutput schema / $defs / ForecastDay / properties / precipitation_rate_max / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastDay / properties / precipitation_rate_max / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ForecastDay / properties / risk / description
      Removed value: -"The day's highest risk; null when no step of the day is graded"
    • removedOutput schema / $defs / ForecastDay / properties / step_hours / description
      Removed value: -"Hours between the day's steps: 1, 3 or 6"
    • removedOutput schema / $defs / ForecastDay / properties / temperature_max / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastDay / properties / temperature_max / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ForecastDay / properties / temperature_min / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastDay / properties / temperature_min / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ForecastDay / properties / wind_speed_max / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastDay / properties / wind_speed_max / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ForecastSource / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / ForecastStep / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / ForecastStep / properties / temperature / additionalProperties / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastStep / properties / temperature / additionalProperties / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ForecastStep / properties / wind / additionalProperties / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ForecastStep / properties / wind / additionalProperties / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Location / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Reading / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Reading / properties / variable / description
      Removed value: -"utci, the felt temperature; wind_gust_10m; or precip_intensity_mmh"
    • removedOutput schema / $defs / Risk / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Risk / properties / class / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / class / description
      Removed value: -"The class's place in risk_scale, from 0; null where the forecast holds no value"
    • addedOutput schema / $defs / Risk / properties / class / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / driver / default
      Removed value: -null
    • removedOutput schema / $defs / Risk / properties / driver / description
      Removed value: -"The value, threshold and air temperature behind the class"
    • removedOutput schema / $defs / Risk / properties / explanation / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / explanation / default
      Removed value: -null
    • removedOutput schema / $defs / Risk / properties / explanation / description
      Removed value: -"The class in words, built from the driver"
    • addedOutput schema / $defs / Risk / properties / explanation / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / hazard / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / hazard / description
      Removed value: -"The hazard behind the class; null at the lowest"
    • addedOutput schema / $defs / Risk / properties / hazard / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / hazard_code / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / hazard_code / default
      Removed value: -null
    • addedOutput schema / $defs / Risk / properties / hazard_code / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / level / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / level / description
      Removed value: -"The class, as risk_scale names it; null where it holds no value"
    • addedOutput schema / $defs / Risk / properties / level / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / local_time / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Risk / properties / local_time / default
      Removed value: -null
    • removedOutput schema / $defs / Risk / properties / local_time / description
      Removed value: -"When in the day the class peaks"
    • addedOutput schema / $defs / Risk / properties / local_time / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Risk / properties / reading / default
      Removed value: -null
    • removedOutput schema / $defs / Risk / properties / reading / description
      Removed value: -"The physical reading behind the class"
    • removedOutput schema / $defs / Threshold / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Threshold / properties / class / description
      Removed value: -"The class the value falls in, as risk_scale names it"
    • removedOutput schema / $defs / Threshold / properties / from / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Threshold / properties / from / description
      Removed value: -"Where the class begins"
    • addedOutput schema / $defs / Threshold / properties / from / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Threshold / properties / to / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Threshold / properties / to / description
      Removed value: -"Where the next class begins; null at the top class"
    • addedOutput schema / $defs / Threshold / properties / to / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Truncated / description
      Removed value: -"Set when an answer was held under its size: the tail of its main list left out."
    • removedOutput schema / $defs / Truncated / properties / field / description
      Removed value: -"The answer's list that was cut"
    • removedOutput schema / $defs / Truncated / properties / left_out / description
      Removed value: -"How many of its entries, the least important, were left out"
    • removedOutput schema / $defs / Truncated / properties / left_out_names / default
      Removed value: -null
    • removedOutput schema / $defs / Truncated / properties / left_out_names / description
      Removed value: -"Each entry left out, where the list is not ordered by importance"
    • removedOutput schema / $defs / Truncated / properties / why / description
      Removed value: -"The limit, and how to ask for the rest"
    • removedOutput schema / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / credit / description
      Removed value: -"How a retelling credits the answer: Source: Criora with a link to the page the answer is about, then each originator whose data it quotes in the words its licence asks for. Concise, each credit once; detailed, by source with its name and licence, criora first"
    • removedOutput schema / properties / precision / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / resolved_from / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / resolved_from / description
      Removed value: -"What a place name was resolved to; null when coordinates were given"
    • addedOutput schema / properties / resolved_from / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / steps / default
      Removed value: -null
    • removedOutput schema / properties / steps / description
      Removed value: -"Every forecast step, with response_format=detailed"
    • removedOutput schema / properties / truncated / default
      Removed value: -null
    • removedOutput schema / properties / truncated / description
      Removed value: -"Absent unless the answer was cut to fit"
  2. Changed99 schema fields changed
    • removedInput schema / properties / hourly
      Removed value: -{
      -  "default": false,
      -  "description": "Add every forecast step, hour by hour where the model has them, to the daily summary",
      -  "title": "Hourly",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / language
      Added value: +{
      +  "default": "en",
      +  "description": "Language code for the name of the place found (resolved_from); the rest of the answer is English",
      +  "enum": [
      +    "en",
      +    "de",
      +    "fr",
      +    "it",
      +    "es",
      +    "nl",
      +    "pl",
      +    "uk",
      +    "ro",
      +    "sr",
      +    "ru"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / latitude / anyOf
      Removed value: -[
      -  {
      -    "maximum": 90,
      -    "minimum": -90,
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / latitude / default
      Removed value: -null
    • changedInput schema / properties / latitude / description
      Previous value: -"Latitude of the place asked about, in degrees, WGS84. Give it with longitude, or give place instead"New value: +"Latitude, WGS84; or give place_name"
    • addedInput schema / properties / latitude / maximum
      Added value: +90
    • addedInput schema / properties / latitude / minimum
      Added value: +-90
    • removedInput schema / properties / latitude / title
      Removed value: -"Latitude"
    • addedInput schema / properties / latitude / type
      Added value: +"number"
    • removedInput schema / properties / longitude / anyOf
      Removed value: -[
      -  {
      -    "maximum": 180,
      -    "minimum": -180,
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / longitude / default
      Removed value: -null
    • changedInput schema / properties / longitude / description
      Previous value: -"Longitude of the place asked about, in degrees, WGS84. Give it with latitude, or give place instead"New value: +"Longitude, WGS84; or give place_name"
    • addedInput schema / properties / longitude / maximum
      Added value: +180
    • addedInput schema / properties / longitude / minimum
      Added value: +-180
    • removedInput schema / properties / longitude / title
      Removed value: -"Longitude"
    • addedInput schema / properties / longitude / type
      Added value: +"number"
    • removedInput schema / properties / place
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "A place name or address, used only when latitude and longitude are not given. It is resolved to its best match by a geocoder shared by every user and limited to one lookup a second, so pass coordinates when you have them",
      -  "title": "Place"
      -}
    • addedInput schema / properties / place_name
      Added value: +{
      +  "description": "A place name or street address; add the country after a comma when ambiguous (Portland, Maine)",
      +  "type": "string"
      +}
    • addedInput schema / properties / response_format
      Added value: +{
      +  "default": "concise",
      +  "description": "concise (default) answers the question; detailed adds every field the sources give",
      +  "enum": [
      +    "concise",
      +    "detailed"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / title
      Removed value: -"get_forecastArguments"
    • addedOutput schema / $defs / Credit
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "attribution": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "The credit the licence asks for when it is retold"
      +    },
      +    "licence": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "name": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "The feed's name as it is cited"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / $defs / Driver / properties / air_temperature_max / title
      Removed value: -"Air Temperature Max"
    • removedOutput schema / $defs / Driver / properties / limit / title
      Removed value: -"Limit"
    • removedOutput schema / $defs / Driver / properties / unit / title
      Removed value: -"Unit"
    • removedOutput schema / $defs / Driver / properties / value / title
      Removed value: -"Value"
    • removedOutput schema / $defs / Driver / properties / value_max / title
      Removed value: -"Value Max"
    • removedOutput schema / $defs / Driver / properties / value_min / title
      Removed value: -"Value Min"
    • removedOutput schema / $defs / Driver / properties / variable / title
      Removed value: -"Variable"
    • removedOutput schema / $defs / Driver / title
      Removed value: -"Driver"
    • removedOutput schema / $defs / ForecastDay / properties / date / title
      Removed value: -"Date"
    • removedOutput schema / $defs / ForecastDay / properties / partial / title
      Removed value: -"Partial"
    • removedOutput schema / $defs / ForecastDay / properties / precipitation_rate_max / title
      Removed value: -"Precipitation Rate Max"
    • removedOutput schema / $defs / ForecastDay / properties / risk / $ref
      Removed value: -"#/$defs/Risk"
    • addedOutput schema / $defs / ForecastDay / properties / risk / anyOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/Risk"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / ForecastDay / properties / risk / description
      Previous value: -"The day's highest risk"New value: +"The day's highest risk; null when no step of the day is graded"
    • removedOutput schema / $defs / ForecastDay / properties / risk_by_hazard / title
      Removed value: -"Risk By Hazard"
    • removedOutput schema / $defs / ForecastDay / properties / step_hours / title
      Removed value: -"Step Hours"
    • removedOutput schema / $defs / ForecastDay / properties / steps / title
      Removed value: -"Steps"
    • removedOutput schema / $defs / ForecastDay / properties / temperature_max / title
      Removed value: -"Temperature Max"
    • removedOutput schema / $defs / ForecastDay / properties / temperature_min / title
      Removed value: -"Temperature Min"
    • removedOutput schema / $defs / ForecastDay / properties / wind_speed_max / title
      Removed value: -"Wind Speed Max"
    • removedOutput schema / $defs / ForecastDay / title
      Removed value: -"ForecastDay"
    • removedOutput schema / $defs / ForecastSource / properties / attribution / title
      Removed value: -"Attribution"
    • removedOutput schema / $defs / ForecastSource / properties / institution / title
      Removed value: -"Institution"
    • removedOutput schema / $defs / ForecastSource / properties / licence / title
      Removed value: -"Licence"
    • removedOutput schema / $defs / ForecastSource / properties / model / title
      Removed value: -"Model"
    • removedOutput schema / $defs / ForecastSource / title
      Removed value: -"ForecastSource"
    • removedOutput schema / $defs / ForecastStep / properties / local_time / title
      Removed value: -"Local Time"
    • removedOutput schema / $defs / ForecastStep / properties / precipitation / title
      Removed value: -"Precipitation"
    • removedOutput schema / $defs / ForecastStep / properties / step / title
      Removed value: -"Step"
    • removedOutput schema / $defs / ForecastStep / properties / temperature / title
      Removed value: -"Temperature"
    • removedOutput schema / $defs / ForecastStep / properties / valid_time / title
      Removed value: -"Valid Time"
    • removedOutput schema / $defs / ForecastStep / properties / wind / title
      Removed value: -"Wind"
    • removedOutput schema / $defs / ForecastStep / title
      Removed value: -"ForecastStep"
    • removedOutput schema / $defs / Location / properties / lat / title
      Removed value: -"Lat"
    • removedOutput schema / $defs / Location / properties / lon / title
      Removed value: -"Lon"
    • removedOutput schema / $defs / Location / title
      Removed value: -"Location"
    • removedOutput schema / $defs / Reading / properties / description / title
      Removed value: -"Description"
    • removedOutput schema / $defs / Reading / properties / unit / title
      Removed value: -"Unit"
    • removedOutput schema / $defs / Reading / properties / value / title
      Removed value: -"Value"
    • removedOutput schema / $defs / Reading / properties / variable / title
      Removed value: -"Variable"
    • removedOutput schema / $defs / Reading / title
      Removed value: -"Reading"
    • addedOutput schema / $defs / Risk / properties / class / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / Risk / properties / class / description
      Previous value: -"The class's place in risk_scale, from 0"New value: +"The class's place in risk_scale, from 0; null where the forecast holds no value"
    • removedOutput schema / $defs / Risk / properties / class / title
      Removed value: -"Class"
    • removedOutput schema / $defs / Risk / properties / class / type
      Removed value: -"integer"
    • removedOutput schema / $defs / Risk / properties / explanation / title
      Removed value: -"Explanation"
    • removedOutput schema / $defs / Risk / properties / hazard / title
      Removed value: -"Hazard"
    • addedOutput schema / $defs / Risk / properties / hazard_code / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / Risk / properties / hazard_code / default
      Added value: +null
    • removedOutput schema / $defs / Risk / properties / hazard_code / title
      Removed value: -"Hazard Code"
    • removedOutput schema / $defs / Risk / properties / hazard_code / type
      Removed value: -"integer"
    • addedOutput schema / $defs / Risk / properties / level / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / Risk / properties / level / description
      Previous value: -"The class, as risk_scale names it"New value: +"The class, as risk_scale names it; null where it holds no value"
    • removedOutput schema / $defs / Risk / properties / level / title
      Removed value: -"Level"
    • removedOutput schema / $defs / Risk / properties / level / type
      Removed value: -"string"
    • removedOutput schema / $defs / Risk / properties / local_time / title
      Removed value: -"Local Time"
    • changedOutput schema / $defs / Risk / required
      Previous value: -[
      -  "class",
      -  "level",
      -  "hazard",
      -  "hazard_code"
      -]New value: +[
      +  "class",
      +  "level",
      +  "hazard"
      +]
    • removedOutput schema / $defs / Risk / title
      Removed value: -"Risk"
    • removedOutput schema / $defs / Threshold / properties / class / title
      Removed value: -"Class"
    • removedOutput schema / $defs / Threshold / properties / from / title
      Removed value: -"From"
    • removedOutput schema / $defs / Threshold / properties / to / title
      Removed value: -"To"
    • removedOutput schema / $defs / Threshold / title
      Removed value: -"Threshold"
    • addedOutput schema / $defs / Truncated
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when an answer was held under its size: the tail of its main list left out.",
      +  "properties": {
      +    "field": {
      +      "description": "The answer's list that was cut",
      +      "type": "string"
      +    },
      +    "left_out": {
      +      "description": "How many of its entries, the least important, were left out",
      +      "type": "integer"
      +    },
      +    "left_out_names": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Each entry left out, where the list is not ordered by importance"
      +    },
      +    "why": {
      +      "description": "The limit, and how to ask for the rest",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "field",
      +    "left_out",
      +    "why"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / credit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "additionalProperties": {
      +        "$ref": "#/$defs/Credit"
      +      },
      +      "type": "object"
      +    }
      +  ],
      +  "description": "How a retelling credits the answer: Source: Criora with a link to the page the answer is about, then each originator whose data it quotes in the words its licence asks for. Concise, each credit once; detailed, by source with its name and licence, criora first"
      +}
    • removedOutput schema / properties / criora_url / title
      Removed value: -"Criora Url"
    • removedOutput schema / properties / days / title
      Removed value: -"Days"
    • removedOutput schema / properties / issued / title
      Removed value: -"Issued"
    • removedOutput schema / properties / notes / title
      Removed value: -"Notes"
    • removedOutput schema / properties / precision / title
      Removed value: -"Precision"
    • removedOutput schema / properties / resolved_from / title
      Removed value: -"Resolved From"
    • removedOutput schema / properties / risk_scale / title
      Removed value: -"Risk Scale"
    • removedOutput schema / properties / run / title
      Removed value: -"Run"
    • changedOutput schema / properties / steps / description
      Previous value: -"Every forecast step, with hourly=true"New value: +"Every forecast step, with response_format=detailed"
    • removedOutput schema / properties / steps / title
      Removed value: -"Steps"
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Truncated"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Absent unless the answer was cut to fit"
      +}
    • removedOutput schema / properties / units / title
      Removed value: -"Units"
    • changedOutput schema / required
      Previous value: -[
      -  "location",
      -  "run",
      -  "issued",
      -  "source",
      -  "units",
      -  "precision",
      -  "risk_scale",
      -  "days",
      -  "criora_url",
      -  "notes",
      -  "resolved_from"
      -]New value: +[
      +  "location",
      +  "run",
      +  "issued",
      +  "source",
      +  "units",
      +  "precision",
      +  "risk_scale",
      +  "days",
      +  "criora_url",
      +  "notes",
      +  "credit",
      +  "resolved_from"
      +]
    • removedOutput schema / title
      Removed value: -"ForecastAnswer"
  3. Changed5 schema fields changed
    • addedOutput schema / $defs / Driver
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "air_temperature_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "For heat and cold, the highest air temperature beside the UTCI; null otherwise",
      +      "title": "Air Temperature Max"
      +    },
      +    "limit": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "at_least",
      +            "at_most"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Set where the value is past the end of the ladder and is only a bound",
      +      "title": "Limit"
      +    },
      +    "threshold": {
      +      "$ref": "#/$defs/Threshold"
      +    },
      +    "unit": {
      +      "title": "Unit",
      +      "type": "string"
      +    },
      +    "value": {
      +      "description": "The value that set the class",
      +      "title": "Value",
      +      "type": "number"
      +    },
      +    "value_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The highest value the stored class allows; null when open",
      +      "title": "Value Max"
      +    },
      +    "value_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The lowest value the stored class allows; null when open",
      +      "title": "Value Min"
      +    },
      +    "variable": {
      +      "description": "utci, the felt temperature in full sun; wind_gust_10m; or precip_intensity_mmh",
      +      "title": "Variable",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "variable",
      +    "value",
      +    "value_min",
      +    "value_max",
      +    "limit",
      +    "unit",
      +    "threshold",
      +    "air_temperature_max"
      +  ],
      +  "title": "Driver",
      +  "type": "object"
      +}
    • changedOutput schema / $defs / Reading / properties / variable / description
      Previous value: -"utci, the felt temperature; gust; or the precipitation rate"New value: +"utci, the felt temperature; wind_gust_10m; or precip_intensity_mmh"
    • addedOutput schema / $defs / Risk / properties / driver
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Driver"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The value, threshold and air temperature behind the class"
      +}
    • addedOutput schema / $defs / Risk / properties / explanation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The class in words, built from the driver",
      +  "title": "Explanation"
      +}
    • addedOutput schema / $defs / Threshold
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "class": {
      +      "description": "The class the value falls in, as risk_scale names it",
      +      "title": "Class",
      +      "type": "string"
      +    },
      +    "from": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Where the class begins",
      +      "title": "From"
      +    },
      +    "to": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Where the next class begins; null at the top class",
      +      "title": "To"
      +    }
      +  },
      +  "required": [
      +    "class",
      +    "from",
      +    "to"
      +  ],
      +  "title": "Threshold",
      +  "type": "object"
      +}
  4. Changed4 schema fields changed
    • addedOutput schema / $defs
      Added value: +{
      +  "ForecastDay": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "date": {
      +        "description": "The local day",
      +        "title": "Date",
      +        "type": "string"
      +      },
      +      "partial": {
      +        "description": "True when the forecast window starts or ends inside the day",
      +        "title": "Partial",
      +        "type": "boolean"
      +      },
      +      "precipitation_rate_max": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Precipitation Rate Max"
      +      },
      +      "risk": {
      +        "$ref": "#/$defs/Risk",
      +        "description": "The day's highest risk"
      +      },
      +      "risk_by_hazard": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "title": "Risk By Hazard",
      +        "type": "object"
      +      },
      +      "step_hours": {
      +        "description": "Hours between the day's steps: 1, 3 or 6",
      +        "title": "Step Hours",
      +        "type": "integer"
      +      },
      +      "steps": {
      +        "title": "Steps",
      +        "type": "integer"
      +      },
      +      "temperature_max": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Temperature Max"
      +      },
      +      "temperature_min": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Temperature Min"
      +      },
      +      "wind_speed_max": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Wind Speed Max"
      +      }
      +    },
      +    "required": [
      +      "date",
      +      "temperature_min",
      +      "temperature_max",
      +      "precipitation_rate_max",
      +      "wind_speed_max",
      +      "risk",
      +      "risk_by_hazard",
      +      "steps",
      +      "step_hours",
      +      "partial"
      +    ],
      +    "title": "ForecastDay",
      +    "type": "object"
      +  },
      +  "ForecastSource": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "attribution": {
      +        "title": "Attribution",
      +        "type": "string"
      +      },
      +      "institution": {
      +        "title": "Institution",
      +        "type": "string"
      +      },
      +      "licence": {
      +        "title": "Licence",
      +        "type": "string"
      +      },
      +      "model": {
      +        "title": "Model",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "model",
      +      "institution",
      +      "attribution",
      +      "licence"
      +    ],
      +    "title": "ForecastSource",
      +    "type": "object"
      +  },
      +  "ForecastStep": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "local_time": {
      +        "title": "Local Time",
      +        "type": "string"
      +      },
      +      "precipitation": {
      +        "additionalProperties": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "title": "Precipitation",
      +        "type": "object"
      +      },
      +      "risk": {
      +        "$ref": "#/$defs/Risk"
      +      },
      +      "step": {
      +        "title": "Step",
      +        "type": "integer"
      +      },
      +      "temperature": {
      +        "additionalProperties": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "title": "Temperature",
      +        "type": "object"
      +      },
      +      "valid_time": {
      +        "title": "Valid Time",
      +        "type": "string"
      +      },
      +      "wind": {
      +        "additionalProperties": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "title": "Wind",
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "step",
      +      "valid_time",
      +      "local_time",
      +      "temperature",
      +      "precipitation",
      +      "wind",
      +      "risk"
      +    ],
      +    "title": "ForecastStep",
      +    "type": "object"
      +  },
      +  "Location": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "lat": {
      +        "title": "Lat",
      +        "type": "number"
      +      },
      +      "lon": {
      +        "title": "Lon",
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "lat",
      +      "lon"
      +    ],
      +    "title": "Location",
      +    "type": "object"
      +  },
      +  "Reading": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "description": {
      +        "title": "Description",
      +        "type": "string"
      +      },
      +      "unit": {
      +        "title": "Unit",
      +        "type": "string"
      +      },
      +      "value": {
      +        "title": "Value",
      +        "type": "number"
      +      },
      +      "variable": {
      +        "description": "utci, the felt temperature; gust; or the precipitation rate",
      +        "title": "Variable",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "variable",
      +      "value",
      +      "unit",
      +      "description"
      +    ],
      +    "title": "Reading",
      +    "type": "object"
      +  },
      +  "Risk": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "class": {
      +        "description": "The class's place in risk_scale, from 0",
      +        "title": "Class",
      +        "type": "integer"
      +      },
      +      "hazard": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The hazard behind the class; null at the lowest",
      +        "title": "Hazard"
      +      },
      +      "hazard_code": {
      +        "title": "Hazard Code",
      +        "type": "integer"
      +      },
      +      "level": {
      +        "description": "The class, as risk_scale names it",
      +        "title": "Level",
      +        "type": "string"
      +      },
      +      "local_time": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "When in the day the class peaks",
      +        "title": "Local Time"
      +      },
      +      "reading": {
      +        "anyOf": [
      +          {
      +            "$ref": "#/$defs/Reading"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The physical reading behind the class"
      +      }
      +    },
      +    "required": [
      +      "class",
      +      "level",
      +      "hazard",
      +      "hazard_code"
      +    ],
      +    "title": "Risk",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties
      Added value: +{
      +  "criora_url": {
      +    "title": "Criora Url",
      +    "type": "string"
      +  },
      +  "days": {
      +    "items": {
      +      "$ref": "#/$defs/ForecastDay"
      +    },
      +    "title": "Days",
      +    "type": "array"
      +  },
      +  "issued": {
      +    "title": "Issued",
      +    "type": "string"
      +  },
      +  "location": {
      +    "$ref": "#/$defs/Location"
      +  },
      +  "notes": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "title": "Notes",
      +    "type": "array"
      +  },
      +  "precision": {
      +    "additionalProperties": true,
      +    "title": "Precision",
      +    "type": "object"
      +  },
      +  "resolved_from": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "What a place name was resolved to; null when coordinates were given",
      +    "title": "Resolved From"
      +  },
      +  "risk_scale": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "title": "Risk Scale",
      +    "type": "array"
      +  },
      +  "run": {
      +    "title": "Run",
      +    "type": "string"
      +  },
      +  "source": {
      +    "$ref": "#/$defs/ForecastSource"
      +  },
      +  "steps": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/ForecastStep"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "default": null,
      +    "description": "Every forecast step, with hourly=true",
      +    "title": "Steps"
      +  },
      +  "units": {
      +    "additionalProperties": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "title": "Units",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "location",
      +  "run",
      +  "issued",
      +  "source",
      +  "units",
      +  "precision",
      +  "risk_scale",
      +  "days",
      +  "criora_url",
      +  "notes",
      +  "resolved_from"
      +]
    • changedOutput schema / title
      Previous value: -"get_forecastDictOutput"New value: +"ForecastAnswer"
  5. Changed4 schema fields changed
    • changedInput schema / properties / hourly / description
      Previous value: -"Include every forecast step, not only the daily summary"New value: +"Add every forecast step, hour by hour where the model has them, to the daily summary"
    • changedInput schema / properties / latitude / description
      Previous value: -"Latitude in degrees, WGS84"New value: +"Latitude of the place asked about, in degrees, WGS84. Give it with longitude, or give place instead"
    • changedInput schema / properties / longitude / description
      Previous value: -"Longitude in degrees, WGS84"New value: +"Longitude of the place asked about, in degrees, WGS84. Give it with latitude, or give place instead"
    • changedInput schema / properties / place / description
      Previous value: -"A place name or address, used when latitude and longitude are not given"New value: +"A place name or address, used only when latitude and longitude are not given. It is resolved to its best match by a geocoder shared by every user and limited to one lookup a second, so pass coordinates when you have them"
  6. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds useful domain behavior beyond that: the five-level risk classification, that each day carries the underlying hazard and its reason, and that heat/cold are graded on UTCI felt temperature. It does not discuss rate limits or data latency, but with rich annotations and an output schema those gaps are minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight paragraphs: the first front-loads what the tool returns and how risk is graded, the second handles usage routing with concrete examples. Every sentence adds decision-relevant information with no repetition of the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return shapes; it still covers scope, the risk scale, UTCI basis, and sibling routing. Combined with complete parameter documentation and full annotations, an agent has everything needed to select and call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so latitude/longitude/place_name, language, and response_format are fully documented structurally. The description adds only indirect hints ('at a place') and does not explain parameter behavior such as the language parameter affecting only resolved_from. Baseline 3 is appropriate when the schema carries parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (this week's weather and extreme-weather risk at a place, day by day), enumerates what is returned (temperature, rain, wind, risk class with hazard and reason), and states the grading basis (UTCI). It is clearly distinguishable from siblings such as get_climate_profile and get_hazards_near.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use examples ('will it storm in Lisbon on Friday', 'is it too hot to hike this week') and routes out-of-scope cases to named alternatives: assess_place for days 8+, get_hazards_near for ongoing disasters, get_climate_profile for long-term exposure. No inference is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.