Skip to main content
Glama

Criora: climate & disaster risk for any place

Rank countries by climate and disaster risk

rank_countries
Read-onlyIdempotent

The countries most or least at climate and disaster risk, overall, on one dimension or on one hazard or other indicator, optionally within a region, subregion or income group, each with its score and world rank (a filter narrows the list, not the rank).

Use for "the most climate-exposed countries", "the riskiest countries in Southern Asia", "which countries are most exposed to river flooding", "where do cyclones reach the most people". Named countries: compare_countries; this week's weather: rank_by_forecast.

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": "rank_countries"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoHow many countries to list
orderNoMost at risk first, or least at risk firsthighest_risk
regionNoOnly countries in this UN region, e.g. Asia
dimensionNoThe score to rank byoverall
indicatorNoRank on this indicator instead of a score: hazard_flood (river flooding), hazard_coastal_flood, hazard_cyclone, hazard_drought, hazard_earthquake, hazard_tsunami, hazard_epidemic, water_stress, or any key fetch catalog:indicators lists
subregionNoOnly countries in this UN M49 subregion, e.g. Southern Asia
income_groupNoOnly countries in this World Bank income group, e.g. Low income
response_formatNoconcise (default) answers the question; detailed adds every field the sources giveconcise

Output Schema

NameRequiredDescriptionDefault
orderYes
creditYes
listedYes
filtersYes
matchedYes
no_scoreYes
countriesYes
dimensionYes
indicatorYes
truncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed64 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 / Filters / properties / income_group / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / Filters / properties / income_group / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Filters / properties / region / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / Filters / properties / region / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / Filters / properties / subregion / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / Filters / properties / subregion / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / country_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / country_url / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / country_url / description
      Removed value: -"Detailed only"
    • addedOutput schema / $defs / RankedCountry / properties / country_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / data_year / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / data_year / default
      Removed value: -null
    • addedOutput schema / $defs / RankedCountry / properties / data_year / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / income_group / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / income_group / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / income_group / description
      Removed value: -"Detailed only"
    • addedOutput schema / $defs / RankedCountry / properties / income_group / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / level / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / level / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / level / description
      Removed value: -"The score's risk class; on a dimension only"
    • addedOutput schema / $defs / RankedCountry / properties / level / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / rank_by_dimension / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / rank_by_indicator / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / region / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / region / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / region / description
      Removed value: -"Detailed only"
    • addedOutput schema / $defs / RankedCountry / properties / region / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / subregion / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / subregion / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / subregion / description
      Removed value: -"Detailed only"
    • addedOutput schema / $defs / RankedCountry / properties / subregion / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / unit / default
      Removed value: -null
    • addedOutput schema / $defs / RankedCountry / properties / unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / RankedCountry / properties / value / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / $defs / RankedCountry / properties / value / default
      Removed value: -null
    • removedOutput schema / $defs / RankedCountry / properties / value / description
      Removed value: -"The indicator's own figure, in unit"
    • addedOutput schema / $defs / RankedCountry / properties / value / 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 / 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 / dimension / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / dimension / description
      Removed value: -"The score ranked on; null when an indicator is"
    • addedOutput schema / properties / dimension / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / matched / description
      Removed value: -"Every country that passed the filters"
    • removedOutput schema / properties / no_score / description
      Removed value: -"Countries that passed the filters but have no score on the dimension"
    • removedOutput schema / properties / truncated / default
      Removed value: -null
    • removedOutput schema / properties / truncated / description
      Removed value: -"Absent unless the answer was cut to fit"
  2. Changed74 schema fields changed
    • removedInput schema / properties / dimension / title
      Removed value: -"Dimension"
    • removedInput schema / properties / income_group / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / income_group / default
      Removed value: -null
    • removedInput schema / properties / income_group / title
      Removed value: -"Income Group"
    • addedInput schema / properties / income_group / type
      Added value: +"string"
    • addedInput schema / properties / indicator
      Added value: +{
      +  "description": "Rank on this indicator instead of a score: hazard_flood (river flooding), hazard_coastal_flood, hazard_cyclone, hazard_drought, hazard_earthquake, hazard_tsunami, hazard_epidemic, water_stress, or any key fetch catalog:indicators lists",
      +  "type": "string"
      +}
    • removedInput schema / properties / limit / title
      Removed value: -"Limit"
    • removedInput schema / properties / order / title
      Removed value: -"Order"
    • removedInput schema / properties / region / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / region / default
      Removed value: -null
    • removedInput schema / properties / region / title
      Removed value: -"Region"
    • addedInput schema / properties / region / type
      Added value: +"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 / properties / subregion / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / subregion / default
      Removed value: -null
    • removedInput schema / properties / subregion / title
      Removed value: -"Subregion"
    • addedInput schema / properties / subregion / type
      Added value: +"string"
    • removedInput schema / title
      Removed value: -"rank_countriesArguments"
    • 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 / Filters / properties / income_group / title
      Removed value: -"Income Group"
    • removedOutput schema / $defs / Filters / properties / region / title
      Removed value: -"Region"
    • removedOutput schema / $defs / Filters / properties / subregion / title
      Removed value: -"Subregion"
    • removedOutput schema / $defs / Filters / title
      Removed value: -"Filters"
    • removedOutput schema / $defs / Rank / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / Rank / properties / of / title
      Removed value: -"Of"
    • removedOutput schema / $defs / Rank / properties / rank / title
      Removed value: -"Rank"
    • removedOutput schema / $defs / Rank / title
      Removed value: -"Rank"
    • removedOutput schema / $defs / RankedCountry / properties / country_code / title
      Removed value: -"Country Code"
    • addedOutput schema / $defs / RankedCountry / properties / country_url / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RankedCountry / properties / country_url / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / country_url / description
      Added value: +"Detailed only"
    • removedOutput schema / $defs / RankedCountry / properties / country_url / title
      Removed value: -"Country Url"
    • removedOutput schema / $defs / RankedCountry / properties / country_url / type
      Removed value: -"string"
    • addedOutput schema / $defs / RankedCountry / properties / data_year
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / RankedCountry / properties / income_group / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / income_group / description
      Added value: +"Detailed only"
    • removedOutput schema / $defs / RankedCountry / properties / income_group / title
      Removed value: -"Income Group"
    • addedOutput schema / $defs / RankedCountry / properties / level / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RankedCountry / properties / level / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / level / description
      Added value: +"The score's risk class; on a dimension only"
    • removedOutput schema / $defs / RankedCountry / properties / level / title
      Removed value: -"Level"
    • removedOutput schema / $defs / RankedCountry / properties / level / type
      Removed value: -"string"
    • removedOutput schema / $defs / RankedCountry / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / $defs / RankedCountry / properties / rank_by_dimension / $ref
      Removed value: -"#/$defs/Rank"
    • addedOutput schema / $defs / RankedCountry / properties / rank_by_dimension / anyOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/Rank"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RankedCountry / properties / rank_by_dimension / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / rank_by_indicator
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Rank"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / RankedCountry / properties / region / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / region / description
      Added value: +"Detailed only"
    • removedOutput schema / $defs / RankedCountry / properties / region / title
      Removed value: -"Region"
    • removedOutput schema / $defs / RankedCountry / properties / score / title
      Removed value: -"Score"
    • addedOutput schema / $defs / RankedCountry / properties / subregion / default
      Added value: +null
    • addedOutput schema / $defs / RankedCountry / properties / subregion / description
      Added value: +"Detailed only"
    • removedOutput schema / $defs / RankedCountry / properties / subregion / title
      Removed value: -"Subregion"
    • addedOutput schema / $defs / RankedCountry / properties / unit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / RankedCountry / properties / value
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The indicator's own figure, in unit"
      +}
    • changedOutput schema / $defs / RankedCountry / required
      Previous value: -[
      -  "country_code",
      -  "name",
      -  "score",
      -  "level",
      -  "rank_by_dimension",
      -  "region",
      -  "subregion",
      -  "income_group",
      -  "country_url"
      -]New value: +[
      +  "country_code",
      +  "name",
      +  "score"
      +]
    • removedOutput schema / $defs / RankedCountry / title
      Removed value: -"RankedCountry"
    • addedOutput schema / $defs / RankedIndicator
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "key": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "key",
      +    "name",
      +    "source",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • 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"
      +}
    • removedOutput schema / properties / countries / title
      Removed value: -"Countries"
    • 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"
      +}
    • addedOutput schema / properties / dimension / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / dimension / description
      Added value: +"The score ranked on; null when an indicator is"
    • removedOutput schema / properties / dimension / title
      Removed value: -"Dimension"
    • removedOutput schema / properties / dimension / type
      Removed value: -"string"
    • addedOutput schema / properties / indicator
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/RankedIndicator"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / listed / title
      Removed value: -"Listed"
    • removedOutput schema / properties / matched / title
      Removed value: -"Matched"
    • removedOutput schema / properties / no_score / title
      Removed value: -"No Score"
    • removedOutput schema / properties / order / title
      Removed value: -"Order"
    • 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: -[
      -  "dimension",
      -  "order",
      -  "filters",
      -  "matched",
      -  "listed",
      -  "no_score",
      -  "countries"
      -]New value: +[
      +  "credit",
      +  "dimension",
      +  "indicator",
      +  "order",
      +  "filters",
      +  "matched",
      +  "listed",
      +  "no_score",
      +  "countries"
      +]
    • removedOutput schema / title
      Removed value: -"CountryRanking"
  3. Changed12 schema fields changed
    • changedInput schema / properties / income_group / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "Low income",
      -      "Lower middle income",
      -      "Upper middle income",
      -      "High income: OECD",
      -      "High income: nonOECD"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / income_group / description
      Previous value: -"Only countries in this World Bank income group"New value: +"Only countries in this World Bank income group, e.g. Low income"
    • removedInput schema / properties / limit / maximum
      Removed value: -194
    • changedInput schema / properties / region / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "Africa",
      -      "Americas",
      -      "Asia",
      -      "Europe",
      -      "Oceania"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / region / description
      Previous value: -"Only countries in this region"New value: +"Only countries in this UN region, e.g. Asia"
    • changedInput schema / properties / subregion / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "Australia and New Zealand",
      -      "Caribbean",
      -      "Central America",
      -      "Central Asia",
      -      "Eastern Africa",
      -      "Eastern Asia",
      -      "Eastern Europe",
      -      "Melanesia",
      -      "Micronesia",
      -      "Middle Africa",
      -      "Northern Africa",
      -      "Northern America",
      -      "Northern Europe",
      -      "Polynesia",
      -      "South America",
      -      "South-Eastern Asia",
      -      "Southern Africa",
      -      "Southern Asia",
      -      "Southern Europe",
      -      "Western Africa",
      -      "Western Asia",
      -      "Western Europe"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / subregion / description
      Previous value: -"Only countries in this UN M49 subregion"New value: +"Only countries in this UN M49 subregion, e.g. Southern Asia"
    • addedOutput schema / $defs
      Added value: +{
      +  "Filters": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "income_group": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Income Group"
      +      },
      +      "region": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Region"
      +      },
      +      "subregion": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Subregion"
      +      }
      +    },
      +    "required": [
      +      "region",
      +      "subregion",
      +      "income_group"
      +    ],
      +    "title": "Filters",
      +    "type": "object"
      +  },
      +  "Rank": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "note": {
      +        "title": "Note",
      +        "type": "string"
      +      },
      +      "of": {
      +        "title": "Of",
      +        "type": "integer"
      +      },
      +      "rank": {
      +        "title": "Rank",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "rank",
      +      "of",
      +      "note"
      +    ],
      +    "title": "Rank",
      +    "type": "object"
      +  },
      +  "RankedCountry": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "country_code": {
      +        "title": "Country Code",
      +        "type": "string"
      +      },
      +      "country_url": {
      +        "title": "Country Url",
      +        "type": "string"
      +      },
      +      "income_group": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Income Group"
      +      },
      +      "level": {
      +        "title": "Level",
      +        "type": "string"
      +      },
      +      "name": {
      +        "title": "Name",
      +        "type": "string"
      +      },
      +      "rank_by_dimension": {
      +        "$ref": "#/$defs/Rank"
      +      },
      +      "region": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Region"
      +      },
      +      "score": {
      +        "title": "Score",
      +        "type": "number"
      +      },
      +      "subregion": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Subregion"
      +      }
      +    },
      +    "required": [
      +      "country_code",
      +      "name",
      +      "score",
      +      "level",
      +      "rank_by_dimension",
      +      "region",
      +      "subregion",
      +      "income_group",
      +      "country_url"
      +    ],
      +    "title": "RankedCountry",
      +    "type": "object"
      +  }
      +}
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedOutput schema / properties
      Added value: +{
      +  "countries": {
      +    "items": {
      +      "$ref": "#/$defs/RankedCountry"
      +    },
      +    "title": "Countries",
      +    "type": "array"
      +  },
      +  "dimension": {
      +    "title": "Dimension",
      +    "type": "string"
      +  },
      +  "filters": {
      +    "$ref": "#/$defs/Filters"
      +  },
      +  "listed": {
      +    "title": "Listed",
      +    "type": "integer"
      +  },
      +  "matched": {
      +    "description": "Every country that passed the filters",
      +    "title": "Matched",
      +    "type": "integer"
      +  },
      +  "no_score": {
      +    "description": "Countries that passed the filters but have no score on the dimension",
      +    "title": "No Score",
      +    "type": "integer"
      +  },
      +  "order": {
      +    "enum": [
      +      "highest_risk",
      +      "lowest_risk"
      +    ],
      +    "title": "Order",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "dimension",
      +  "order",
      +  "filters",
      +  "matched",
      +  "listed",
      +  "no_score",
      +  "countries"
      +]
    • changedOutput schema / title
      Previous value: -"rank_countriesDictOutput"New value: +"CountryRanking"
  4. Added

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds a genuinely non-obvious behavioral rule that annotations cannot express: a filter narrows the returned list but not the world rank. It does not discuss pagination or cost, but for a read-only ranking tool that is 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 sentences plus a use-case/alternative block, all front-loaded with the scope constraint first. No filler; every clause either defines behavior or routes the agent elsewhere.

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?

Eight parameters all carry schema descriptions and three use enums; an output schema exists so return values need no explanation. The description covers the one thing schema and annotations cannot: how filtering interacts with ranking.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real value beyond the schema: it clarifies that filters affect list membership rather than rank, explains the dimension-vs-indicator distinction ('one dimension or on one hazard or other indicator'), and points to fetch catalog:indicators for the valid indicator key set.

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: ranking countries by climate and disaster risk, either on an overall score, a single dimension, or an individual hazard indicator, with optional region/subregion/income filters. It explicitly names the scope boundaries against siblings (compare_countries for named countries, rank_by_forecast for this week's weather), so an agent can select it without opening another schema.

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?

Provides four concrete trigger phrasings for when this tool applies (most climate-exposed countries, riskiest in Southern Asia, river flooding exposure, cyclone population exposure) and then routes two adjacent intents to the correct alternatives. When-to-use and when-not-to-use are both stated.

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.