UNESCO UIS — Education, Science & Culture Statistics (provenance-first)

UNESCO UIS statistics (education, science, culture) with full provenance and fixed releases.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,701Tokens (tool definitions)
~4.0 KBTypical response size
Significant attention impact (2.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "uis-mcp-server": {
      "command": "npx",
      "args": [
        "uis-mcp-server"
      ]
    }
  }
}

Runnable packages

npmuis-mcp-server1.1.0stdio

Remote endpoints

https://uis.sidneybissoli.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢uis_search_indicators(query, theme, limit, offset, provenance_mode)

Search the UNESCO Institute for Statistics catalogue of ~5,000 indicators — education, science/R&D, culture and communication — by keywords in the name or code, optionally filtered by theme. All terms must match (AND, case-insensitive), so start with 2–3 words and drop terms if you get 0 results. Everyday and US wording is resolved to the UIS's own (enrollment→enrolment, spending→expenditure, preschool→pre-primary, university→tertiary, graduation→completion, girls/boys→female/male); when that happens the response says so in vocabulary_notes. Returns indicator codes to use with uis_get_data, plus each indicator's data availability (years, record count). Searches the catalogue only — it does not return statistical values (use uis_get_data); ILO labour statistics live in the sibling ILOSTAT MCP server.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Keywords, matched against indicator name and code, AND between terms (e.g. \"literacy rate youth\")"
    },
    "theme": {
      "description": "Restrict to one UIS theme",
      "type": "string",
      "enum": [
        "EDUCATION",
        "SCIENCE_TECHNOLOGY_INNOVATION",
        "CULTURE",
        "DEMOGRAPHIC_SOCIOECONOMIC"
      ]
    },
    "limit": {
      "description": "Maximum results (default 20)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Results to skip, for pagination (default 0)",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "provenance_mode": {
      "description": "Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)",
      "type": "string",
      "enum": [
        "concise",
        "detailed"
      ]
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "total_matches": {
      "type": "number"
    },
    "showing": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "vocabulary_notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hint": {
      "type": "string"
    },
    "indicators": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "theme": {
            "type": "string"
          },
          "last_data_update": {
            "type": [
              "string",
              "null"
            ]
          },
          "records": {
            "type": [
              "number",
              "null"
            ]
          },
          "years": {
            "type": [
              "string",
              "null"
            ]
          },
          "geo_types": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "name",
          "theme",
          "last_data_update",
          "records",
          "years",
          "geo_types"
        ],
        "additionalProperties": false
      }
    },
    "provenance": {},
    "attribution": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "total_matches",
    "showing",
    "offset",
    "has_more",
    "indicators",
    "provenance",
    "attribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢uis_list_geo_units(search, type, limit, offset, provenance_mode)

Valid geographic codes for uis_get_data: 462 geo units — countries (NATIONAL, ISO alpha-3 codes like BRA) and regional aggregates (REGIONAL). Filter by name/code and type. Does not return statistical values; these codes apply only to uis_get_data, not to other statistical servers.

Input Schema

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Case-insensitive filter on name, or exact code (e.g. \"BRA\")",
      "type": "string",
      "minLength": 1
    },
    "type": {
      "description": "Only countries (NATIONAL) or only regional aggregates",
      "type": "string",
      "enum": [
        "NATIONAL",
        "REGIONAL"
      ]
    },
    "limit": {
      "description": "Maximum results (default 100)",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "description": "Results to skip, for pagination (default 0)",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "provenance_mode": {
      "description": "Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)",
      "type": "string",
      "enum": [
        "concise",
        "detailed"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "total_matches": {
      "type": "number"
    },
    "showing": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_offset": {
      "type": "number"
    },
    "geo_units": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "provenance": {},
    "attribution": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "total_matches",
    "showing",
    "offset",
    "has_more",
    "geo_units",
    "provenance",
    "attribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢uis_get_data(indicators, geo_units, start_year, end_year, include_footnotes, ...)

Statistical records from the UNESCO Institute for Statistics Data API, filtered by indicator codes (from uis_search_indicators, up to 25), geo unit codes (from uis_list_geo_units) and year range. Set include_footnotes for per-record source notes. Returns raw UIS records only — it does not aggregate, convert or otherwise transform values; ILO labour statistics live in the sibling ILOSTAT MCP server. Broad queries are rejected with the record count — narrow by geo unit or years. A code that does not exist is an error carrying the UIS API's own wording, never an empty result: zero rows means the codes are real and the selection has no data, and the hint then relays what the UIS reported (including the indicator's available year range). When only SOME of the requested codes exist, the matching rows are returned with `warnings` naming the rest.

Input Schema

{
  "type": "object",
  "properties": {
    "indicators": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "Indicator codes from uis_search_indicators (e.g. [\"CR.1\"])"
    },
    "geo_units": {
      "description": "Geo unit codes from uis_list_geo_units (e.g. [\"BRA\",\"ARG\"]); omit for all",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "start_year": {
      "description": "First year, e.g. 2015",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "end_year": {
      "description": "Last year, e.g. 2024",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "include_footnotes": {
      "description": "Include per-record footnotes (source notes); default false",
      "type": "boolean"
    },
    "provenance_mode": {
      "description": "Provenance verbosity: 'concise' (default — source, url, vintage, retrieval date, citation, license) or 'detailed' (full canonical block with dataset, dimension key and notices)",
      "type": "string",
      "enum": [
        "concise",
        "detailed"
      ]
    }
  },
  "required": [
    "indicators"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "columns": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "rows_count": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "provenance": {},
    "attribution": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "columns",
    "rows_count",
    "rows",
    "provenance",
    "attribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢search(query)

Searches the UNESCO UIS statistics (≈5,000 indicators: education — enrolment, completion, literacy, teachers, spending, SDG 4 —, science/R&D (SDG 9.5), culture (SDG 11.4) and demographic context) 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 `uis_*` 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 Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms, natural language or keywords (accents and case are ignored)"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Unique identifier of the document on this server; what `fetch` takes"
          },
          "title": {
            "type": "string",
            "description": "Human-readable title of the document"
          },
          "url": {
            "type": "string",
            "description": "Canonical public URL of the document — ChatGPT's citation depends on it"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      },
      "description": "Matching documents, in relevance order"
    },
    "provenance": {},
    "attribution": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "results",
    "provenance",
    "attribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢fetch(id)

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 UNESCO UIS statistics (≈5,000 indicators: education — enrolment, completion, literacy, teachers, spending, SDG 4 —, science/R&D (SDG 9.5), culture (SDG 11.4) and demographic context) catalog. Only ids returned by `search` are valid; an unknown id returns an error. The `uis_*` 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 Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Identifier of a document returned by `search`"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Unique identifier of the document on this server; what `fetch` takes"
    },
    "title": {
      "type": "string",
      "description": "Human-readable title of the document"
    },
    "text": {
      "type": "string",
      "description": "Full readable content of the document (Markdown)"
    },
    "url": {
      "type": "string",
      "description": "Canonical public URL of the document — ChatGPT's citation depends on it"
    },
    "metadata": {
      "description": "Additional key/value pairs about the document (kind, source, period…)",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "provenance": {},
    "attribution": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "provenance",
    "attribution"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools