Skip to main content
Glama

Criora: climate & disaster risk for any place

Long-term climate risk of one place: floods, heat, drought, sea level

get_climate_profile
Read-onlyIdempotent

Long-term climate risk of one place or property in depth, from 57 global layers: river and coastal flood depth of a 100-year flood now, 2050 and 2080; sea level rise; extreme heat and cold days; heavy rain; drought; water stress; wildfire; warming and rainfall change to 2050 and 2080 with the models' range; NDVI vegetation; earthquake hazard, subsidence, elevation, land cover and the climate zone. Narrow it with categories or layer ids (fetch catalog:layers).

Use for buying, renting or building a home or moving somewhere: "does this area flood", "how hot will it get here by 2050". Two or more places, a list of sites or a portfolio: get_climate_table, up to 200 in one call. Not for this week's weather (get_forecast) or events now (get_hazards_near).

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_climate_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
layersNoOnly these layers, by id, e.g. ndvi/annual for the NDVI vegetation index or flood_riverine/inundation for river flood depth; fetch catalog:layers lists every id. Combined with categories, both are given
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
categoriesNoOnly the layers of these categories; every layer when omitted. misc holds Köppen climate zone, now and in 2050 and 2080, solar radiation, solar radiation of the sunniest month, surface runoff; fetch catalog:layers lists every layer
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
notesYes
creditYes
layersYes
sourcesYes
datasetsYes
locationYes
truncatedNo
criora_urlYes
resolved_fromYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed110 schema fields changed
    • removedOutput schema / $defs / ClimateLayer / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / ClimateLayer / properties / applicable / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / applicable / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / applicable / description
      Removed value: -"Given only on a layer without readings"
    • addedOutput schema / $defs / ClimateLayer / properties / applicable / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / available / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / available / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / available / description
      Removed value: -"Given only on a layer without readings"
    • addedOutput schema / $defs / ClimateLayer / properties / available / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / category / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / ClimateLayer / properties / category / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / cell_km / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / cell_km / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / cell_km / description
      Removed value: -"The size of the cell the value is read on"
    • addedOutput schema / $defs / ClimateLayer / properties / cell_km / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / description / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / description / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / description / description
      Removed value: -"Absent where datasets gives it for the dataset"
    • addedOutput schema / $defs / ClimateLayer / properties / description / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / name / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / name / description
      Removed value: -"What the layer measures, in plain words"
    • addedOutput schema / $defs / ClimateLayer / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / note / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / note / default
      Removed value: -null
    • addedOutput schema / $defs / ClimateLayer / properties / note / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / read_at / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / read_at / description
      Removed value: -"Where the value was read, when the point's own cell holds no data"
    • removedOutput schema / $defs / ClimateLayer / properties / source / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / source / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / source / description
      Removed value: -"A key of sources"
    • addedOutput schema / $defs / ClimateLayer / properties / source / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / source_detail / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / source_detail / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / source_detail / description
      Removed value: -"What this layer's source says that its other layers' do not"
    • addedOutput schema / $defs / ClimateLayer / properties / source_detail / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / unit / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / unit / description
      Removed value: -"The unit every reading of the layer shares"
    • addedOutput schema / $defs / ClimateLayer / properties / unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / ClimateLayer / properties / values / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / values / description
      Removed value: -"The readings, by band: each in full when detailed, a bare value (or a class's label) when concise"
    • removedOutput schema / $defs / ClimateLayer / properties / year / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / ClimateLayer / properties / year / default
      Removed value: -null
    • removedOutput schema / $defs / ClimateLayer / properties / year / description
      Removed value: -"The year an ERA5 layer describes"
    • addedOutput schema / $defs / ClimateLayer / properties / year / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • 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 / LayerValue / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / LayerValue / properties / description / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / LayerValue / properties / description / default
      Removed value: -null
    • addedOutput schema / $defs / LayerValue / properties / description / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / LayerValue / properties / label / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / LayerValue / properties / label / default
      Removed value: -null
    • removedOutput schema / $defs / LayerValue / properties / label / description
      Removed value: -"The class a categorical value names"
    • addedOutput schema / $defs / LayerValue / properties / label / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / LayerValue / properties / range / default
      Removed value: -null
    • removedOutput schema / $defs / LayerValue / properties / range / description
      Removed value: -"Where the value is the median of several models, their 10th and 90th percentile"
    • removedOutput schema / $defs / LayerValue / properties / unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / LayerValue / properties / unit / default
      Removed value: -null
    • removedOutput schema / $defs / LayerValue / properties / unit / description
      Removed value: -"Given here only where the readings' units differ"
    • addedOutput schema / $defs / LayerValue / properties / unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / LayerValue / properties / value / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / LayerValue / properties / value / description
      Removed value: -"Null where the layer has no value for this band"
    • addedOutput schema / $defs / LayerValue / properties / value / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / $defs / Location / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Source / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / Source / properties / doi / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / doi / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / doi / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Source / properties / institution / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / institution / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / institution / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Source / properties / licence / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / licence / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / licence / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Source / properties / notes / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / notes / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / notes / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Source / properties / url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / url / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Source / properties / year / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / Source / properties / year / default
      Removed value: -null
    • addedOutput schema / $defs / Source / properties / year / type
      Added value: +[
      +  "integer",
      +  "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 / datasets / description
      Removed value: -"The description the layers of one dataset share"
    • 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 / sources / description
      Removed value: -"Each source by name, with what its layers share"
    • removedOutput schema / properties / truncated / default
      Removed value: -null
    • removedOutput schema / properties / truncated / description
      Removed value: -"Absent unless the answer was cut to fit"
  2. Changed77 schema fields changed
    • removedInput schema / properties / categories / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "temperature",
      -        "precipitation",
      -        "wind",
      -        "water",
      -        "flooding",
      -        "vegetation",
      -        "misc",
      -        "terrain",
      -        "landcover"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / categories / default
      Removed value: -null
    • changedInput schema / properties / categories / description
      Previous value: -"Only the layers of these categories; every layer when omitted. temperature: hottest day of the year, coldest night of the year, hot days over 35 °C, summer days, tropical nights, frost nights, ice days, mean temperature with the coldest and warmest month, UTCI felt temperature (heat and cold stress), warming to 2050 and 2080 (CMIP6), change in the warmest month's maximum to 2050 and 2080, change in the coldest month's minimum to 2050 and 2080; precipitation: heavy-rain days (10 to 100 mm) and the wettest day, precipitation with the driest and wettest month, daily rain of the wettest month, change in annual rainfall to 2050 and 2080, change in the wettest quarter's rainfall, change in the driest quarter's rainfall, drought risk (WRI Aqueduct), SPI-12 drought index, aridity index, snow cover, snow water equivalent, snowmelt, snow albedo; wind: strongest wind gust of the year, gale, storm and hurricane-force gust days, mean wind speed, CAPE, the energy of thunderstorms; water: baseline water stress (WRI Aqueduct), water stress in 2050 and 2080 (WRI Aqueduct), soil moisture, relative humidity, vapour pressure deficit, potential evaporation, surface water occurrence from 38 years of Landsat (JRC), share of lakes, rivers and wetlands, lake or wetland type, distance to the coast; flooding: river flood depth of a 100-year flood, now and in 2050 and 2080 (WRI Aqueduct), coastal flood depth of a 100-year flood, now and in 2050 and 2080 (WRI Aqueduct), GloFAS 30-day flood forecast, sea level rise to 2050 and 2100 (IPCC AR6); vegetation: NDVI vegetation index, annual mean, minimum and maximum (MODIS satellite), leaf area index of trees and shrubs, leaf area index of grass and crops, area burned by wildfire last year (GFED, satellite), area burned by wildfire each year since 2002 (GFED, satellite); terrain: elevation (Copernicus DEM), slope, terrain ruggedness, probability of land subsidence over 1 cm a year, land subsidence rate class; landcover: land cover class (MODIS satellite), built-up share of the land (JRC GHSL, Sentinel-2 and Landsat); misc: Köppen climate zone, now and in 2050 and 2080, solar radiation, solar radiation of the sunniest month, surface runoff"New value: +"Only the layers of these categories; every layer when omitted. misc holds Köppen climate zone, now and in 2050 and 2080, solar radiation, solar radiation of the sunniest month, surface runoff; fetch catalog:layers lists every layer"
    • addedInput schema / properties / categories / items
      Added value: +{
      +  "enum": [
      +    "temperature",
      +    "precipitation",
      +    "wind",
      +    "water",
      +    "flooding",
      +    "vegetation",
      +    "misc",
      +    "terrain",
      +    "landcover"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / categories / title
      Removed value: -"Categories"
    • addedInput schema / properties / categories / type
      Added value: +"array"
    • 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 / layers / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "era5_extremum/temperature_max",
      -        "era5_extremum/temperature_min",
      -        "era5_extremum/climate_days",
      -        "era5_monthly/temperature",
      -        "era5_monthly/utci",
      -        "cmip6_climate_delta/tmean",
      -        "cmip6_climate_delta/tmax_warm",
      -        "cmip6_climate_delta/tmin_cold",
      -        "era5_extremum/extreme_precip",
      -        "era5_monthly/precipitation",
      -        "era5_monthly/precipitation_max",
      -        "cmip6_climate_delta/precip_annual",
      -        "cmip6_climate_delta/precip_wet",
      -        "cmip6_climate_delta/precip_dry",
      -        "aqueduct_water_stress/drr",
      -        "spi_12/observed",
      -        "aridity_index/annual",
      -        "era5_monthly/snow_cover",
      -        "era5_monthly/snow_water_equivalent",
      -        "era5_monthly/snowmelt",
      -        "era5_monthly/snow_albedo",
      -        "era5_extremum/wind_max",
      -        "era5_extremum/storm_days",
      -        "era5_monthly/wind",
      -        "era5_monthly/cape",
      -        "aqueduct_water_stress/bws",
      -        "aqueduct_water_future/ws",
      -        "era5_monthly/soil_moisture",
      -        "era5_monthly/humidity",
      -        "era5_monthly/vpd",
      -        "era5_monthly/potential_evapotranspiration",
      -        "jrc_surface_water/occurrence",
      -        "glwd/coverage",
      -        "glwd/classification",
      -        "distance_to_coast/distance",
      -        "flood_riverine/inundation",
      -        "flood_coastal/inundation",
      -        "flood_forecast/glofas",
      -        "slr_projections/projections",
      -        "ndvi/annual",
      -        "era5_monthly/lai_high",
      -        "era5_monthly/lai_low",
      -        "burned_area/annual",
      -        "burned_area/climatology_22yr",
      -        "dem/elevation",
      -        "dem/slope",
      -        "dem/tri",
      -        "subsidence/probability",
      -        "subsidence/prediction",
      -        "modis_land_cover/igbp",
      -        "ghsl_built_up/built_up",
      -        "koppen/climate",
      -        "era5_monthly/solar_radiation",
      -        "era5_monthly/solar_radiation_max",
      -        "era5_monthly/runoff"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / layers / default
      Removed value: -null
    • changedInput schema / properties / layers / description
      Previous value: -"Only these layers, by id, e.g. ndvi/annual for the NDVI vegetation index or flood_riverine/inundation for river flood depth; every id with what it measures is in the resource criora://layers. Combined with categories, both are given"New value: +"Only these layers, by id, e.g. ndvi/annual for the NDVI vegetation index or flood_riverine/inundation for river flood depth; fetch catalog:layers lists every id. Combined with categories, both are given"
    • addedInput schema / properties / layers / items
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / layers / minItems
      Added value: +1
    • removedInput schema / properties / layers / title
      Removed value: -"Layers"
    • addedInput schema / properties / layers / type
      Added value: +"array"
    • 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_climate_profileArguments"
    • removedOutput schema / $defs / ClimateLayer / properties / applicable / title
      Removed value: -"Applicable"
    • removedOutput schema / $defs / ClimateLayer / properties / available / title
      Removed value: -"Available"
    • removedOutput schema / $defs / ClimateLayer / properties / category / title
      Removed value: -"Category"
    • removedOutput schema / $defs / ClimateLayer / properties / cell_km / title
      Removed value: -"Cell Km"
    • removedOutput schema / $defs / ClimateLayer / properties / dataset / title
      Removed value: -"Dataset"
    • removedOutput schema / $defs / ClimateLayer / properties / description / title
      Removed value: -"Description"
    • removedOutput schema / $defs / ClimateLayer / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / $defs / ClimateLayer / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / ClimateLayer / properties / source / title
      Removed value: -"Source"
    • removedOutput schema / $defs / ClimateLayer / properties / source_detail / title
      Removed value: -"Source Detail"
    • removedOutput schema / $defs / ClimateLayer / properties / unit / title
      Removed value: -"Unit"
    • changedOutput schema / $defs / ClimateLayer / properties / values / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {
      -      "$ref": "#/$defs/LayerValue"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/LayerValue"
      +        },
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / ClimateLayer / properties / values / description
      Previous value: -"The readings, by band"New value: +"The readings, by band: each in full when detailed, a bare value (or a class's label) when concise"
    • removedOutput schema / $defs / ClimateLayer / properties / values / title
      Removed value: -"Values"
    • removedOutput schema / $defs / ClimateLayer / properties / variant / title
      Removed value: -"Variant"
    • removedOutput schema / $defs / ClimateLayer / properties / year / title
      Removed value: -"Year"
    • removedOutput schema / $defs / ClimateLayer / title
      Removed value: -"ClimateLayer"
    • 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 / LayerValue / properties / description / title
      Removed value: -"Description"
    • removedOutput schema / $defs / LayerValue / properties / label / title
      Removed value: -"Label"
    • addedOutput schema / $defs / LayerValue / properties / range
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Where the value is the median of several models, their 10th and 90th percentile"
      +}
    • removedOutput schema / $defs / LayerValue / properties / unit / title
      Removed value: -"Unit"
    • removedOutput schema / $defs / LayerValue / properties / value / title
      Removed value: -"Value"
    • removedOutput schema / $defs / LayerValue / title
      Removed value: -"LayerValue"
    • 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 / Source / properties / doi / title
      Removed value: -"Doi"
    • removedOutput schema / $defs / Source / properties / institution / title
      Removed value: -"Institution"
    • removedOutput schema / $defs / Source / properties / licence / title
      Removed value: -"Licence"
    • removedOutput schema / $defs / Source / properties / notes / title
      Removed value: -"Notes"
    • removedOutput schema / $defs / Source / properties / url / title
      Removed value: -"Url"
    • removedOutput schema / $defs / Source / properties / year / title
      Removed value: -"Year"
    • removedOutput schema / $defs / Source / title
      Removed value: -"Source"
    • 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 / datasets / title
      Removed value: -"Datasets"
    • removedOutput schema / properties / layers / title
      Removed value: -"Layers"
    • removedOutput schema / properties / notes / title
      Removed value: -"Notes"
    • removedOutput schema / properties / resolved_from / title
      Removed value: -"Resolved From"
    • removedOutput schema / properties / sources / title
      Removed value: -"Sources"
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Truncated"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Absent unless the answer was cut to fit"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "datasets",
      -  "layers",
      -  "sources",
      -  "notes",
      -  "resolved_from",
      -  "location",
      -  "criora_url"
      -]New value: +[
      +  "datasets",
      +  "layers",
      +  "sources",
      +  "notes",
      +  "credit",
      +  "resolved_from",
      +  "location",
      +  "criora_url"
      +]
    • removedOutput schema / title
      Removed value: -"ClimateProfile"
  3. Changed3 schema fields changed
    • changedInput schema / properties / categories / description
      Previous value: -"Only the layers of these categories, e.g. flooding for flood depth and sea level rise, temperature for heat; every layer when omitted"New value: +"Only the layers of these categories; every layer when omitted. temperature: hottest day of the year, coldest night of the year, hot days over 35 °C, summer days, tropical nights, frost nights, ice days, mean temperature with the coldest and warmest month, UTCI felt temperature (heat and cold stress), warming to 2050 and 2080 (CMIP6), change in the warmest month's maximum to 2050 and 2080, change in the coldest month's minimum to 2050 and 2080; precipitation: heavy-rain days (10 to 100 mm) and the wettest day, precipitation with the driest and wettest month, daily rain of the wettest month, change in annual rainfall to 2050 and 2080, change in the wettest quarter's rainfall, change in the driest quarter's rainfall, drought risk (WRI Aqueduct), SPI-12 drought index, aridity index, snow cover, snow water equivalent, snowmelt, snow albedo; wind: strongest wind gust of the year, gale, storm and hurricane-force gust days, mean wind speed, CAPE, the energy of thunderstorms; water: baseline water stress (WRI Aqueduct), water stress in 2050 and 2080 (WRI Aqueduct), soil moisture, relative humidity, vapour pressure deficit, potential evaporation, surface water occurrence from 38 years of Landsat (JRC), share of lakes, rivers and wetlands, lake or wetland type, distance to the coast; flooding: river flood depth of a 100-year flood, now and in 2050 and 2080 (WRI Aqueduct), coastal flood depth of a 100-year flood, now and in 2050 and 2080 (WRI Aqueduct), GloFAS 30-day flood forecast, sea level rise to 2050 and 2100 (IPCC AR6); vegetation: NDVI vegetation index, annual mean, minimum and maximum (MODIS satellite), leaf area index of trees and shrubs, leaf area index of grass and crops, area burned by wildfire last year (GFED, satellite), area burned by wildfire each year since 2002 (GFED, satellite); terrain: elevation (Copernicus DEM), slope, terrain ruggedness, probability of land subsidence over 1 cm a year, land subsidence rate class; landcover: land cover class (MODIS satellite), built-up share of the land (JRC GHSL, Sentinel-2 and Landsat); misc: Köppen climate zone, now and in 2050 and 2080, solar radiation, solar radiation of the sunniest month, surface runoff"
    • addedInput schema / properties / layers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "enum": [
      +          "era5_extremum/temperature_max",
      +          "era5_extremum/temperature_min",
      +          "era5_extremum/climate_days",
      +          "era5_monthly/temperature",
      +          "era5_monthly/utci",
      +          "cmip6_climate_delta/tmean",
      +          "cmip6_climate_delta/tmax_warm",
      +          "cmip6_climate_delta/tmin_cold",
      +          "era5_extremum/extreme_precip",
      +          "era5_monthly/precipitation",
      +          "era5_monthly/precipitation_max",
      +          "cmip6_climate_delta/precip_annual",
      +          "cmip6_climate_delta/precip_wet",
      +          "cmip6_climate_delta/precip_dry",
      +          "aqueduct_water_stress/drr",
      +          "spi_12/observed",
      +          "aridity_index/annual",
      +          "era5_monthly/snow_cover",
      +          "era5_monthly/snow_water_equivalent",
      +          "era5_monthly/snowmelt",
      +          "era5_monthly/snow_albedo",
      +          "era5_extremum/wind_max",
      +          "era5_extremum/storm_days",
      +          "era5_monthly/wind",
      +          "era5_monthly/cape",
      +          "aqueduct_water_stress/bws",
      +          "aqueduct_water_future/ws",
      +          "era5_monthly/soil_moisture",
      +          "era5_monthly/humidity",
      +          "era5_monthly/vpd",
      +          "era5_monthly/potential_evapotranspiration",
      +          "jrc_surface_water/occurrence",
      +          "glwd/coverage",
      +          "glwd/classification",
      +          "distance_to_coast/distance",
      +          "flood_riverine/inundation",
      +          "flood_coastal/inundation",
      +          "flood_forecast/glofas",
      +          "slr_projections/projections",
      +          "ndvi/annual",
      +          "era5_monthly/lai_high",
      +          "era5_monthly/lai_low",
      +          "burned_area/annual",
      +          "burned_area/climatology_22yr",
      +          "dem/elevation",
      +          "dem/slope",
      +          "dem/tri",
      +          "subsidence/probability",
      +          "subsidence/prediction",
      +          "modis_land_cover/igbp",
      +          "ghsl_built_up/built_up",
      +          "koppen/climate",
      +          "era5_monthly/solar_radiation",
      +          "era5_monthly/solar_radiation_max",
      +          "era5_monthly/runoff"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only these layers, by id, e.g. ndvi/annual for the NDVI vegetation index or flood_riverine/inundation for river flood depth; every id with what it measures is in the resource criora://layers. Combined with categories, both are given",
      +  "title": "Layers"
      +}
    • addedOutput schema / $defs / ClimateLayer / properties / name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "What the layer measures, in plain words",
      +  "title": "Name"
      +}
  4. Changed5 schema fields changed
    • changedInput schema / properties / categories / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "enum": [
      -        "flooding",
      -        "landcover",
      -        "misc",
      -        "precipitation",
      -        "temperature",
      -        "terrain",
      -        "vegetation",
      -        "water",
      -        "wind"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "enum": [
      +        "temperature",
      +        "precipitation",
      +        "wind",
      +        "water",
      +        "flooding",
      +        "vegetation",
      +        "misc",
      +        "terrain",
      +        "landcover"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs
      Added value: +{
      +  "ClimateLayer": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "applicable": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Given only on a layer without readings",
      +        "title": "Applicable"
      +      },
      +      "available": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Given only on a layer without readings",
      +        "title": "Available"
      +      },
      +      "category": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Category"
      +      },
      +      "cell_km": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The size of the cell the value is read on",
      +        "title": "Cell Km"
      +      },
      +      "dataset": {
      +        "title": "Dataset",
      +        "type": "string"
      +      },
      +      "description": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Absent where datasets gives it for the dataset",
      +        "title": "Description"
      +      },
      +      "note": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Note"
      +      },
      +      "read_at": {
      +        "anyOf": [
      +          {
      +            "$ref": "#/$defs/Location"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Where the value was read, when the point's own cell holds no data"
      +      },
      +      "source": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A key of sources",
      +        "title": "Source"
      +      },
      +      "source_detail": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "What this layer's source says that its other layers' do not",
      +        "title": "Source Detail"
      +      },
      +      "unit": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The unit every reading of the layer shares",
      +        "title": "Unit"
      +      },
      +      "values": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "$ref": "#/$defs/LayerValue"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The readings, by band",
      +        "title": "Values"
      +      },
      +      "variant": {
      +        "title": "Variant",
      +        "type": "string"
      +      },
      +      "year": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The year an ERA5 layer describes",
      +        "title": "Year"
      +      }
      +    },
      +    "required": [
      +      "dataset",
      +      "variant",
      +      "category"
      +    ],
      +    "title": "ClimateLayer",
      +    "type": "object"
      +  },
      +  "LayerValue": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "description": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Description"
      +      },
      +      "label": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "The class a categorical value names",
      +        "title": "Label"
      +      },
      +      "unit": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Given here only where the readings' units differ",
      +        "title": "Unit"
      +      },
      +      "value": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Null where the layer has no value for this band",
      +        "title": "Value"
      +      }
      +    },
      +    "required": [
      +      "value"
      +    ],
      +    "title": "LayerValue",
      +    "type": "object"
      +  },
      +  "Location": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "lat": {
      +        "title": "Lat",
      +        "type": "number"
      +      },
      +      "lon": {
      +        "title": "Lon",
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "lat",
      +      "lon"
      +    ],
      +    "title": "Location",
      +    "type": "object"
      +  },
      +  "Source": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "doi": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Doi"
      +      },
      +      "institution": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Institution"
      +      },
      +      "licence": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Licence"
      +      },
      +      "notes": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Notes"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Url"
      +      },
      +      "year": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Year"
      +      }
      +    },
      +    "title": "Source",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / properties
      Added value: +{
      +  "criora_url": {
      +    "title": "Criora Url",
      +    "type": "string"
      +  },
      +  "datasets": {
      +    "additionalProperties": {
      +      "type": "string"
      +    },
      +    "description": "The description the layers of one dataset share",
      +    "title": "Datasets",
      +    "type": "object"
      +  },
      +  "layers": {
      +    "items": {
      +      "$ref": "#/$defs/ClimateLayer"
      +    },
      +    "title": "Layers",
      +    "type": "array"
      +  },
      +  "location": {
      +    "$ref": "#/$defs/Location"
      +  },
      +  "notes": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "title": "Notes",
      +    "type": "array"
      +  },
      +  "resolved_from": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "What a place name was resolved to; null when coordinates were given",
      +    "title": "Resolved From"
      +  },
      +  "sources": {
      +    "additionalProperties": {
      +      "$ref": "#/$defs/Source"
      +    },
      +    "description": "Each source by name, with what its layers share",
      +    "title": "Sources",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "datasets",
      +  "layers",
      +  "sources",
      +  "notes",
      +  "resolved_from",
      +  "location",
      +  "criora_url"
      +]
    • changedOutput schema / title
      Previous value: -"get_climate_profileDictOutput"New value: +"ClimateProfile"
  5. Changed4 schema fields changed
    • changedInput schema / properties / categories / description
      Previous value: -"Limit the answer to these layer categories; all of them when omitted"New value: +"Only the layers of these categories, e.g. flooding for flood depth and sea level rise, temperature for heat; every layer when omitted"
    • 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.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered. The description adds genuine behavioral context absent from the annotations: the 57-layer scope, the 2050/2080 scenario horizons with the models' range, that results can be narrowed by category or layer id, and that response_format trades breadth for verbosity. It stops short of noting cost, latency or per-call layer limits.

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

Conciseness4/5

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

Front-loaded with purpose and scope, then use cases, then exclusions and sibling routing — a sensible order. The long layer enumeration is dense but is the main value proposition, though the semicolon-chained list could be tightened slightly.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and all parameters are optional so no required-input guidance is needed. The description covers scope, scenarios, narrowing and sibling routing adequately for a 7-parameter read tool; minor omissions (resolution, data vintage, behavior when both place_name and coordinates are supplied) are not essential.

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 description coverage is 100%, so all seven parameters are already documented inline. The description only reinforces two of them: that layers/categories narrow the result and that layer ids come from catalog:layers. It adds no format, precedence or default guidance beyond what the schema already states (e.g. that layers and categories combine).

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?

States a specific verb and resource ("Long-term climate risk of one place or property in depth") and then enumerates the concrete content: flood depth at 100-year return period for now/2050/2080, sea level rise, heat days, drought, wildfire, NDVI, earthquake, subsidence, land cover, Köppen zone. It explicitly separates itself from get_climate_table (multiple places), get_forecast (this week's weather) and get_hazards_near (events now), so an agent can pick it without opening siblings.

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?

Names concrete use cases (buying, renting, building a home, moving somewhere) with example user questions, gives the exact switch condition to a sibling ("Two or more places, a list of sites or a portfolio: get_climate_table, up to 200 in one call"), and states two explicit exclusions with the correct alternatives. Nothing is left to inference.

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.