Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

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.

0 this week 95 Trust /100

Last scanned (3 hours ago)

Scores higher than 98% of npm servers

Category Data and Analytics

Trust breakdown (7 categories)

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
Changelog

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
Diagnostics

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 →

MCP tools · 6 exposed · ~1,647 tokens

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 →

Tool Tokens
fetch ~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.

NameTypeReqDescription
idstringyesIdentifier of a document returned by `search`
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
idstringyesUnique identifier of the document on this server; what `fetch` takes
metadataobject–Additional key/value pairs about the document (kind, source, period…)
provenance–yesPortfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve…
textstringyesFull readable content of the document (Markdown)
titlestringyesHuman-readable title of the document
urlstringyesCanonical public URL of the document — ChatGPT's citation depends on it

No examples provided.

ilo_get_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).

NameTypeReqDescription
dataflowstringyesDataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT")
end_periodstring–Last period, e.g. "2024"
filtersobjectyesDimension 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_observationsinteger–Alternative to periods: only the latest N observations per series
provenance_modestring–Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
start_periodstring–First period, e.g. "2015"
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
columnsarrayyesDimension ids of each row, in SDMX order, followed by value
dataflowobjectyesThe dataflow the observations come from
provenance–yesPortfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve…
rowsarrayyesRaw 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_countnumberyesNumber of observations returned

No examples provided.

ilo_get_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).

NameTypeReqDescription
dataflowstringyesDataflow id from ilo_search_indicators (e.g. "DF_UNE_DEAP_SEX_AGE_RT")
provenance_modestring–Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
data_vintagestring|nullyesLast update of the dataflow at the ILO (LAST_UPDATE, yyyy-MM-dd); null when absent
dimensionsarrayyesDimensions in SDMX key order, each with its codelist id; filter ilo_get_data by these ids
idstringyesDataflow id
namestring|nullyesDataflow name; null when the ILO gives none
provenance–yesPortfolio 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_dimensionstring|nullyesId of the time dimension (filtered via start_period/end_period); null when absent
versionstringyesDataflow version at the ILO

No examples provided.

ilo_list_dimension_values ~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).

NameTypeReqDescription
dataflowstringyesDataflow id the dimension belongs to
dimensionstringyesDimension id from ilo_get_indicator_metadata (e.g. "REF_AREA", "SEX")
limitinteger–Maximum codes returned (default 200)
offsetinteger–Codes to skip, for pagination (default 0)
provenance_modestring–Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
searchstring–Case-insensitive filter on code id or label
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
codeliststringyesId of the codelist that enumerates the dimension (shared across dataflows)
dataflowstringyesDataflow id the dimension belongs to
dimensionstringyesDimension id
has_morebooleanyesTrue when more codes remain after this page
next_offsetnumber–Offset for the next page; present only when has_more is true
offsetnumberyesCodes skipped before this page
provenance–yesPortfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve…
showingnumberyesCodes returned in this page
total_codesnumberyesCodes matching the search filter (or all codes), across every page
valuesarrayyesValid codes: id is the value for ilo_get_data filters, name is the ILO label

No examples provided.

ilo_search_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.

NameTypeReqDescription
limitinteger–Maximum results (default 20)
offsetinteger–Results to skip, for pagination (default 0)
provenance_modestring–Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)
querystringyesKeywords, matched against dataflow name and id (AND between terms)
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
has_morebooleanyesTrue when more matches remain after this page
hintstring–What to do next: how to narrow or page, or why nothing matched
indicatorsarrayyesMatching dataflows, highest ILO relevance weight first; use id with ilo_get_data
next_offsetnumber–Offset for the next page; present only when has_more is true
offsetnumberyesResults skipped before this page
provenance–yesPortfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve…
showingnumberyesDataflows returned in this page
total_matchesnumberyesDataflows matching all terms, across every page
vocabulary_notesarray–Translations applied from everyday or US wording to ILO terms (e.g. labor → labour)

No examples provided.

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.

NameTypeReqDescription
querystringyesSearch terms, natural language or keywords (accents and case are ignored)
NameTypeReqDescription
attributionarrayyesSource URLs the figures came from (the provenance source_url of each block), for linking the citation
provenance–yesPortfolio provenance block. concise (default): source, source_url, data_vintage, retrieved_at, retrieval, citation, license; detailed: the full canonical block (dataset, dimension_key, notices, serve…
resultsarrayyesMatching documents, in relevance order

No examples provided.

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.

npm · ilo-mcp-server

# add to Claude Code
claude mcp add sidneybissoli-ilo-mcp-server -- npx -y ilo-mcp-server
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 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.