](https://lobehub.com/mcp/jpazvd-unicefstats-mcp)
联合国统计局mcp
实验性——不是联合国儿童基金会的官方产品。对照验证检索到的值 联合国儿童基金会数据仓库 在出版物引用之前。看 局限性.
儿童基金会儿童发展统计MCP服务器。查询200多个国家的790多个以儿童为重点的指标,按性别、年龄、财富五分位数和居住地分列。不需要API密钥。
指标涵盖儿童死亡率、营养、教育、儿童保护、讲卫生运动(水/环境卫生/个人卫生)、艾滋病毒/艾滋病、免疫、幼儿发展等。许多数据集与可持续发展目标相一致,但数据集比单独的可持续发展目标更广泛。
数据来源: 联合国儿童基金会SDMX API
身份
| 财产 | 价值 |
|---|---|
| MCP身份 | io.github.jpazvd/unicefstats-mcp |
| PyPI包 | unicefstats-mcp |
| 标准来源 | |
| 数据源 | 联合国儿童基金会数据仓库 通过 SDMX REST API |
| 维护者 | 若昂·佩德罗·阿泽维多(jpazvd) |
| 状态 | 试验性----未得到儿童基金会认可 |
第三方聚合器列表(LobeHub、Smithery、mcp.so、Glama)不受维护者控制。根据上述规范源进行验证。
目录
- 它与unicefdata包的关系
- 它与其他数据MCP的比较
- 景观:用于官方统计的MCP服务器
- 与sdmx-mcp的关系
- 快速开始
- 工具
- 演示
- 提示
- 基准结果
- 部署
- 发展
- 贡献
- 局限性和幻觉风险
- 来源和所有权
- 如何验证此MCP
- 许可证
关键文件
| 文档 | 描述 |
|---|---|
| PROVENANCE.md | 数据来源、所有权、分发渠道、验证步骤 |
| 更改日志.md | 版本历史(v0.1.0–v0.4.0),引用了源代码 |
| 发布.md | 发布流程检查表和版本管理 |
| 贡献.md | 开发设置、代码风格、PR指南 |
| 代码_OF_CONDUCT.md | 贡献者契约v2.1 |
| examples/RESULTS.md | 基于EQA分解的完整300个查询基准分析 |
| examples/LITERATURE_REVIEW.md | 文献综述:用于官方统计的MCP服务器——生态系统、模式、评估,15篇论文 |
| examples/LANDSCAPE.md | 比较20台MCP服务器的官方统计数据——时间线、功能矩阵、优缺点 |
| 示例/结果/related_work.md | 注释书目——关于工具增强幻觉的15篇论文 |
| 示例/结果/统计摘要.md | Wilcoxon、bootstrap CI、McNemar对基准测试结果的测试 |
| 示例/MCP-DIRECTORY-STAS.md | 所有官方统计MCP服务器的综合目录 |
它与unicefdata包的关系
unicefstats-mcp 是 不 替代 unicefdata Python、R或Stata中的包。他们服务于不同的受众:
| unicefstats mcp | unicefdata(Python/R/Stata) | |
|---|---|---|
| 观众 | 人工智能助手(Claude、Cursor、Copilot) | 数据科学家、研究人员、分析师 |
| 接口 | MCP协议(通过JSON调用工具) | 本机语言API(library(), import, ssc install) |
| 用例 | 对话式数据探索、快速查找、人工智能辅助分析 | 可重复性研究、ETL管道、统计分析 |
| 输出 | 针对LLM上下文优化的JSON(压缩或完整) | DataFrames、tibbles、Stata矩阵 |
| 脚本编写 | 否——通过人工智能聊天进行单个查询 | 是——完全程序化控制、循环、连接、转换 |
| 缓存 | 委托给unicefdata | 内置SDMX响应缓存 |
| 批量下载 | 有限(每次调用最多500行) | 无限——专为完整数据集拉取而设计 |
在幕后, unicefstats-mcp 包裹 unicefdata Python包。每次工具调用最终都会调用 unicefdata.unicefData() 或其元数据功能。将MCP视为位于同一数据层之上的薄AI友好界面。
何时使用哪个:
- 使用 联合国统计局mcp 当您与人工智能聊天并希望快速探索指标、检查值或比较国家时
- 使用 unicef数据 (Python/R/Stata)当你编写脚本、构建仪表板、运行回归或做任何可重复的分析工作时
它与其他数据MCP的比较
| 功能 | unicefstats mcp | FRED mcp | 世界银行mcp |
|---|---|---|---|
| 工具 | 8(搜索→ 元数据→ data → code → 身份) | 3(浏览→ 搜索→ get) | 1(仅get) |
| 指标 | 790+儿童关注指标 | 800000+经济系列 | ~1600个指标 |
| 国家 | 200+(ISO3) | 聚焦美国(部分国际) | 200+(ISO 2) |
| 分解 | 性别、年龄、财富五分位数、居住地 | 频率、季节性调整 | 无 |
| MCP提示 | compare_indicators | 无 | 无 |
| 输出模式 | 紧凑型(5列)/完整型(所有列) | JSON | CSV |
| 数据摘要 | 值范围、年份范围、国家计数 | 无 | 无 |
| 分页元数据 | total_rows_available vs rows_returned | limit/offset | 无(硬编码20K) |
| 输入验证 | ISO3、性别、财富、居住地已验证 | Zod模式 | 无 |
| 错误指导 | error + tip 下一步 | HTTP状态文本 | 原始异常 |
| API密钥 | 不需要 | 需要FRED_API_KEY | 不需要 |
| 截断处理 | rows_truncated 标志+过滤提示 | 无 | 无 |
景观:用于官方统计的MCP服务器
该项目是用于国际和官方统计的MCP服务器生态系统的一部分。截至2026年3月:
联合国机构
| 服务器 | 数据源 | 工具 | SDMX | 已发布 |
|---|---|---|---|---|
| 联合国统计局mcp (此仓库) | 联合国儿童基金会数据仓库 | 7 | 是 | PyPI |
| sdmx mcp | 任何SDMX注册表 | 23 | 是 | 否 |
| 联合国儿童基金会数据仓库mcp | 联合国儿童基金会数据仓库 | 3 | 是 | 否 |
| mcpunhcr | 难民署难民数据 | 5 | 否 | 否 |
| 医学mcp | 世界卫生组织全球卫生组织/美国食品药品监督管理局/公共卫生部 | 18 | 否 | 无 |
国际组织
| 服务器 | 数据源 | 工具 | SDMX | 已发布 |
|---|---|---|---|---|
| fredmcp服务器 | FRED(800K+系列) | 3 | 否 | npm |
| world_bank_mcp_server | 世界银行公开数据 | 1 | 否 | 否 |
| imf数据mcp | 国际货币基金组织(IFS、BOP、WEO) | 10 | 是 | PyPI |
| OECD-MCP | 经合组织(5000多个数据集) | 9 | 是 | npm |
| 欧洲统计局mcp | 欧盟统计局-欧盟统计 | 7 | 是 | 否 |
国家统计局
| 服务器 | 数据源 | 工具 | 已发布 |
|---|---|---|---|
| 美国人口普查局数据api-mcp | 美国人口普查局(官方) | 5 | 否 |
| 美国政府开放数据mcp | 40+美国政府API | 300+ | npm |
| ibge br mcp | 巴西IBGE(227次测试) | 22 | npm |
| 乌克兰统计mcp服务器 | 乌克兰SDMX v3 | 8 | npm |
| istat_mcp服务器 | 意大利ISTAT SDMX | 7 | 否 |
已知差距
以下项目不存在MCP服务器: FAO/FAOSTAT, 联合国教科文组织/UIS (4000+教育指标), ILO/ILOSTAT, UNSD SDG API, 联合国经社部人口, 联合国开发计划署/HDI.
包含安装命令的完整目录: MCP-直接统计.md
与sdmx-mcp的关系
联合国儿童基金会还保持 sdmx-mcp,通用SDMX协议MCP服务器。这两台服务器是 互补而非竞争:
| unicefstats mcp(此仓库) | sdmx mcp | |
|---|---|---|
| 范围 | 仅儿童基金会儿童发展数据 | 任何数据和元数据交换登记处(儿童基金会、欧统局、经合组织等) |
| 工具 | 7(分析师友好型,4步工作流程) | 23(SDMX高级用户,结构化查询) |
| 数据层 | 包装材料 unicefdata Python包 | 通过直接调用SDMX REST API httpx |
| 输出 | 为LLM格式化(紧凑的表格、摘要、提示) | 原始SDMX-JSON/CSV |
| 精度(EQA) | 0.990 | 0.074 |
| 幻觉 | 7%T1/34%T2 | 0%T1/0%T2 |
| 每次查询的成本 | $0.018 | $0.087 |
| 延迟 | 平均9.8s | 平均60s |
关键权衡:unicefstats mcp的准确性要高得多(EQA 0.990 vs 0.074),因为它的格式化输出针对LLM解析进行了优化。sdmx-mcp没有幻觉,因为它 assistant_guidance 字段和 validate_query_scope 该图案有效地防止了数据缺失时的制造。
何时使用哪个:
- 使用 联合国统计局mcp 联合国儿童基金会儿童发展分析——它更简单、更快、更准确
- 使用 sdmx mcp 当您需要查询非UNICEF SDMX注册表、探索数据流结构或使用分层代码列表时
完整的三方基准测试(单独LLM vs unicefstats mcp vs sdmx mcp): 示例/结果/
快速开始
pip install unicefstats-mcp克劳德代码
添加 ~/.claude/.mcp.json:
{
"mcpServers": {
"unicefstats": {
"command": "unicefstats-mcp"
}
}
}光标/VS代码
添加到MCP设置中:
{
"unicefstats": {
"command": "unicefstats-mcp"
}
}工具
| 工具 | 目的 | API调用? |
|---|---|---|
search_indicators(query, limit) | 按关键字查找指标 | 否 |
list_categories() | 浏览专题组(继续医学教育、营养、教育等) | 否 |
list_countries(region) | 列出具有ISO3代码的国家 | 否 |
get_indicator_info(code) | 完整元数据、SDMX详细信息、可用分类 | 否 |
get_temporal_coverage(code) | 可用年份范围和国家计数 | 是(轻量级) |
get_data(indicator, countries, ...) | 使用可选的分解过滤器获取观测值 | 是 |
get_api_reference(language, function) | unicefdata包API引用(Python/R/Stata) | 否 |
get_server_metadata() | 服务器标识、版本、来源、数据源 | 否 |
工作流程
1. search_indicators("child mortality") → find indicator codes
2. get_indicator_info("CME_MRY0T4") → check disaggregations & SDMX details
3. get_temporal_coverage("CME_MRY0T4") → check year range
4. get_data("CME_MRY0T4", ["BRA", "IND"]) → fetch data
5. get_api_reference("python", "unicefData") → get code template to continue in a script资源
服务器公开了六个MCP资源,客户端可以加载这些资源以获取指导和参考数据:
| URI | 目的 |
|---|---|
unicef://system-prompt | 推荐系统提示——操作循环+时间边界检查+反外推指令(会话开始时加载) |
unicef://llm-instructions | 完整的禁止/禁止规则、常见错误和反伪造指南 |
unicef://context | 运行时上下文-- current_date / current_year 用于临时查询健全性检查 |
unicef://categories | 所有具有计数的指标类别 |
unicef://countries | ISO3代码和国家名称 |
unicef://glossary | 分解代码和指标前缀图例 |
这 system-prompt 和 context 资源解决了T2幻觉故障模式(数据前沿之外多年的模型制造值)。采用世界银行的模式 数据360 mcp 服务器。请参阅v0.5.0的CHANGELOG条目。
演示
步骤1:搜索指标
>>> search_indicators("stunting", limit=3){
"query": "stunting",
"total_matches": 11,
"showing": 3,
"results": [
{"code": "FD_STUNTING", "name": "Moderate and severe stunting (Functional difficulties)"},
{"code": "NT_ANT_HAZ_NE2", "name": "Height-for-age >> get_indicator_info("CME_MRY0T4"){
"code": "CME_MRY0T4",
"name": "Under-five mortality rate",
"description": "Probability of dying between birth and exactly 5 years of age, expressed per 1,000 live births",
"dataflow": "GLOBAL_DATAFLOW",
"sdmx_api": "https://sdmx.data.unicef.org/ws/public/sdmxapi/rest/data/UNICEF,GLOBAL_DATAFLOW,1.0/.CME_MRY0T4?format=csv",
"disaggregation_filters": {
"sex": ["_T (Total)", "M (Male)", "F (Female)"],
"wealth_quintile": ["Q1 (Lowest)", "Q2", "Q3", "Q4", "Q5 (Highest)"],
"residence": ["_T (Total)", "U (Urban)", "R (Rural)"]
}
}步骤3:检查时间覆盖范围
>>> get_temporal_coverage("CME_MRY0T4"){
"code": "CME_MRY0T4",
"start_year": 1931,
"end_year": 2024,
"latest_year": 2024,
"countries_with_data": 249,
"note": "Not all countries have data for all years. Coverage varies by country."
}步骤4:获取数据
>>> get_data("CME_MRY0T4", ["BRA", "IND", "NGA"], start_year=2018, end_year=2023){
"indicator": "CME_MRY0T4",
"countries_requested": ["BRA", "IND", "NGA"],
"total_rows_available": 18,
"rows_returned": 18,
"rows_truncated": false,
"format": "compact",
"summary": {
"value_range": {"min": 14.42, "max": 117.56, "mean": 54.78},
"year_range": {"earliest": 2018, "latest": 2023},
"countries_in_result": 3
},
"data": [
{"iso3": "BRA", "country": "Brazil", "period": 2018, "indicator": "CME_MRY0T4", "value": 15.22},
{"iso3": "BRA", "country": "Brazil", "period": 2019, "indicator": "CME_MRY0T4", "value": 15.03},
{"iso3": "BRA", "country": "Brazil", "period": 2020, "indicator": "CME_MRY0T4", "value": 14.87},
{"iso3": "BRA", "country": "Brazil", "period": 2021, "indicator": "CME_MRY0T4", "value": 14.72},
{"iso3": "BRA", "country": "Brazil", "period": 2022, "indicator": "CME_MRY0T4", "value": 14.59},
{"iso3": "BRA", "country": "Brazil", "period": 2023, "indicator": "CME_MRY0T4", "value": 14.42},
{"iso3": "IND", "country": "India", "period": 2018, "indicator": "CME_MRY0T4", "value": 36.87},
{"iso3": "IND", "country": "India", "period": 2019, "indicator": "CME_MRY0T4", "value": 34.86},
{"iso3": "IND", "country": "India", "period": 2020, "indicator": "CME_MRY0T4", "value": 32.98},
{"iso3": "IND", "country": "India", "period": 2021, "indicator": "CME_MRY0T4", "value": 31.19},
{"iso3": "IND", "country": "India", "period": 2022, "indicator": "CME_MRY0T4", "value": 29.53},
{"iso3": "IND", "country": "India", "period": 2023, "indicator": "CME_MRY0T4", "value": 27.99},
{"iso3": "NGA", "country": "Nigeria", "period": 2018, "indicator": "CME_MRY0T4", "value": 117.19},
{"iso3": "NGA", "country": "Nigeria", "period": 2019, "indicator": "CME_MRY0T4", "value": 117.37},
{"iso3": "NGA", "country": "Nigeria", "period": 2020, "indicator": "CME_MRY0T4", "value": 117.42},
{"iso3": "NGA", "country": "Nigeria", "period": 2021, "indicator": "CME_MRY0T4", "value": 117.56},
{"iso3": "NGA", "country": "Nigeria", "period": 2022, "indicator": "CME_MRY0T4", "value": 117.46},
{"iso3": "NGA", "country": "Nigeria", "period": 2023, "indicator": "CME_MRY0T4", "value": 116.82}
]
}人工智能助手将从中提取关键见解:
- 巴西:14.4/1000----稳步下降,有望实现可持续发展目标3.2的具体目标(≤25)
- 印度:28.0/1000-快速改善(5年内37→28),最近超过可持续发展目标
- 尼日利亚:千分之117——基本持平,是可持续发展目标的4.7倍,负担最高
步骤5:获取代码模板以在脚本中继续
>>> get_api_reference("r", "unicefData"){
"language": "r",
"install": "install.packages(\"unicefdata\")",
"import": "library(unicefdata)",
"function": "unicefData",
"signature": "unicefData(\n indicator = NULL, # character — indicator code(s)\n countries = NULL, # character vector — ISO3 codes, NULL = all\n year = NULL, # numeric, character (\"2015:2023\"), or vector\n sex = \"_T\", # character — \"_T\", \"M\", \"F\"\n totals = FALSE, # logical — only return aggregate totals\n tidy = TRUE, # logical — standardize column names\n country_names = TRUE, # logical — add country name column\n format = \"long\", # character — \"long\", \"wide\", \"wide_indicators\"\n latest = FALSE, # logical — most recent value per country\n circa = FALSE, # logical — closest available year\n add_metadata = NULL, # character vector — e.g. c('region', 'income_group')\n dropna = FALSE, # logical — drop rows with missing values\n simplify = FALSE, # logical — minimal columns\n mrv = NULL, # integer — most recent N values per country\n raw = FALSE, # logical — all disaggregations, no filtering\n)",
"returns": "tibble with columns: indicator_code, iso3, country, period, value, sex, age, wealth_quintile, residence, ...",
"examples": [
{"description": "Under-5 mortality for Brazil, India, Nigeria (2015–2023)", "code": "df =0.95 | 0/10| **10/10** | — |
|T1幻觉(间隔年)|9%|7%|-2pp|
|T2幻觉(从未存在)|11%|37%原始/~10%已纠正|见分析|
|每次查询的成本|0.003|0.018|6×|
### v0.7.1当天清洁繁殖(n=5002026-05-08)
在v0.7.0发布指标名称解析器后,我们在每波检查点架构(PR#53)上重新运行了一个500查询子集(100正+200 T1+200 T2),并使用v0.6.4基线运行 **同一天** 为了控制上游模型快照漂移:
|度量|仅限LLM |LLM+MCP(v0.7.1)|Δ|
|---|---|---|---|
|POS EQA平均值|0.121| **0.897** |+77.6页(约7倍)|
|T1+T2幻觉(合并)|2.0%| **13.0%** |+11.0人|
|挂钟(并行运行)|3.8小时(v0.6.4)|9.2小时(v0.7.1)|+5.4小时|
A侧EQA在两次运行中均在0.3 pp以内,证实了当天的训练有效:B侧增量是真实的,而不是快照漂移。v0.7.1的复制品证实了原始的6.7×/8.2×精度标题为7×,并表明v0.4.0安全层+v0.7.0指示器解析器将T2制造从37%(v0.3.0)降至13%,但相对于无工具基线的剩余~11pp差距似乎是结构性的,与更广泛的工具增强LLM和RAG文献文件相匹配(见 [局限性](#limitations-and-hallucination-risks)).
### EQA分解(基线_最新提示)
|组件|LLM单独|LLM+MCP|增益|
|---|---|---|---|
|ER(提取率)|0.50| **1.00** | +0.50 |
|YA(年精度)|0.24| **0.99** | +0.75 |
|VA(数值精度)|0.37| **1.00** | +0.63 |
| **EQA=ER×YA×VA** | **0.147** | **0.990** | **+0.843** |
### 关键发现
1. **EQA>=0.95的所有10个指标** 使用MCP,在40个国家复制(R1+R2,零重叠)。10个中有7个达到了完美的EQA=1.000。
1. **年份准确性是LLM最大的弱点** (YA=0.24)。它引用2021-2022年作为IGME 2024估计存在的“最新”时间。MCP查询API并返回最近的实际年份。
1. **直接提示显示更大的MCP增益** (+0.722 vs+0.613),因为它消除了YA并隔离了纯粹的检索准确性。
1. **T2幻觉(~37%)因地面真相错误分类而膨胀**:SDMX API具有地面实况管道遗漏的微观状态的IGME死亡率数据。校正后:MCP~10%,单独LLM ~5%。剩下的幻觉是由 **信心效应** --当Claude具有强域先验时,它会覆盖工具错误。
1. **信心效应**:当MCP工具返回“无数据”,但LLM具有强大的领域先验(例如,知名国家的儿童死亡率)时,它会覆盖该工具并进行捏造。这是一种基本的LLM行为,不是MCP特有的。
### 三方比较(与sdmx-mcp)
|度量|仅LLM | unicefstats mcp | sdmx mcp|
|---|---|---|---|
| **EQA(均为阳性)** | 0.147 | **0.990** | 0.074 |
|T1幻觉|9%|7%| **0%** |
|T2幻觉|11%|37%| **0%** |
|费用(300次查询)|0.89|5.47|26.20美元|
|平均延迟|5s|9.8s|60s|
sdmx-mcp的原始sdmx-JSON输出对于LLM来说很难解析(VA=0.11),但它的抗幻觉护栏非常有效(0%伪造)。看 [与sdmx-mcp的关系](#relationship-to-sdmx-mcp) 了解详情。
全面分析、按指标分解和方法: **[examples/RESULTS.md](https://github.com/jpazvd/unicefstats-mcp/blob/main/examples/RESULTS.md)**
基准数据(带完整LLM响应的拼花地板): **[示例/结果/](https://github.com/jpazvd/unicefstats-mcp/tree/main/examples/results/)**
基准设计原理: **[示例/DESIGN_ISSUES.md](https://github.com/jpazvd/unicefstats-mcp/blob/main/examples/DESIGN_ISSUES.md)**
### 重现基准
Build ground truth from UNICEF SDMX API
python examples/00_build_ground_truth.py
Run 200-query benchmark (requires ANTHROPIC_API_KEY, ~$6)
python examples/benchmark_eqa.py
Add 100 direct-prompt queries to existing run (~$3)
python examples/01_run_direct_supplement.py
### 引用
该基准使用以下EQA指标:
> 阿泽维多,J.P.(2025)。“官方统计的人工智能可靠性:用联合国儿童基金会数据仓库对大型语言模型进行基准测试。”联合国儿童儿童基金会首席统计师办公室。
## 部署
### 本地(stdio)
unicefstats-mcp
### 远程(SSE)
unicefstats-mcp --transport sse --port 8000
### 码头工人
docker build -t unicefstats-mcp . docker run -p 8000:8000 unicefstats-mcp
## 发展
pip install -e ".[dev]" pytest tests/ -v ruff check src/ tests/ mypy src/unicefstats_mcp/
## 贡献
欢迎捐款。
### 贡献方式
- **错误报告**:打开一个 [问题](https://github.com/jpazvd/unicefstats-mcp/issues) 带有复制步骤
- **功能请求**:通过问题建议新的工具、指标或输出格式
- **代码**:分叉、分支、提交PR——请参阅下面的开发设置
- **基准**:在不同型号上运行EQA基准测试并分享结果
- **文档**:改进示例,修复拼写错误,添加用例
### 开发设置
git clone https://github.com/jpazvd/unicefstats-mcp.git cd unicefstats-mcp pip install -e ".[dev,benchmark]" pytest tests/ -v ruff check src/ tests/ mypy src/unicefstats_mcp/
### 拉取请求指南
1. **每个PR都有一个问题** --保持更改的重点和可审查性
1. **包括测试** 用于新工具或错误修复
1. **运行门楣** (`ruff check`)和类型检查器(`mypy`)提交前
1. **更新README** 如果更改工具签名或添加新功能
1. **不提交API密钥** 或大于500KB的基准结果包
### 优先领域
看 [审计结果](https://github.com/jpazvd/unicefstats-mcp/blob/main/examples/RESULTS.md) 对于已知的问题。高影响区域:
- **MNCH数据流错误**: `MNCH_CSEC` 和 `MNCH_BIRTH18` 由于数据流解析问题,返回0 EQA `unicefdata` 包裹
- **T2幻觉减少**:当API未返回结果时,进一步减少制造(目前约为10%;请参阅 [局限性](#limitations-and-hallucination-risks))
## 局限性和幻觉风险
### 数据限制
- 指标、国家和年份的覆盖率不均衡。根据设计,基于调查的指标(营养、教育、保护)在数据点之间存在3-5年的差距。
- 死亡率指标(CME\_\*)是联合国机构间小组(IGME)的模型估计值,紧凑输出中没有出现不确定性区间。
- 并非所有指标都支持所有细分维度; `get_indicator_info()` 列出每个指标可用的内容。
- `get_data()` 每次调用最多500行。
### 幻觉风险
基准测试(在两个复制样本、10个指标、45个国家中汇集了600个查询)确定了两种模式:
|类型|描述|费率(v0.5.x)|v0.7.1当天清洁|缓解措施|
|---|---|---|---|---|
| **T1(间隔年)** |LLM引用了存在数据但不同年份的年份|~7%|T1+T2的总和: **13%** (n=400)|服务器返回实际年份;LLM偶尔会忽略它|
| **T2(前沿)** |LLM为超出数据边界的一年制造一个值|~36%|(T1+T2组合在一起)|v0.5.0提供了一个反外推系统提示(`unicef://system-prompt`)和运行时上下文(`unicef://context`).在会话开始时加载这些。 |
T2在历史上是主要风险——由 **信心效应** LLM在检索了相邻年份的数据后,向前推断。v0.4.0安全层+v0.5.0系统提示+v0.7.0指示器解析器将T1+T2组合制造从37%(v0.3.0)降至13%(v0.7.1,当天清洁基线),减少了约24 pp。
相对于无工具基线(2%),出现了约11 pp的剩余差距 **结构的**,不是我们还没有修复的错误。这一发现与更广泛的工具增强LLM和RAG文献同时记录的内容一致:
- *推理陷阱:增强LLM推理如何增强工具幻觉* (ICLR 2025)-表明这种关系是因果关系:随着模型在工具使用方面变得更好,工具幻觉也会增加 *按比例地* 有能力。
- *通过可靠性校准减少工具幻觉* (曹等人,2024, [arXiv:2412.04141](https://arxiv.org/abs/2412.04141))--将失败正式化为 *工具选择* 错误(错误的工具、拒绝失败)和 *工具使用* 误差(制造参数)。
- *ReDeEP:通过机械可解释性检测检索增强生成中的幻觉* (Sun等人,2024)——机械地表明,LLM的参数知识可以覆盖残差流中检索到的上下文。
给用户的启示是:服务器端护栏减少了工具增强幻觉的程度;根据目前的证据,他们不会改变方向。任何生产部署都应该:
1. 加载 `unicef://system-prompt` 和 `unicef://context` 会话开始时的资源(处理前沿制造)。
1. 将MCP结果视为尽力检索,而不是绝对正确的事实——根据 [联合国儿童基金会数据仓库](https://data.unicef.org/) 在引用之前。
1. 更喜欢明确年份的查询(“2023年尼日利亚五岁以下儿童死亡率”),而不是开放式查询(“尼日利亚最新的五岁以下死亡率”)——在没有数据的情况下,前者会更可靠地引发拒绝。
完整的基准方法: [examples/RESULTS.md](https://github.com/jpazvd/unicefstats-mcp/blob/main/examples/RESULTS.md)
## 来源和所有权
此MCP提供的所有数据都来自 [联合国儿童基金会数据仓库](https://data.unicef.org/),通过公共SDMX REST API实时访问。不存储或缓存观测数据——每个 `get_data()` 呼叫导致实时SDMX请求。指标和国家登记册在首次访问时缓存在内存中以提高性能;这些是目录元数据,而不是统计值。MCP会重新格式化输出以供LLM使用,但不会更改值。
有关数据来源、所有权、分发管道和解释注意事项的完整详细信息,请参阅 [PROVENANCE.md](PROVENANCE.md).
## 如何验证此MCP
|检查|如何|
|---|---|
| **来源** |存储库是 [`jpazvd/unicefstats-mcp`](https://github.com/jpazvd/unicefstats-mcp) 在GitHub上|
| **包裹** | `pip show unicefstats-mcp` --验证 `Home-page` 指向规范仓库|
| **版本** | `python -c "import unicefstats_mcp; print(unicefstats_mcp.__version__)"` --与 `server.json` 和PyPI|
| **来源** | [PyPI证明](https://pypi.org/project/unicefstats-mcp/#files) 将每个版本链接到GitHub Actions工作流|
| **运行时** |呼叫 `get_server_metadata()` --返回规范名称、版本、发布者和数据源|
## 许可证
麻省理工学院