Skip to main content
Glama

Criora: climate & disaster risk for any place

Climate twin: the city whose climate today a place will have in 2050

get_climate_twin
Read-onlyIdempotent

The large city whose climate today is most like a city's climate in 2041-2060, its climate twin: "what will Belgrade feel like in 2050". Under SSP2-4.5 and SSP5-8.5, with how alike the climates are and how much warmer and wetter or drier the city gets.

For large cities; seasonal means, not extremes. Long-term exposure of a place: 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_climate_twin"
  }
}

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)

Output Schema

NameRequiredDescriptionDefault
cityYes
noteNo
twinsYes
creditYes
futureYes
presentYes
resolved_fromYes
leading_scenarioYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed48 schema fields changed
    • removedOutput schema / $defs / ClimateTwin / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / ClimateTwin / properties / agreement / description
      Removed value: -"How many of the ensemble's median, 10th and 90th percentile futures name the same twin"
    • removedOutput schema / $defs / ClimateTwin / properties / changes / description
      Removed value: -"The city's change by 2041-2060: mean_temperature, warmest_month (the warmest month's mean daily maximum) and coldest_month (the coldest month's mean daily minimum) in C, precipitation in % of the year's"
    • removedOutput schema / $defs / ClimateTwin / properties / likeness / description
      Removed value: -"What the distance amounts to: twin, within the year-to-year variability of a climate; partial, beyond it; novel, a future no such city has today; itself, the city's own present climate is nearer its future than any other city's, so the twin is named but is farther"
    • removedOutput schema / $defs / ClimateTwin / properties / nearest_place / description
      Removed value: -"Where on Earth the city's future climate is found today, whether or not a city is there"
    • removedOutput schema / $defs / ClimateTwin / properties / own_present_sigma / description
      Removed value: -"The same distance from the city's future to its own present"
    • removedOutput schema / $defs / ClimateTwin / properties / sigma / description
      Removed value: -"The sigma dissimilarity of the two climates in the 19 bioclimatic variables (Mahony et al. 2017), in units of the city's own year-to-year variability; lower is more alike"
    • removedOutput schema / $defs / ClimateTwin / properties / twin / description
      Removed value: -"The city with a page whose 1991-2020 climate is nearest the city's 2041-2060 one"
    • 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 / NearestPlace / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / NearestPlace / properties / country_iso3 / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / NearestPlace / properties / country_iso3 / description
      Removed value: -"The country the place is in; null where it is in none"
    • addedOutput schema / $defs / NearestPlace / properties / country_iso3 / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / NearestPlace / properties / criora_url / description
      Removed value: -"The place on the Criora map"
    • removedOutput schema / $defs / NearestPlace / properties / likeness / description
      Removed value: -"twin, partial or novel, as for the twin city"
    • removedOutput schema / $defs / NearestPlace / properties / sigma / description
      Removed value: -"The same distance from the city's future to the nearest present climate anywhere on land, read on a grid of 1/12 degree (about 9 km), as Fitzpatrick and Dunn (2019) read sigma: under 2 sigma some place has that climate today, though no such city may, and from 4 sigma none on Earth has"
    • removedOutput schema / $defs / PlaceCity / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / PlaceCity / properties / criora_url / description
      Removed value: -"The city's page on Criora, with its twin, risks and climate"
    • removedOutput schema / $defs / PlaceCity / properties / distance_km / description
      Removed value: -"From the place to the city's point, where the city's climate is read: a place uphill or on the coast can differ from it"
    • removedOutput schema / $defs / PlaceCity / properties / name / description
      Removed value: -"In the language asked for, where GeoNames has a name in it"
    • removedOutput schema / $defs / TwinCity / additionalProperties
      Removed value: -true
    • removedOutput schema / $defs / TwinCity / properties / criora_url / description
      Removed value: -"The city's page on Criora, with its twin, risks and climate"
    • removedOutput schema / $defs / TwinCity / properties / name / description
      Removed value: -"In the language asked for, where GeoNames has a name in it"
    • removedOutput schema / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / city / description
      Removed value: -"The city with a Criora page whose urban area the place is in; null where none is, the twin being built for the cities with a page"
    • 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 / future / description
      Removed value: -"The years of the future climate"
    • removedOutput schema / properties / leading_scenario / description
      Removed value: -"The scenario to quote first"
    • removedOutput schema / properties / note / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / note / default
      Removed value: -null
    • removedOutput schema / properties / note / description
      Removed value: -"Why there is no twin, where there is none"
    • addedOutput schema / properties / note / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / present / description
      Removed value: -"The years of the present climate"
    • 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 / twins / description
      Removed value: -"By scenario: ssp245, the middle road, and ssp585, high emissions"
  2. Added

TDQS

A4.1/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 the safety profile is covered. The description adds real behavioral context beyond that: results are produced under SSP2-4.5 and SSP5-8.5, the comparison is based on seasonal means rather than extremes, and the answer includes a similarity measure plus warmer/wetter deltas.

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?

Two short blocks, front-loaded with the core definition and followed by the constraint and sibling pointer. The grammar is slightly tangled in places ('with how alike the climates are and how much warmer...'), but no sentence is padding.

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 not be explained; the description still previews what the response conveys (similarity, temperature and precipitation deltas). The remaining gap is minor: it never repeats how to supply a location, but the schema covers that fully, and the 2050 framing is stated.

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% and all four parameters (latitude, longitude, place_name, language) are documented inline, including the name-or-coordinates mutual exclusivity and the language caveat. The description adds no parameter-level detail of its own, so the schema does all the work and baseline 3 applies.

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 the exact resource ('the large city whose climate today is most like a city's climate in 2041-2060') and anchors it with a concrete example ('what will Belgrade feel like in 2050'), plus the two emissions scenarios. An agent can distinguish this analogue-city lookup from get_climate_profile without opening any schema.

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

Usage Guidelines4/5

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

It states the applicability limit ('For large cities') and explicitly routes the alternative case to get_climate_profile for long-term exposure of a place. It does not mention other plausible siblings such as get_climate_table or get_area_risk, so the routing guidance is clear but not exhaustive.

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.