ILO Labour Statistics (ILOSTAT): unemployment, wages, informality
NPM · ILO-MCP-SERVER · 2 COMPONENTS
Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance.
Available components
Last scanned (3 hours ago)
Scores higher than 98% of npm servers
Category Data and Analytics
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 Security100
- 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
- 0 of 6 dependencies flagged as unhealthy. View diagnostics → Pass
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 7 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability78
- 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 2139 tokens (~237/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 Management100
- No destabilizing schema changes in the last 30 days.Pass
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
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.
- 1 Nov 26 0
- Security disclosure: unverified → fail ▼ functional
- 31 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
- 29 Oct 26 +26
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 1.00 ▲ functional
- 28 Oct 26 −26
- Known CVEs: pass → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Dependency health: 1.00 → unverified ▼ functional
- Package version: 1.6.4 → 1.7.0 functional
- 17 Oct 26 0
- Stability: 0.97 → pass security
- 16 Oct 26 +16
- Malware scan: unverified → pass ▲ security
- 15 Oct 26 −16
- Malware scan: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Stability: pass → 0.93 functional
- Package version: 1.6.1 → 1.6.4 functional
- Package version: 1.6.1 → 1.6.3 functional
- Package version: 1.6.1 → 1.6.2 functional
- 14 Oct 26 0
- Stability: 0.97 → pass security
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 5 Nov 2026 · Analysed npm/ilo-mcp-server@1.7.0
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/v1.7.0 |
| Rekor log index | 3530860403 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:d17131d4f43da97074d58b7e50d35f8b320331c6546c75ca7b80e1a90d57fa118ed93539a51c5d81c5732a71dd2faeb1bb9880fe5f044110f73deebd3 |
Background: How many MCP packages publish verified provenance →
Dependencies 6 packages
| Packages resolved | 6 |
|---|---|
| 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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| 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 | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| 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 ~418
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): read each value with the unit and multiplier the ILO states in its row attributes (UNIT_MEASURE, UNIT_MULT — e.g. UNIT_MULT 3 = thousands). Read TIME_PERIOD with the FREQ column (annual, quarterly or monthly) and OBS_STATUS when present (break in series, estimated or provisional value). Values are the current release, dated by data_vintage (the dataflow LAST_UPDATE): the ILO revises published figures and re-estimates modelled series (_2 ids) at each release, past years included. 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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| columns | array | yes | Dimension ids of each row, in SDMX order, followed by value |
| dataflow | object | yes | The dataflow the observations come from |
| provenance | – | yes | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| rows | array | yes | Raw ILOSTAT observations: one code per dimension, value (untransformed; read with UNIT_MULT) and, when present, attributes such as OBS_STATUS, UNIT_MEASURE and UNIT_MULT |
| rows_count | number | yes | Number of observations returned |
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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| data_vintage | string|null | yes | Last update of the dataflow at the ILO (LAST_UPDATE, yyyy-MM-dd); null when absent |
| dimensions | array | yes | Dimensions in SDMX key order, each with its codelist id; filter ilo_get_data by these ids |
| id | string | yes | Dataflow id |
| name | string|null | yes | Dataflow name; null when the ILO gives none |
| provenance | – | yes | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| time_dimension | string|null | yes | Id of the time dimension (filtered via start_period/end_period); null when absent |
| version | string | yes | Dataflow version at the ILO |
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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| codelist | string | yes | Id of the codelist that enumerates the dimension (shared across dataflows) |
| dataflow | string | yes | Dataflow id the dimension belongs to |
| dimension | string | yes | Dimension id |
| has_more | boolean | yes | True when more codes remain after this page |
| next_offset | number | – | Offset for the next page; present only when has_more is true |
| offset | number | yes | Codes skipped before this page |
| provenance | – | yes | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| showing | number | yes | Codes returned in this page |
| total_codes | number | yes | Codes matching the search filter (or all codes), across every page |
| values | array | yes | Valid codes: id is the value for ilo_get_data filters, name is the ILO label |
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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| has_more | boolean | yes | True when more matches remain after this page |
| hint | string | – | What to do next: how to narrow or page, or why nothing matched |
| indicators | array | yes | Matching dataflows, highest ILO relevance weight first; use id with ilo_get_data |
| next_offset | number | – | Offset for the next page; present only when has_more is true |
| offset | number | yes | Results skipped before this page |
| provenance | – | yes | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| showing | number | yes | Dataflows returned in this page |
| total_matches | number | yes | Dataflows matching all terms, across every page |
| vocabulary_notes | array | – | Translations applied from everyday or US wording to ILO terms (e.g. labor → labour) |
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 | Source URLs the figures came from (the provenance source_url of each block), for linking the citation |
| provenance | – | yes | Portfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve… |
| results | array | yes | Matching documents, in relevance order |
No examples provided.
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
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 95 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 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,647 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 5 November 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.