Skip to main content
Glama

ILO Labour Statistics (ILOSTAT)

List valid codes of a dimension

ilo_list_dimension_values
Read-onlyIdempotent

Valid codes (id + label) of one dimension of an ILOSTAT dataflow — e.g. the country/area codes of REF_AREA (ISO 3166-1 alpha-3 such as BRA, plus X-codes for aggregates such as X01 World) or the categories of SEX (SEX_T/SEX_M/SEX_F) and AGE. Use search to resolve a name to a code (e.g. search "Brazil") instead of paging through hundreds of codes; codelists are shared across dataflows, so a code found here is valid wherever the same codelist is used. Use to build correct ilo_get_data filters. Does not return statistical values, does not say which codes actually have data for a given dataflow, and is not applicable to the time dimension (filter it via start_period/end_period in ilo_get_data).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum codes returned (default 200)
offsetNoCodes to skip, for pagination (default 0)
searchNoCase-insensitive filter on code id or label
dataflowYesDataflow id the dimension belongs to
dimensionYesDimension id from ilo_get_indicator_metadata (e.g. "REF_AREA", "SEX")
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
offsetYes
valuesYes
showingYes
codelistYes
dataflowYes
has_moreYes
dimensionYes
provenanceYes
attributionYes
next_offsetNo
total_codesYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds substantial behavioral context beyond those: codelists are shared across dataflows, the tool does not indicate data availability, and it excludes the time dimension. These are non-obvious behaviors an agent needs to know before calling the tool.

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?

The description is dense but every sentence earns its place: definition and examples, routing to `search`, intended use, and explicit limitations. The core purpose is front-loaded, and the caveats are grouped clearly at the end. No filler or repetition of schema details.

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?

Given six parameters, a rich input schema, and an output schema, the description covers the necessary operational context: what the codes represent, how to use search vs. paging, cross-dataflow validity, limitations regarding data availability, and time-dimension handling. Nothing essential for correct invocation 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. The description adds meaningful extra context for the `search` parameter ('resolve a name to a code' with a 'Brazil' example) and clarifies the relationship between `dataflow` and `dimension` by noting codelists are shared across dataflows. This goes beyond the schema's per-parameter descriptions without duplicating them.

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 opens with a specific verb+resource: 'Valid codes (id + label) of one dimension of an ILOSTAT dataflow,' and reinforces it with concrete examples (REF_AREA, SEX, AGE). It also distinguishes itself from siblings by stating what it does not do ('does not return statistical values') and by pointing to the `search` tool for name-to-code resolution.

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?

The description explicitly says when to use this tool ('Use to build correct ilo_get_data filters') and when not to use it ('does not say which codes actually have data for a given dataflow', 'not applicable to the time dimension'). It names the alternative (`search`) and explains the condition that selects it, so an agent gets clear routing guidance.

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.

TDQS

A4.6/5.0
Disambiguation4/5

The ilo_* tools are clearly role-separated: get data, inspect metadata, list dimension codes, and search indicators. The only real ambiguity is between `search` and `ilo_search_indicators`, which both query the same catalogue, though the descriptions clarify that one returns documents for `fetch` while the other returns dataflow ids for data queries.

Naming Consistency4/5

Most tools follow a predictable `ilo_<verb>_<object>` pattern: get_data, get_indicator_metadata, list_dimension_values, search_indicators. `fetch` and `search` break that pattern, but this is an explicitly forced adapter to the OpenAI Deep Research contract rather than random inconsistency.

Tool Count5/5

Six tools are well-scoped for the stated domain: the search/fetch pair handles document retrieval, and the four `ilo_*` tools cover indicator discovery, metadata inspection, dimension-value lookup, and raw statistical data extraction. No tool feels redundant or unnecessary.

Completeness4/5

The set covers the full workflow from finding an indicator dataflow, inspecting its structure, listing valid codelist values, and retrieving raw data. A minor gap is that `ilo_list_dimension_values` suggests using `search` to resolve a name like 'Brazil' to a code, but `search` actually returns catalogue documents rather than codelist codes, so name-to-code resolution lacks a direct tool.