关于 UNESCO UIS Education Statistics MCP
此托管 MCP 服务提供 UNESCO Institute for Statistics 的教育、科学、文化和通信数据,供查询国家、地区及年度指标。结果包含数据版本、获取时间、许可信息和引用,便于核查来源。
主要功能
- 01UIS 教育、科学、文化及通信指标
- 02通过扩展词汇搜索指标
- 03按国家、地区和年份获取数据
- 04提供来源、版本、许可及引用信息
- 05托管 Streamable HTTP 与本地 stdio 模式
适用场景
- 01比较不同国家的教育完成率
- 02查找失学儿童相关指标
- 03查看教育支出或研发数据
- 04查询 UIS 地理代码和区域汇总
MCP 相关
它通过托管的 Streamable HTTP 和本地 stdio 运行方式,向客户端提供 UIS 数据查询工具与资源。另提供供 ChatGPT Deep Research 使用的 search 和 fetch 工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://uis.sidneybissoli.com/mcpclaude mcp add --transport http sidneybissoli-uis https://uis.sidneybissoli.com/mcp{"mcpServers":{"sidneybissoli-uis":{"type":"http","url":"https://uis.sidneybissoli.com/mcp"}}}在 Cursor 中打开{"servers":{"sidneybissoli-uis":{"type":"http","url":"https://uis.sidneybissoli.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"sidneybissoli-uis":{"type":"http","url":"https://uis.sidneybissoli.com/mcp"}}}{"mcpServers":{"sidneybissoli-uis":{"serverUrl":"https://uis.sidneybissoli.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
5| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 最大结果数(默认值 20) |
| query | string | 是 | 关键词,与指标名称和代码匹配;各词之间为 AND 关系(例如 "literacy rate youth") |
| theme | enum | 否 | 限制为一个 UIS 主题EDUCATION | SCIENCE_TECHNOLOGY_INNOVATION | CULTURE | DEMOGRAPHIC_SOCIOECONOMIC |
| offset | integer | 否 | 要跳过的结果数,用于分页(默认值 0) |
| provenance_mode | enum | 否 | 来源信息详细程度:'concise'(默认值——来源、url、版本、检索日期、引用、许可证)或 'detailed'(包含 dataset、dimension key 和 notices 的完整规范块)concise | detailed |
详细介绍
UNESCO UIS 教育统计 MCP 服务
🇧🇷 阅读葡萄牙语版
一个公开托管、优先保证来源可追溯的MCP 服务,提供**联合国教科文组织统计研究所(UIS)**的统计数据——涵盖教育、科学与研发、文化和传播——无需安装、无需账户、无需 API 密钥。将 MCP 客户端连接到托管端点,即可查询各国、地区和年份的入学、完成学业、失学儿童、识字率、教育支出、研究人员和研发支出数据。该服务运行于 Cloudflare Workers,通过 Streamable HTTP 连接官方 UIS Data API。
独立项目。 这是一个非官方的社区构建客户端,用于访问 UIS 的公开 Data API,与 UNESCO 或联合国教科文组织统计研究所均无关联,也未获其认可。 数据版权归 UNESCO-UIS 所有,采用 CC BY-SA 4.0 许可;请参阅数据许可与署名。
每条响应都附带来源信息块(来源 URL、所依据的 UIS 数据版本、实际检索时间戳、许可协议、UIS 引用)——提供准确数据及审计追踪,而非根据训练数据猜测的数字。
🇧🇷 葡萄牙语版。 面向联合国教科文组织统计研究所统计数据的远程托管 MCP 服务(无需安装、无需账户、无需密钥),提供按国家、地区和年份划分的入学、完成学业、失学儿童、识字率、教育支出和研发数据,可直接在 Claude、ChatGPT 或任何 MCP 客户端中使用;每条响应都附带来源信息和引用:葡萄牙语版 README。
它能回答的问题
用通俗的语言,在 MCP 客户端中,由助手选择工具和筛选条件:
- “哪些 UNESCO 指标跟踪失学儿童?”(
uis_search_indicators) - “2015 年后,巴西、秘鲁和哥伦比亚的小学完成率如何变化?”(
uis_get_data) - “UNESCO 是否有政府教育支出占 GDP 比例的时间序列?”
(
uis_search_indicators→uis_get_data) - “自 2010 年以来,金砖国家每百万人口中有多少研究人员?”
(
uis_search_indicators→uis_get_data) - “阿根廷和智利的成人识字率是多少?按性别划分。”(
uis_get_data) - “UIS 用于科特迪瓦的地理单位代码是什么?有哪些区域汇总数据?”
(
uis_list_geo_units)
其中有三项——入学、识字和教育支出——通过实时服务运行,并展示工具调用和返回结果:uis.sidneybissoli.com/examples。
用自己的说法提问,而不是照搬 UNESCO 的术语。 UIS 使用英式统计英语,而目录根据指标名称进行匹配——所以使用日常用语或美式英语可能会导致完全没有结果。在官方目录的 5,063 项指标中进行测量(2026-09-16),并自 0.3.0 起修复:搜索会将术语扩展为来源中的说法(同一术语内用 OR 连接,不同术语之间用 AND 连接——只会提高召回率),并在 vocabulary_notes 中说明做了术语转换;如果没有结果,会提供 hint,提示接下来可以尝试什么。search 索引(深度研究)也使用同一张表。
| 你搜索的词 | 转换前的命中数 | UNESCO 使用的说法 | 命中数 |
|---|---|---|---|
enrollment | 0 | enrolment | 387 |
education spending、budget | 0 | expenditure | 57 |
teacher wages | 0 | salary | 4 |
university、college | 0 | tertiary | 448 |
preschool、kindergarten | 0 | pre-primary、early childhood | 113 |
elementary | 0 | primary | 886 |
scientists | 0 | researchers | 11 |
girls、women | 0 | female | 1,252 |
kids、teenagers | 0 | children、adolescents | 161、131 |
graduation rate | 0 | completion | 342 |
pupil-teacher ratio | 0 | pupil-qualified teacher ratio | 10 |
foreign students | 249 | internationally mobile students | 979 |
primary school completion | 0 | primary education | 114 |
illiteracy、maths、tvet、phd、stem | 0 | illiterate、mathematics、vocational、doctoral、science、technology、engineering | 268、79、33、24、9 |
表中只列入经过测量的对应词(用户搜索的词不在目录中,而来源用词在目录中)——对应表及计数位于 src/uis/vocabulary.ts。UIS 未发布的术语不会纳入,搜索仍会返回 0,因为为不存在的数据添加别名会让人误以为来源提供了这些数据:dropout、tuition、unemployment 和 labor(劳工统计数据由姊妹服务 ilo-mcp-server 提供;目前 labor 匹配到的是包含“collaboration”的 62 个名称)。
与其他方案的比较
已经使用 UIS 数据的人有不少好用的工具,而此服务不会取代其中任何一种——它在整个流程中承担不同的角色:在问题提出的当下,于助手内回答问题,并在答案中附上来源、数据发布版本和许可信息。版本测量日期:2026-10-02。
| 工具 | 简介 | 适用场景 |
|---|---|---|
| uis-mcp-server(本项目) | 托管式远程 MCP 服务,无需安装:提供 5 个工具,覆盖约 5,060 项 UIS 指标,每个回答都附带溯源信息块 | 在助手(Claude、ChatGPT、Cursor、Claude Code)中提问,且需要审计回答时 |
| uisapi 0.1.1(R,CRAN) | UIS Data API 的社区 R 客户端(并非由 UIS 工作人员开发);也列出批量文件 | 使用 R,并希望将 UIS 序列载入数据框进行分析时 |
| unesco-reader 3.1.1(Python,PyPI) | UIS Data API 的社区 Python 客户端 | 使用 Python 构建工作流时 |
| global-education-mcp 0.4.0(MCP,Python) | 另一个 MCP 服务:提供 UIS Data API 和 OECD Education at a Glance API | 希望在一个本地服务中并排查看 UIS 和 OECD 教育数据时 |
| unesco-mcp(MCP,Python,PyPI) | 另一个基于 UIS API 的 MCP 服务,可通过 uvx 在本地运行;目录缓存于 SQLite,并提供排名和比较工具(测量日期:2026-10-13) | 希望使用内置分析工具的本地服务时 |
| UNESCO UIS Statistics Scraper(Apify actor) | 基于同一 Data API 的社区 actor,由 Apify 的通用 MCP 服务作为工具提供;需要 Apify 账户,按结果付费(根据套餐,每行 US$ 0.002–0.004,2026-10-13);输出包含来源 URL,但不包含数据发布版本 | 已在运行 Apify 工作流,并希望将 UIS 数据行保存到 Apify 数据集中时 |
| WDI / wbstats(R)、wbgapi(Python) | 世界银行客户端;WDI 会再发布许多 UIS 教育序列,但有延迟 | 希望将 UIS 教育序列与世界银行指标放在一起时 |
| UIS Bulk Data Download Service | UIS 自行提供的按数据发布版本划分的 CSV 文件(SDG 和 OPRI) | 需要完整数据集,而非问题答案时 |
| UIS Data API | 本服务调用的数据源本身——无需密钥 | 正在构建自己的客户端并希望完全掌控时 |
关于 SDMX: UIS 已不再提供 SDMX。其旧版 SDMX API 已于 2020-06-23 终止服务(UIS 自己在 2026 年 2 月的数据发布说明中提及),该端点现在返回 404——仍列出 UNESCO 来源(例如 sdmx1)的通用 SDMX 客户端指向的是已失效的 URL,而 DBnomics 上的 UNESCO 数据副本则是冻结在 2020 年左右的快照。如需查询 SDMX 格式的劳工统计数据,请参阅姊妹服务 ilo-mcp-server,它连接到 ILOSTAT SDMX API。
以下情况请勿使用本服务: 需要完整数据集而非问题答案时(应使用批量文件);问题涉及的并非 UIS 发布的教育、科学、文化或通信统计数据时(劳工数据 → ILO,国民账户 → IMF/World Bank);或需要微观数据时:UIS 发布的是汇总数据,本服务也一样。
姊妹服务采用相同设计并附带相同的溯源信息块,涵盖其他官方数据源: ILOSTAT(ILO 劳工统计)、 IBGE(巴西统计)、 BCB(巴西中央银行)、 Senado(巴西参议院开放数据)、 SIH/SUS(巴西住院数据)以及 医学术语(ICD-11、ICD-10、LOINC、RxNorm、ATC、MeSH)。
使用(托管版——无需设置)
将任意 MCP 客户端指向 Streamable HTTP 端点:
https://uis.sidneybissoli.com/mcp
Claude Desktop / Claude Code 和其他原生支持远程连接的客户端:
{
"mcpServers": {
"unesco-uis": {
"url": "https://uis.sidneybissoli.com/mcp"
}
}
}
对于通过命令启动 MCP 服务的客户端,请使用
mcp-remote 桥接工具:
{
"mcpServers": {
"unesco-uis": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://uis.sidneybissoli.com/mcp"]
}
}
}
uis-mcp-server.sidneybissoli.workers.dev 主机名也提供服务,作为备用地址。
ChatGPT(深度研究)
ChatGPT 深度研究(以及企业知识库和基于 Responses API 的研究工作流)
仅使用恰好公开 search 和 fetch 的 MCP 服务——本服务除了提供 uis_* 工具外,也符合这一要求。将连接器指向托管端点,无需密钥:
https://uis.sidneybissoli.com/mcp
search 会将查询与完整的 UIS 目录(约 5,060 个指标,涵盖教育、科学/研发、文化、人口背景)进行匹配,并返回 { id, title, url }(ind:<code>,例如
ind:ROFST.1.CP);fetch 会以易读的 Markdown 返回指标信息——名称、主题、Data Browser 分组和框架、可用年份、数据样本(巴西和 SDG 世界汇总数据,最近五年;使用固定版本进行一次 Data API 调用),以及如何通过 uis_get_data 查询——并将 UIS Data Browser 公共页面作为 url
(https://databrowser.uis.unesco.org/view#indicatorPaths=<framework>%3A0%3A<code>),ChatGPT 会引用该页面。在 search/fetch 中,文本通道遵循深度研究协议的 JSON 格式(无页脚);来源信息通过 structuredContent 和 _meta 传递。在 ChatGPT 的开发者模式(Settings → Security and login → Developer mode)中,可以调用任何工具——数据查询仍应使用 uis_* 工具。
在本地运行(stdio)
不想让查询经过第三方主机?同一服务也可以作为本地 stdio 进程运行,直接连接官方 UIS Data API——提供相同的 5 个工具和 3 个资源,限制和来源信息块也相同,整个过程不经过 Cloudflare。两个运行时的接口在构建时确保一致(CI 会检查:node scripts/dump-surface.mjs --stdio)。
无需安装——该软件包已发布在 npm 上(uis-mcp-server,Node ≥ 22):
{
"mcpServers": {
"unesco-uis": {
"command": "npx",
"args": ["-y", "uis-mcp-server"]
}
}
}
或者从源代码运行:
git clone https://github.com/SidneyBissoli/uis-mcp-server
cd uis-mcp-server
npm install
npm run build
node dist/cli.js # serves MCP over stdio (Ctrl+C to stop)
与托管服务的差异均源于缺少 Cloudflare 绑定:
- 当前数据版本(
/versions/default)保存在进程内存中:每个会话解析一次,不会跨会话保留; - 指标目录和地理单元会在首次搜索时从官方端点下载(
/definitions/indicators、/definitions/geounits——与托管目录的种子数据来源相同;约 1 秒),来源信息报告的retrieved_at是该下载的实际时间; - 内存中的目录不会下载 UIS Data Browser 定义(约 6.7 MB),因此
fetch引用的 URL 会回退到 Data Browser 首页,且search索引的关键词中不包含分组名称——深度研究会连接到包含这些信息的托管服务; - 无使用指标、速率限制或身份验证。
日志写入 stderr——stdout 仅承载 JSON-RPC 流。仓库中的 Dockerfile 会构建此运行时(供 Glama 注册表使用)。
工具
| 工具 | 功能 | 来源 |
|---|---|---|
uis_search_indicators | 在约 5,060 个指标(4 个主题)中按关键词搜索,并显示数据可用性;将用户的词语转换为 UNESCO 使用的词语,并说明转换情况(vocabulary_notes);通过 offset 分页 | 本地目录(不调用上游) |
uis_list_geo_units | 提供 462 个国家和地区代码(NATIONAL/REGIONAL);通过 offset 分页 | 本地目录(不调用上游) |
uis_get_data | 按指标、地理单元和年份获取记录,可选择包含脚注 | 每次查询调用 1 次实时 Data API(固定版本) |
search | ChatGPT Deep Research 合约:根据查询内容在完整目录中排序,返回 { id, title, url }(ind:<code>) | 基于本地目录构建的内存索引(24 小时) |
fetch | ChatGPT Deep Research 合约:将单个指标以易读的 Markdown 格式呈现(目录条目 + 数据样本),并将公开的 Data Browser 页面作为 url | 本地目录 + 1 次 Data API 调用(样本) |
典型流程:使用 uis_search_indicators 查找指标代码 → 使用 uis_list_geo_units 查找国家/地区代码 → 使用带年份筛选条件的 uis_get_data。
每个响应都会在三个渠道中携带该工具集的溯源信息块
(@sbissoli/mcp-provenance,通过
provenance_mode 参数选择 concise/detailed 模式):structuredContent、带命名空间的 _meta
(com.sidneybissoli.uis/*)以及文本页脚。
从 1.1.0 起,该信息块包含 retrieval,即调用来源诊断信息——有多少请求发送到 Data API、进行了多少次尝试、克服了哪些异常,以及答案是否为 unstable。这些信息由该工具集的通用 fetch
(@sbissoli/mcp-upstream)进行测量;如果答案未涉及 UIS(目录或缓存版本),则为 null。
资源
三个资源(静态,text/markdown,不调用上游),客户端可在调用工具前附加到上下文中——它们可以省去大多数会话在发现阶段花费的调用,用于确认“哪个指标、哪个代码”:
| URI | 内容 |
|---|---|
uis://guide | 工具工作流、代码约定(指标代码系列和后缀、ISO alpha-3 地理单元、主题)、限制、报告规则 |
uis://reference/key-indicators | 按主题列出的已验证指标代码(完成情况、失学、入学、识字、学习水平、教育支出、SDG 9.5 的研发支出、SDG 11.4 的遗产支出、人口) |
uis://reference/provenance | 每个溯源字段的含义以及如何引用 UIS,包括 CC BY-SA 的 ShareAlike 条款对下游使用的要求 |
行为与限制
- 每次数据查询都会固定版本。
uis_get_data会发送明确的version=,该版本从/versions/default解析并缓存 24 h——确保结果可复现,同时复用上游自身的缓存。版本是data_vintage(例如20260507-91260335 (published 2026-05-08));UIS 发布新版本后,数据查询会在 24 h 内切换到该版本。 - 每个响应最多包含 5,000 条记录,每次调用最多查询 25 个指标。 超出上限时,服务会返回说明性错误并附上实际记录数——绝不会静默截断,因为将不完整数据作为完整数据呈现会破坏溯源约定。UIS 自身设定的 100,000 条记录上限会以带说明的上游 HTTP 400 响应返回。
- 指标目录是 UIS 某个版本的快照,UIS 每次发布新版本时由人工刷新(每年 2–3 次);
uis_search_indicators的溯源信息会报告真实的retrieved_at,因此其时效性始终可见(served_from_cache: true)。 retrieved_at始终表示从 UIS 提取数据的真实时刻,绝不是构建或响应时间。当一个答案合并了不同时间提取的内容时(uis_get_data:当前版本,缓存时间最长为 24 h,加上本次获取的数据;fetch:还包括目录行),该值取其中最早的时刻,而field_sources会为每部分提供各自的时刻和缓存标记(自 1.5.1 起)。- 通知会报告脚注类型、幅度和限定词,并附带计数;每条脚注的完整文本仍保留在对应行中(
include_footnotes: true)。 - 每次上游调用都有超时和重试策略(自 1.1.0 起;根据 2026-09-27 对实时 API 的测量:版本查询耗时 1.1 s,小型查询耗时 0.8 s,五个完整指标耗时 2.9 s/3.5 MB,10 万条上限的 400 响应耗时 0.9 s):每次尝试限时 35 s——是最坏正常情况耗时的十倍,也超过 UIS 前置 AWS API Gateway 的 29 s 限时——;遇到 5xx、429(遵循
Retry-After)和网络错误时,最多尝试 3 次,每次调用总计限时 45 s。超时、HTTP 504、带说明的 400 和 404 均不会重试。发生的情况会记录在溯源信息的retrieval字段中;超时或网络故障会转换为易读的错误,而非原始异常。 derived始终为false——该服务不会转换数值。- 语言:英语;时区:UTC(UIS 数据以英语发布)。
可从注册表核验的接口指纹
每个版本都会在其 MCP Registry 条目中发布该版本所提供接口(initialize、工具、资源、提示词)的 sha256,以及无需凭据即可响应的方法。接口发生变化但版本号未更新时,构建会失败;注册表中的指纹可供客户端在自身一侧核验相同内容。规范形式与操作流程见 @sbissoli/mcp-surface 的 SPEC.md。
你也可以自行核验(Node 18+,无需依赖):
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/uis-mcp-server
数据许可与署名
- UIS 数据:CC BY-SA 4.0(适用 UIS Data Browser 的条款,该条款也适用于 Data API;许可证已于 2026-08-04 核实)。
- 每个响应都会附上 UIS 署名(
citation字段),包含完整 URL 和提取日期:Source: UNESCO Institute for Statistics (UIS), <URL>, date of extraction <date>. - 相同方式共享:基于这些数据构建并重新分发的任何内容,都必须继续采用 CC BY-SA 4.0 许可证——
uis://reference/provenance资源对此有明确说明。 - 不使用 UNESCO 徽标,也不暗示获得其背书;因此该服务名为
uis-mcp-server,而非“unesco-mcp-server”。ILOSTAT 数据(CC BY 4.0)由独立服务提供,因此两种许可证不会共存于同一响应中。
自托管 / 开发
以下内容仅在运行自己的实例时需要——使用公共服务无需这些内容。
npm install
npm run typecheck && npm test # offline suite (tools, framework, vocabulary, in-memory catalogue, eval fixtures)
npm run dev # http://localhost:8787/mcp (Worker)
npm run build # stdio runtime → dist/cli.js (what ships to npm)
node scripts/dump-surface.mjs --stdio # offline smoke of the build: initialize → tools/resources/prompts
# Catalogue seed (D1) — required before first use:
node scripts/seed-uis-catalog.mjs
npx wrangler d1 execute uis-catalog --local --file=scripts/seed-uis-catalog.sql
npx wrangler d1 execute uis-catalog --remote --file=scripts/seed-uis-catalog.sql
npm run deploy
node scripts/smoke-mcp.mjs # smoke test against production (initialize → tools/list == /status → uis_* → search/fetch → errors)
运维说明:
- 目录刷新是手动进行的,每次 UIS 数据发布时刷新一次(不使用 cron)。生产环境冒烟测试会打印当前 Data API 发布版本;如果该版本与种子数据的发布版本不同,请使用上面的三个命令重新初始化。数据查询会自动跟随默认发布版本,因此只有目录可能过时——其过时情况会在溯源信息中体现。
- UIS Data API 可直接使用 Node 的
fetch(无需像 ILO 网关那样变通处理请求头)。 - 可选的 Bearer 身份验证(
wrangler secret put API_KEY);按 IP 进行令牌桶限流。
评测
@sbissoli/mcp-evals:evals/fixtures/queries.ts 中有 22 个测试样例,在 npm test 中离线验证。使用真实模型运行(npm run eval)会调用 Anthropic API,并需要 ANTHROPIC_API_KEY(未设置时会退出并显示说明)。2026-08-07 的运行结果:top-1 100%(20/20)——evals/results/。
端到端:evals/e2e/evaluation.xml 中有 10 个答案唯一且可验证的复杂问题,答案已对照生产环境手动验证(evals/e2e/validacao-respostas.md)。2026-08-07 的运行结果(Sonnet):10/10——evals/results/2026-08-07-e2e.md。
端点
| 路由 | 用途 |
|---|---|
/ | 着陆页(服务身份信息 + 联系方式——公开) |
/health | 存活状态 |
/status | 版本、工具数量及名称、当前部署(用于 README 徽章) |
/metrics | 汇总用量(仅 MCP 端点;不含 IP 或查询内容) |
/.well-known/mcp/server-card.json | 供目录扫描器使用的 MCP 服务卡片(根据实时的 initialize + 列表生成——公开) |
/mcp | MCP Streamable HTTP |
安全
Snyk Agent Scan(2026-08-07,在添加 search 和 fetch 之前):通过——报告见 security/。
许可证
代码:MIT。数据:UIS,CC BY-SA 4.0(见上文“数据许可与署名”)。
隐私
托管服务的隐私政策:PRIVACY.md。
联系方式
Sidney da Silva Pereira Bissoli — [email protected]。此服务未获 UNESCO 背书。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。