ILO Labour Statistics (ILOSTAT): unemployment, wages, informality
NPM · ILO-MCP-SERVER · 2 COMPONENTS · SCANNED SEP 20
Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance.
Available components
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. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 1 of 5 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to SidneyBissoli/ilo-mcp-server). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management68
- Stability check failed: the tool surface changed between 0.3.1 and 0.6.1: 0 tool removals, 1 breaking changes, 2 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
npm · ilo-mcp-server
claude mcp add sidneybissoli-ilo-mcp-server -- npx -y ilo-mcp-server
{
"mcpServers": {
"sidneybissoli-ilo-mcp-server": {
"command": "npx",
"args": [
"-y",
"ilo-mcp-server"
]
}
}
} {
"servers": {
"sidneybissoli-ilo-mcp-server": {
"command": "npx",
"args": [
"-y",
"ilo-mcp-server"
]
}
}
} codex mcp add sidneybissoli-ilo-mcp-server -- npx -y ilo-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sidneybissoli-ilo-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"ilo-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add sidneybissoli-ilo-mcp-server --command npx --arg -y --arg ilo-mcp-server
mcp_servers:
sidneybissoli-ilo-mcp-server:
command: "npx"
args: ["-y", "ilo-mcp-server"] {
"McpServers": {
"sidneybissoli-ilo-mcp-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"ilo-mcp-server"
]
}
}
} assistant mcp add sidneybissoli-ilo-mcp-server -t stdio -c npx -a -y ilo-mcp-server
{
"mcpServers": {
"sidneybissoli-ilo-mcp-server": {
"command": "npx",
"args": [
"-y",
"ilo-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 64 to 68.
- 19 Sept 26 +2
- Known CVEs: partial → pass ▲ security
- Dependency health: partial → 0.94 functional
- 17 Sept 26 −1
- Known CVEs: pass → partial ▼ security
- Dependency health: 0.89 → partial functional
- Package version: 0.6.0 → 0.6.1 functional
- 15 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −17
- Malware scan: pass → unverified ▼ security
- Stability: 0.57 → fail ▼ security
- Package version: 0.5.0 → 0.6.0 functional
- 13 Sept 26 +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.
- 11 Sept 26 +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.
- 9 Sept 26 +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.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/ilo-mcp-server@0.6.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | SidneyBissoli/ilo-mcp-server |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/SidneyBissoli/ilo-mcp-server/.github/workflows/publish.yml@refs/tags/v0.6.1 |
| Rekor log index | 2869283039 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:1057cee6ecb6cb9871b85caa1d7d7751d6efd157fe8ab6f1a95085c79b437e3c006c04da84daa97e1413c9f6cad461c4a374a79b9c220c28aadf094f7 |
Background: How many MCP packages publish verified provenance →
Dependencies 5 packages
| Packages resolved | 5 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
fetch Deep Research Document ~169
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Identifier of a document returned by `search` |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| id | string | yes | Unique identifier of the document on this server; what `fetch` takes |
| metadata | object | – | Additional key/value pairs about the document (kind, source, period…) |
| provenance | – | yes | – |
| text | string | yes | Full readable content of the document (Markdown) |
| title | string | yes | Human-readable title of the document |
| url | string | yes | Canonical public URL of the document — ChatGPT's citation depends on it |
No examples provided.
ilo_get_data Get ILOSTAT data ~311
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).
| Name | Type | Req | Description |
|---|---|---|---|
| dataflow | string | yes | Dataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT") |
| end_period | string | – | Last period, e.g. "2024" |
| filters | object | yes | 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" |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| columns | array | yes | – |
| dataflow | object | yes | – |
| provenance | – | yes | – |
| rows | array | yes | – |
| rows_count | number | yes | – |
No examples provided.
ilo_get_indicator_metadata Get ILOSTAT indicator metadata ~162
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).
| Name | Type | Req | Description |
|---|---|---|---|
| dataflow | string | yes | 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) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| data_vintage | string|null | yes | – |
| dimensions | array | yes | – |
| id | string | yes | – |
| name | string|null | yes | – |
| provenance | – | yes | – |
| time_dimension | string|null | yes | – |
| version | string | yes | – |
No examples provided.
ilo_list_dimension_values List valid codes of a dimension ~319
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).
| Name | Type | Req | Description |
|---|---|---|---|
| dataflow | string | yes | Dataflow id the dimension belongs to |
| dimension | string | yes | 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 |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| codelist | string | yes | – |
| dataflow | string | yes | – |
| dimension | string | yes | – |
| has_more | boolean | yes | – |
| next_offset | number | – | – |
| offset | number | yes | – |
| provenance | – | yes | – |
| showing | number | yes | – |
| total_codes | number | yes | – |
| values | array | yes | – |
No examples provided.
ilo_search_indicators Search ILOSTAT indicators ~359
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | Keywords, matched against dataflow name and id (AND between terms) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| has_more | boolean | yes | – |
| hint | string | – | – |
| indicators | array | yes | – |
| next_offset | number | – | – |
| offset | number | yes | – |
| provenance | – | yes | – |
| showing | number | yes | – |
| total_matches | number | yes | – |
| vocabulary_notes | array | – | – |
No examples provided.
search Deep Research Search ~220
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search terms, natural language or keywords (accents and case are ignored) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | – |
| provenance | – | yes | – |
| results | array | yes | Matching documents, in relevance order |
No examples provided.
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.