# ILO Labour Statistics (ILOSTAT): unemployment, wages, informality (npm · ilo-mcp-server)

Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance.

- Trust score: 91/100 (high trust)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `ilo.sidneybissoli.com`: 84/100, [markdown](https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo.md), [page](https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo)
- npm · `ilo-mcp-server`: 91/100 (this document), [markdown](https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server.md), [page](https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `ilo-mcp-server`
- Version: `0.6.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 1 of 5 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to SidneyBissoli/ilo-mcp-server).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 80/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1934 tokens (~214/item across 9 items; 6 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 68/100
  - Stability check failed: the tool surface changed between 0.3.1 and 0.6.1: 0 tool removals, 1 breaking changes, 2 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server?

ILO Labour Statistics (ILOSTAT): unemployment, wages… runs locally as an npm package, launched with npx -y ilo-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add sidneybissoli-ilo-mcp-server -- npx -y ilo-mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "sidneybissoli-ilo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "ilo-mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sidneybissoli-ilo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "ilo-mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add sidneybissoli-ilo-mcp-server -- npx -y ilo-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sidneybissoli-ilo-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ilo-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sidneybissoli-ilo-mcp-server --command npx --arg -y --arg ilo-mcp-server
```

### Hermes

```yaml
mcp_servers:
  sidneybissoli-ilo-mcp-server:
    command: "npx"
    args: ["-y", "ilo-mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "sidneybissoli-ilo-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "ilo-mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add sidneybissoli-ilo-mcp-server -t stdio -c npx -a -y ilo-mcp-server
```

### Other

```json
{
  "mcpServers": {
    "sidneybissoli-ilo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "ilo-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 91, +1)

No change was recorded against any check on this day. Stability & Change Management went from 64 to 68.

### 2026-09-19 (score 90, +2)

- [security improvement] Known CVEs: partial → pass
- [functional] Dependency health: partial → 0.94

### 2026-09-17 (score 88, −1)

- [security regression] Known CVEs: pass → partial
- [functional] Dependency health: 0.89 → partial
- [functional] Package version: 0.6.0 → 0.6.1

### 2026-09-15 (score 89, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-09-14 (score 73, −17)

- [security regression] Malware scan: pass → unverified
- [security regression] Stability: 0.57 → fail
- [functional] Package version: 0.5.0 → 0.6.0

### 2026-09-13 (score 90, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-09 (score 88, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (6)

### `ilo_search_indicators` (~359 tokens)

Search ILOSTAT indicators

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 parameters:

- `limit` (integer): Maximum results (default 20)
- `offset` (integer): Results to skip, for pagination (default 0)
- `provenance_mode` (string): Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
- `query` (string, required): Keywords, matched against dataflow name and id (AND between terms)

Output parameters:

- `attribution` (array)
- `has_more` (boolean)
- `hint` (string)
- `indicators` (array)
- `next_offset` (number)
- `offset` (number)
- `provenance`
- `showing` (number)
- `total_matches` (number)
- `vocabulary_notes` (array)

### `ilo_get_indicator_metadata` (~162 tokens)

Get ILOSTAT indicator metadata

Structure of one ILOSTAT dataflow: dimensions (in SDMX key order), their codelists, the time dimension, the source's default selection and the data vintage (last update at the ILO). Use before ilo_get_data to know which filters exist. Does not return statistical values and does not list the codes themselves (use ilo_list_dimension_values).

Input parameters:

- `dataflow` (string, required): Dataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT")
- `provenance_mode` (string): Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)

Output parameters:

- `attribution` (array)
- `data_vintage` (string|null)
- `dimensions` (array)
- `id` (string)
- `name` (string|null)
- `provenance`
- `time_dimension` (string|null)
- `version` (string)

### `ilo_list_dimension_values` (~319 tokens)

List valid codes of a dimension

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 parameters:

- `dataflow` (string, required): Dataflow id the dimension belongs to
- `dimension` (string, required): Dimension id from ilo_get_indicator_metadata (e.g. "REF_AREA", "SEX")
- `limit` (integer): Maximum codes returned (default 200)
- `offset` (integer): Codes to skip, for pagination (default 0)
- `provenance_mode` (string): Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
- `search` (string): Case-insensitive filter on code id or label

Output parameters:

- `attribution` (array)
- `codelist` (string)
- `dataflow` (string)
- `dimension` (string)
- `has_more` (boolean)
- `next_offset` (number)
- `offset` (number)
- `provenance`
- `showing` (number)
- `total_codes` (number)
- `values` (array)

### `ilo_get_data` (~311 tokens)

Get ILOSTAT data

Statistical observations from one ILOSTAT dataflow, filtered by dimension codes (filters, e.g. {"REF_AREA": ["BRA","ARG"], "SEX": "SEX_T"}) and period (start_period/end_period, e.g. "2015"/"2024"). REF_AREA is required, maximum 30 areas per call — for broad panels, split areas into batches and/or paginate by period. Unfiltered dimensions return all their categories. Does not aggregate, convert or otherwise transform values (raw ILOSTAT data only), and does not search indicators (use ilo_search_indicators).

Input parameters:

- `dataflow` (string, required): Dataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT")
- `end_period` (string): Last period, e.g. "2024"
- `filters` (object, required): Dimension id → code or list of codes (from ilo_list_dimension_values). REF_AREA is required (up to 30 area codes); any other dimension is optional and, left out, returns all of its categories.
- `last_n_observations` (integer): Alternative to periods: only the latest N observations per series
- `provenance_mode` (string): Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
- `start_period` (string): First period, e.g. "2015"

Output parameters:

- `attribution` (array)
- `columns` (array)
- `dataflow` (object)
- `provenance`
- `rows` (array)
- `rows_count` (number)

### `search` (~220 tokens)

Deep Research Search

Searches the ILOSTAT labour statistics (≈1,200 SDMX dataflows: employment, unemployment, wages, working time, informality, SDG labour indicators) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched).

This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools `search` and `fetch`. Pass one of the returned ids to `fetch` to read the document.
For direct questions and for data (values, series, rankings) prefer the `ilo_*` tools, which return the actual data with provenance — this is a catalog index, not a data query.

Query: natural language or keywords, Portuguese or English; accents and case are ignored.

Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.

Input parameters:

- `query` (string, required): Search terms, natural language or keywords (accents and case are ignored)

Output parameters:

- `attribution` (array)
- `provenance`
- `results` (array): Matching documents, in relevance order

### `fetch` (~169 tokens)

Deep Research Document

Returns the full document for an id obtained from `search`, as { id, title, text, url, metadata }: `text` is the readable content (Markdown) and `url` the canonical public page to cite.

Companion of `search` in the OpenAI Deep Research contract, over the ILOSTAT labour statistics (≈1,200 SDMX dataflows: employment, unemployment, wages, working time, informality, SDG labour indicators) catalog. Only ids returned by `search` are valid; an unknown id returns an error.
The `ilo_*` tools remain the tools for data queries.

Behavior: read-only and idempotent — a live GET against the public source when the document needs it.

Input parameters:

- `id` (string, required): Identifier of a document returned by `search`

Output parameters:

- `attribution` (array)
- `id` (string): Unique identifier of the document on this server; what `fetch` takes
- `metadata` (object): Additional key/value pairs about the document (kind, source, period…)
- `provenance`
- `text` (string): Full readable content of the document (Markdown)
- `title` (string): Human-readable title of the document
- `url` (string): Canonical public URL of the document — ChatGPT's citation depends on it

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server#diagnostics

## Score history

- 2026-09-20: 91
- 2026-09-19: 90
- 2026-09-18: 88
- 2026-09-17: 88
- 2026-09-16: 89
- 2026-09-15: 89
- 2026-09-14: 73
- 2026-09-13: 90
- 2026-09-12: 89
- 2026-09-11: 89
- 2026-09-10: 88
- 2026-09-09: 88
- 2026-09-08: 87
- 2026-09-07: 87
- 2026-09-06: 86
- 2026-09-05: 86
- 2026-09-04: 84
- 2026-09-03: 68
- 2026-09-02: 85
- 2026-09-01: 84
- 2026-08-31: 84
- 2026-08-30: 68
- 2026-08-29: 82
- 2026-08-28: 82
- 2026-08-27: 67

## Common questions

### What is the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server?

ILO Labour Statistics (ILOSTAT): unemployment, wages… is an MCP server listed in the public MCP registry as io.github.SidneyBissoli/ilo-mcp-server. Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance. This page covers its npm package (ilo-mcp-server).

### Is the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server safe to use?

ILO Labour Statistics (ILOSTAT): unemployment, wages… scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server expose?

ILO Labour Statistics (ILOSTAT): unemployment, wages… exposes 6 tools: ilo_search_indicators, ilo_get_indicator_metadata, ilo_list_dimension_values, ilo_get_data, search, fetch. Their descriptions and schemas cost roughly 1,540 tokens of context every time the server is loaded.

### Is the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server still maintained?

ILO Labour Statistics (ILOSTAT): unemployment, wages… is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the ILO Labour Statistics (ILOSTAT): unemployment, wages… MCP server under?

ILO Labour Statistics (ILOSTAT): unemployment, wages… declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/ilo-mcp-server
- Socket report: https://socket.dev/npm/package/ilo-mcp-server
- Repository: https://github.com/SidneyBissoli/ilo-mcp-server
- Website: https://ilo.sidneybissoli.com/
- Changelog RSS feed: https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/sidneybissoli-ilo-mcp-server/ilo-mcp-server
