protogrid

Search / io.github.SidneyBissoli/ilo-mcp-server

ILO Labour Statistics (ILOSTAT): unemployment, wages, informality

R0· no sign-in

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

v1.6.4 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89good
Trust97of 100
Uptime, 30 days97%
Latency p50356 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "ilo-mcp-server": {
      "type": "http",
      "url": "https://ilo.sidneybissoli.com/mcp"
    }
  }
}
claude mcp add --transport http ilo-mcp-server https://ilo.sidneybissoli.com/mcp
[mcp_servers.ilo-mcp-server]
url = "https://ilo.sidneybissoli.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ilo-mcp-server": {
      "type": "remote",
      "url": "https://ilo.sidneybissoli.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "ilo-mcp-server": {
      "type": "http",
      "url": "https://ilo.sidneybissoli.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ilo-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaWxvLnNpZG5leWJpc3NvbGkuY29tL21jcCJ9"
}
{
  "servers": {
    "ilo-mcp-server": {
      "type": "http",
      "url": "https://ilo.sidneybissoli.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "ilo-mcp-server": {
      "httpUrl": "https://ilo.sidneybissoli.com/mcp"
    }
  }
}
extensions:
  "ilo-mcp-server":
    enabled: true
    name: "ilo-mcp-server"
    type: streamable_http
    uri: "https://ilo.sidneybissoli.com/mcp"
    timeout: 300

Quality 89 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,385 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes22 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies100 · weight 15
  • pass
    deps.known_vulnsno known advisory in 7 resolved packages
  • pass
    deps.mcp_sdk_version@modelcontextprotocol/server 2.3.1, no known advisory
  • pass
    deps.resolvable[email protected] resolved: 7 packages

6 tools, about 2,385 tokens to load them all · tool set 1ea0ed11e420 · tools last changed 2026-10-09 · checked 2026-10-20 14:21 UTC

Tool changes

  • fetchchangedoutput schema
  • searchchangedoutput schema
  • ilo_get_datachangedoutput schema
  • ilo_list_dimension_valueschangedoutput schema
  • ilo_get_indicator_metadatachangedoutput schema
  • ilo_search_indicatorschangedoutput schema
  • ilo_get_datachangeddescription
    before

    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). Does not search indicators (use ilo_search_indicators).

    after · 70% of words in common

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

  • fetchchangedoutput schema
  • searchchangedoutput schema
  • ilo_get_datachangedoutput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness99
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-97% +updated-5d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npm6 dependencies, resolved · MCP SDK @modelcontextprotocol/server 2.3.1 · advisories checked 2026-10-19

No known advisory affects this dependency graph.

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://ilo.sidneybissoli.com/mcp streamable-httpnoneyes97%356 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-072026-10-20
packageregistryversionruntimesecrets
ilo-mcp-servernpm1.6.4–

Tools (6)

fetchread-onlyReturns 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.
ilo_get_dataread-onlyStatistical 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).
ilo_get_indicator_metadataread-onlyStructure 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).
ilo_list_dimension_valuesread-onlyValid 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).
ilo_search_indicatorsread-onlySearch 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.
searchread-onlySearches 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.

Schemas: list_tools.

Similar MCP servers

More from io.github.SidneyBissoli

Official server.json
{
  "name": "io.github.SidneyBissoli/ilo-mcp-server",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "io.github.sidneybissoli/mcp-surface": {
        "form": "mcp-surface/1",
        "spec": "https://github.com/SidneyBissoli/mcp-br-commons/blob/main/packages/mcp-surface/SPEC.md",
        "declared": {
          "sha256": "401f62782443cdb69cd8747a3a6521ff20dde4f949607709e6031f09d4ac5372",
          "lockedAt": "1.6.0"
        },
        "endpoint": "https://ilo.sidneybissoli.com/mcp",
        "anonymous": {
          "call": {
            "name": "ilo_search_indicators",
            "arguments": {
              "query": "unemployment"
            }
          },
          "sha256": "ade1bd429bdfc63453a924614520010bb782ffd8d24fdd6483aa17d5b36b61a4",
          "answers": {
            "ping": true,
            "initialize": true,
            "tools/call": true,
            "tools/list": true,
            "prompts/list": true,
            "resources/list": true,
            "resources/templates/list": true
          }
        }
      }
    }
  },
  "icons": [
    {
      "src": "https://ilo.sidneybissoli.com/icon.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "ILO Labour Statistics (ILOSTAT): unemployment, wages, informality",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://ilo.sidneybissoli.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.6.4",
  "packages": [
    {
      "version": "1.6.4",
      "transport": {
        "type": "stdio"
      },
      "identifier": "ilo-mcp-server",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org"
    }
  ],
  "repository": {
    "url": "https://github.com/SidneyBissoli/ilo-mcp-server",
    "source": "github"
  },
  "websiteUrl": "https://ilo.sidneybissoli.com",
  "description": "Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance."
}