Skip to main content
Glama
SidneyBissoli

ILO Statistics (ILOSTAT) MCP Server

Search ILOSTAT indicators

ilo_search_indicators
Read-onlyIdempotent

Search ILOSTAT's catalogue of ~1,200 indicator dataflows by keywords to find dataflow IDs for retrieving labour statistics.

Instructions

Search the ILOSTAT catalogue of ~1,200 indicator dataflows by keywords in the name or id (e.g. "unemployment rate sex age"). All terms must match (AND, case-insensitive), so start with 2–3 English words and drop terms if you get 0 results. Everyday and US wording is resolved to the ILO's own (labor→labour, wages/salary→earnings, informality→informal, gender→sex, productivity→output per worker); when that happens the response says so in vocabulary_notes. Results are ranked by ILO relevance weight, not by match count. Reading the id tells you the shape: suffix _RT = rate/ratio, NB = number (usually thousands); dataflows whose second token starts with 2 (e.g. DF_UNE_2EAP…) are ILO modelled estimates with full country/year coverage, the others are reported national data. Returns dataflow ids to use with ilo_get_data / ilo_get_indicator_metadata. Searches the local catalogue only — it does not return statistical values (use ilo_get_data), does not search dimension codes such as countries (use ilo_list_dimension_values) and does not cover non-ILO sources.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 20)
queryYesKeywords, matched against dataflow name and id (AND between terms)
offsetNoResults to skip, for pagination (default 0)
provenance_modeNoProvenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNo
offsetYes
showingYes
has_moreYes
indicatorsYes
provenanceYesProvenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)
attributionYes
next_offsetNo
total_matchesYes
vocabulary_notesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.4.1
    • changedOutput schema / properties / provenance / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "citation": {
      -        "type": "string"
      -      },
      -      "data_vintage": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "license": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "retrieval": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "anomalies": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 1,
      -                      "type": "integer"
      -                    },
      -                    "kind": {
      -                      "enum": [
      -                        "timeout",
      -                        "network",
      -                        "http_4xx",
      -                        "http_5xx",
      -                        "rate_limited",
      -                        "malformed_body"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "kind",
      -                    "count"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "attempts": {
      -                "maximum": 9007199254740991,
      -                "minimum": 1,
      -                "type": "integer"
      -              },
      -              "requests": {
      -                "maximum": 9007199254740991,
      -                "minimum": 1,
      -                "type": "integer"
      -              },
      -              "unstable": {
      -                "type": "boolean"
      -              }
      -            },
      -            "required": [
      -              "requests",
      -              "attempts",
      -              "anomalies",
      -              "unstable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "retrieved_at": {
      -        "type": "string"
      -      },
      -      "source": {
      -        "type": "string"
      -      },
      -      "source_url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "source",
      -      "source_url",
      -      "data_vintage",
      -      "retrieved_at",
      -      "retrieval",
      -      "citation",
      -      "license"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "api_version": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "citation": {
      -        "type": "string"
      -      },
      -      "contract_version": {
      -        "const": "1.1",
      -        "type": "string"
      -      },
      -      "data_vintage": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "dataset": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "name": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "version": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "version",
      -          "name"
      -        ],
      -        "type": "object"
      -      },
      -      "derivation_note": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "derived": {
      -        "type": "boolean"
      -      },
      -      "dimension_key": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": {
      -              "type": "string"
      -            },
      -            "propertyNames": {
      -              "type": "string"
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "field_sources": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "data_vintage": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "dataset_id": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "fields": {
      -                  "items": {
      -                    "type": "string"
      -                  },
      -                  "minItems": 1,
      -                  "type": "array"
      -                },
      -                "retrieved_at": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "source_url": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "fields",
      -                "source_url",
      -                "dataset_id",
      -                "data_vintage",
      -                "retrieved_at"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "license": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "name": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "terms_url": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "url": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "verified_at": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "name",
      -          "url",
      -          "terms_url",
      -          "verified_at"
      -        ],
      -        "type": "object"
      -      },
      -      "notices": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "retrieval": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "anomalies": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 1,
      -                      "type": "integer"
      -                    },
      -                    "kind": {
      -                      "enum": [
      -                        "timeout",
      -                        "network",
      -                        "http_4xx",
      -                        "http_5xx",
      -                        "rate_limited",
      -                        "malformed_body"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "kind",
      -                    "count"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "attempts": {
      -                "maximum": 9007199254740991,
      -                "minimum": 1,
      -                "type": "integer"
      -              },
      -              "requests": {
      -                "maximum": 9007199254740991,
      -                "minimum": 1,
      -                "type": "integer"
      -              },
      -              "unstable": {
      -                "type": "boolean"
      -              }
      -            },
      -            "required": [
      -              "requests",
      -              "attempts",
      -              "anomalies",
      -              "unstable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "retrieved_at": {
      -        "type": "string"
      -      },
      -      "served_from_cache": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "source": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "agency": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "database": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "endpoint": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "name": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "name",
      -          "agency",
      -          "database",
      -          "endpoint"
      -        ],
      -        "type": "object"
      -      },
      -      "source_url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "contract_version",
      -      "source",
      -      "dataset",
      -      "dimension_key",
      -      "data_vintage",
      -      "retrieved_at",
      -      "source_url",
      -      "api_version",
      -      "license",
      -      "citation",
      -      "notices",
      -      "derived",
      -      "derivation_note",
      -      "served_from_cache",
      -      "retrieval",
      -      "field_sources"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "citation": {
      +        "type": "string"
      +      },
      +      "data_vintage": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "field_sources": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "data_vintage": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "dataset_id": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "fields": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "retrieved_at": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "served_from_cache": {
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "source_url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "fields",
      +            "source_url",
      +            "dataset_id",
      +            "data_vintage",
      +            "retrieved_at"
      +          ],
      +          "type": "object"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "license": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "retrieval": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "anomalies": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "count": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": 1,
      +                      "type": "integer"
      +                    },
      +                    "kind": {
      +                      "enum": [
      +                        "timeout",
      +                        "network",
      +                        "http_4xx",
      +                        "http_5xx",
      +                        "rate_limited",
      +                        "malformed_body"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "count"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "attempts": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "requests": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "unstable": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "requests",
      +              "attempts",
      +              "anomalies",
      +              "unstable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "retrieved_at": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "source",
      +      "source_url",
      +      "data_vintage",
      +      "retrieved_at",
      +      "retrieval",
      +      "citation",
      +      "license"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "api_version": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "citation": {
      +        "type": "string"
      +      },
      +      "contract_version": {
      +        "enum": [
      +          "1.1",
      +          "1.2"
      +        ],
      +        "type": "string"
      +      },
      +      "data_vintage": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "dataset": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "version": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "version",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "derivation_note": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "derived": {
      +        "type": "boolean"
      +      },
      +      "dimension_key": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "field_sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "data_vintage": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "dataset_id": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "fields": {
      +                  "items": {
      +                    "type": "string"
      +                  },
      +                  "minItems": 1,
      +                  "type": "array"
      +                },
      +                "retrieved_at": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "served_from_cache": {
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "source_url": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "fields",
      +                "source_url",
      +                "dataset_id",
      +                "data_vintage",
      +                "retrieved_at"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "license": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "terms_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "verified_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "url",
      +          "terms_url",
      +          "verified_at"
      +        ],
      +        "type": "object"
      +      },
      +      "notices": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "retrieval": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "anomalies": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "count": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": 1,
      +                      "type": "integer"
      +                    },
      +                    "kind": {
      +                      "enum": [
      +                        "timeout",
      +                        "network",
      +                        "http_4xx",
      +                        "http_5xx",
      +                        "rate_limited",
      +                        "malformed_body"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "count"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "attempts": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "requests": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "unstable": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "requests",
      +              "attempts",
      +              "anomalies",
      +              "unstable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "retrieved_at": {
      +        "type": "string"
      +      },
      +      "served_from_cache": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "source": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "agency": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "database": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endpoint": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "agency",
      +          "database",
      +          "endpoint"
      +        ],
      +        "type": "object"
      +      },
      +      "source_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "source",
      +      "dataset",
      +      "dimension_key",
      +      "data_vintage",
      +      "retrieved_at",
      +      "source_url",
      +      "api_version",
      +      "license",
      +      "citation",
      +      "notices",
      +      "derived",
      +      "derivation_note",
      +      "served_from_cache",
      +      "retrieval",
      +      "field_sources"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed2 schema fields changedv1.1.0
    • addedOutput schema / properties / provenance / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "citation": {
      +        "type": "string"
      +      },
      +      "data_vintage": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "license": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "retrieval": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "anomalies": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "count": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": 1,
      +                      "type": "integer"
      +                    },
      +                    "kind": {
      +                      "enum": [
      +                        "timeout",
      +                        "network",
      +                        "http_4xx",
      +                        "http_5xx",
      +                        "rate_limited",
      +                        "malformed_body"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "count"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "attempts": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "requests": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "unstable": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "requests",
      +              "attempts",
      +              "anomalies",
      +              "unstable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "retrieved_at": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "source",
      +      "source_url",
      +      "data_vintage",
      +      "retrieved_at",
      +      "retrieval",
      +      "citation",
      +      "license"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "api_version": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "citation": {
      +        "type": "string"
      +      },
      +      "contract_version": {
      +        "const": "1.1",
      +        "type": "string"
      +      },
      +      "data_vintage": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "dataset": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "version": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "version",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "derivation_note": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "derived": {
      +        "type": "boolean"
      +      },
      +      "dimension_key": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "field_sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "data_vintage": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "dataset_id": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "fields": {
      +                  "items": {
      +                    "type": "string"
      +                  },
      +                  "minItems": 1,
      +                  "type": "array"
      +                },
      +                "retrieved_at": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "source_url": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "fields",
      +                "source_url",
      +                "dataset_id",
      +                "data_vintage",
      +                "retrieved_at"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "license": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "terms_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "verified_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "url",
      +          "terms_url",
      +          "verified_at"
      +        ],
      +        "type": "object"
      +      },
      +      "notices": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "retrieval": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "anomalies": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "count": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": 1,
      +                      "type": "integer"
      +                    },
      +                    "kind": {
      +                      "enum": [
      +                        "timeout",
      +                        "network",
      +                        "http_4xx",
      +                        "http_5xx",
      +                        "rate_limited",
      +                        "malformed_body"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "count"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "attempts": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "requests": {
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "unstable": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "requests",
      +              "attempts",
      +              "anomalies",
      +              "unstable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "retrieved_at": {
      +        "type": "string"
      +      },
      +      "served_from_cache": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "source": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "agency": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "database": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endpoint": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "agency",
      +          "database",
      +          "endpoint"
      +        ],
      +        "type": "object"
      +      },
      +      "source_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "source",
      +      "dataset",
      +      "dimension_key",
      +      "data_vintage",
      +      "retrieved_at",
      +      "source_url",
      +      "api_version",
      +      "license",
      +      "citation",
      +      "notices",
      +      "derived",
      +      "derivation_note",
      +      "served_from_cache",
      +      "retrieval",
      +      "field_sources"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedOutput schema / properties / provenance / description
      Added value: +"Provenance block (contract v1.1). concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, served_from_cache, ...). retrieval is the origin diagnostic of this call — requests made to ILOSTAT, attempts including retries, anomalies overcome (timeout, network, rate_limited, http_5xx, http_4xx, malformed_body) and unstable (true when anything had to be retried: treat the figures as obtained with difficulty); null when nothing was fetched from ILOSTAT (catalogue or cached answer)"
  3. Changed3 schema fields changedv0.6.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedOutput schema / properties / hint
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / vocabulary_notes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  4. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/closed-world, yet the description adds substantial behavior beyond them: AND/case-insensitive matching, vocabulary normalization with a vocabulary_notes signal in the response, ranking by ILO relevance weight rather than match count, and id-shape decoding (_RT vs _NB, second token starting with 2 = modelled estimates).

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?

The core purpose, query strategy, and sibling routing are front-loaded, and nearly every sentence carries non-redundant information. It is on the long side (the id-suffix and modelled-estimate decoding could be tightened), but there is little filler.

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?

For a 4-parameter search tool with an output schema and full annotation coverage, the description covers query syntax, ranking semantics, response signals (vocabulary_notes), result interpretation, and downstream tool routing. Nothing needed to invoke it correctly is missing.

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 the baseline is 3, but the description adds real meaning about the query parameter beyond the schema's terse 'AND between terms': case-insensitivity, the vocabulary substitution behavior, and the 2-3 word starting heuristic. limit/offset/provenance_mode are left to the schema, which already documents them adequately.

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 (Search) and resource (ILOSTAT catalogue of ~1,200 indicator dataflows), scopes the match fields (name or id), and explicitly distinguishes itself from siblings: it does not return values (ilo_get_data) or search dimension codes (ilo_list_dimension_values). An agent can route correctly 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 Guidelines5/5

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

Gives explicit when-to-use routing ('use ilo_get_data', 'use ilo_list_dimension_values'), when-not conditions ('does not cover non-ILO sources'), and concrete query strategy (start with 2-3 English words, drop terms on 0 results). This is the rare case of full usage guidance.

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