
NHANES (design-correct survey analysis)
com.blackswancausallabsv0.5.1更新于 Oct 5, 2026
Design-correct NHANES analysis: survey weights, pooled cycles, CIs and NCHS reliability flags.
概览
让助手以符合调查设计的方式分析 NHANES 数据,正确使用权重、合并周期、置信区间和 NCHS 可靠性标记。
- 功能
- 提供 17 个工具,用于定位、查找、构建、清理、分析和导出 NHANES 公共使用数据。它会查找文件、按 SEQN 合并、选择最严格的调查权重、保留完整调查设计,并给出基于设计的估计、Taylor 线性化方差、Korn-Graubard 置信区间和 NCHS 可靠性标记。还支持年龄调整、周期合并、派生变量、长表折叠,以及可选的关联死亡数据合并和基于设计的 Cox 模型。
- 适用场景
- 当助手需要从 NHANES 公共使用文件中得到可辩护的估计,而不是未加权汇总时使用,例如患病率、亚组比较、回归或跨周期死亡分析。主要面向公共卫生、流行病学和调查研究工作流。
- 运行要求
- 作为本地 stdio 进程运行,从 PyPI 包 nhanes-mcp 安装(通常通过 uvx),或从源码安装并需要 Python 及其依赖。首次使用时从 cdc.gov 下载数据并缓存;NHANES_MCP_CACHE 可覆盖缓存目录,NHANES_MCP_DATA_DIR 指向手动下载的 .xpt 文件以离线使用。未声明身份验证。
安装
在 SourceWeft 中
- 打开 控制台中的 NHANES (design-correct survey analysis),将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
nhanes-mcp
An MCP server for design-correct, conversational access to NHANES public-use data. Black Swan Causal Labs · MIT license · v0.5 · PyPI · MCP Registry
Most "chat with a dataset" layers let an agent compute an unweighted mean. With NHANES that
answer is wrong. This server makes the defensible analysis the default: the agent asks a question
in plain language, and the server finds the files, merges them on SEQN, picks the right weight,
keeps the full survey design, and reports design-based estimates with NCHS reliability flags.
Not affiliated with, or endorsed by, NCHS or CDC. Data are the public-use NHANES files published by the National Center for Health Statistics and downloaded directly from cdc.gov. Users are responsible for following the NCHS data use agreement.
What it handles for you
Tools (17)
Cycles: 1999–2000 through 2017–2018, 2017–March 2020 (pre-pandemic, P_ files) and August 2021–August 2023.
Results Explorer (optional add-on)
show_results returns design-based results as text plus structured data in every client. With the
optional NHANES Results Explorer add-on installed, MCP Apps hosts (Claude Desktop/web, ChatGPT,
VS Code, Goose) also render an interactive view: headline estimate with CI and NCHS reliability badge,
a crude / age-adjusted toggle that re-runs the estimate on the server, the analysis plan, subgroup
panels, server warnings, benchmarks against published estimates, and design provenance.
The add-on is a separate package from Black Swan Causal Labs under the PolyForm Noncommercial
License 1.0.0 (free for academic, public-health and other noncommercial use; commercial use needs a
license — https://blackswancausallabs.com). It is not part of this MIT repository. nhanes-mcp finds it if
it is installed in the same Python environment, if NHANES_MCP_EXPLORER_PATH points to it, or if a
folder named nhanes-mcp-explorer sits next to the nhanes-mcp folder.
Validation
Estimates were checked against published NCHS results (validation/):
- Prevalence: 57 of 57 published NCHS estimates reproduced (Data Briefs 360, 363, 508, 515; pooled 2015–2018; 2017–March 2020 pre-pandemic).
- Standard errors: 20 of 20 match; 11 of 12 published 95% CI bounds identical (the 12th differs by 0.1 at a rounding edge).
- Mortality: a design-based Cox model on NHANES 1999–2006 (adults 25+) reproduces 6 of 7 published hazard ratios within their CIs (NHSR 155). The Mexican American contrast does not reproduce (0.71 vs 1.12 published); this is under investigation and the linked file here has longer follow-up (2019 vs 2015).
- Hypertension (NCHS Data Brief 511, 2021–2023, adults 18+): prevalence (crude and age-adjusted, by sex and age), awareness, treatment and control — 17 of 17 published estimates reproduced exactly.
- CMV seroprevalence (Bate et al., Clin Infect Dis 2010; NHANES 1999–2004, ages 6–49, surplus-serum
weights): see
tests/benchmark_nchs.py. Before v0.4 the server silently used MEC weights here and could not load the 1999–2000 file. - Unit tests (
tests/): variance checked against an independent loop implementation and a delete-one-PSU jackknife; Cox model checked against statsmodels PHReg and a jackknife; weight selection, pooling, guards, expression semantics, long-table and dietary-weight handling.
Install
Easiest: let your AI assistant do it
Paste this into Claude (Cowork or Claude Code), or any agent that can run commands on your computer:
Install the nhanes-mcp MCP server (PyPI package
nhanes-mcp) for Claude Desktop. Installuvif it is missing, then add this entry to my Claude Desktop config (claude_desktop_config.json), using the full path touvx:"nhanes": {"command": "uvx", "args": ["nhanes-mcp"]}. Keep my existing servers. Then tell me to restart Claude Desktop.
One line in the config (uvx)
With uv installed, add to claude_desktop_config.json and restart Claude Desktop
(on macOS use the full path from which uvx, e.g. /Users/<you>/.local/bin/uvx):
uvx fetches the server from PyPI into an isolated environment on
first launch; no clone or virtual environment to manage. To run the latest code from GitHub instead, use
"args": ["--from", "git+https://github.com/Black-Swan-Causal-Labs/nhanes-mcp", "nhanes-mcp"].
From source (for development)
Any MCP client that runs local stdio servers works the same way. Data are downloaded from
cdc.gov on first use and cached in ~/.cache/nhanes-mcp (override with NHANES_MCP_CACHE).
Set NHANES_MCP_DATA_DIR to a folder of manually downloaded .xpt files to work offline.
Need help setting it up for your team, or adapting it to another survey or dataset? Contact Black Swan Causal Labs.
Tests
Known open issues
- Age-adjusted adult obesity for 2009–2010 and earlier runs 0.1–0.7 points below NCHS Health E-Stat 111 (2011–2012 onward matches exactly). Pooling and pregnancy-code handling were ruled out; cause under investigation.
- The CMV analysis finds 14,198 tested participants aged 6–49 in the public surplus-serum files versus 15,310 reported by Bate et al.; unexplained.
- NHANES III (1988–1994) is not supported.
Changelog
- 0.5.1 — First release on PyPI (
uvx nhanes-mcp) and the official MCP Registry (com.blackswancausallabs/nhanes-mcp). Packaging metadata only; no analysis changes. - 0.5.0 —
show_resultstool (text + structured results; interactive view via the optional Results Explorer add-on); one-command install withuvx; analysis guidance rule 11. - 0.4.1 — Comparisons inside missing-aware functions now return missing when an operand is missing, so
skip-pattern definitions such as
where(BPQ020 == 1, fillna(BPQ150, 2) == 1, 0)are missing (not 0) for people never asked the screener. Hypertension benchmark (NCHS Data Brief 511) added. - 0.4.0 — Surplus-serum and other file-specific subsample weights with
2Y/4Ysuffixes are detected and pooled; 1999–2000_Afile names resolved;build_dataset(weight=...)and newset_weighttool, both recorded in every result; design columns protected fromderive_variable; missing-aware expression functions; custom age standards; CMV benchmark added. - 0.3.0 — Initial public release.
Limitations
- Public-use files only. Restricted-use data (including the NHANES–CMS Medicare/Medicaid linkage) require an NCHS Research Data Center.
- Variance uses Taylor linearization with PSUs treated as sampled with replacement, as NCHS recommends; replicate weights are not used.
- The server reports what the data support; it does not choose a study design for you.
来源:README.md,提交 d3bbbab
工具
0版本历史
1- v0.5.1最新Oct 5, 2026

