amr-climate-atlas-mcp
AMR-Climate Atlas — 气候对抗菌药物耐药性的因果归因
三个项目组成的气候-健康组合中的项目2(参见 ../harvard-dataverse-climate-health-projects.md)。范围界定:../amr-climate-causal-attribution-scoping.md · 构建计划:../amr-climate-causal-attribution-phases.md · 完整报告:docs/paper.md。
状态:所有四个阶段均已完成。 EU/EEA 面板(29个国家,2000–2023年,4种病原体-抗生素组合),一个经过充分测试的因果模型,一个基因组交叉验证,一个实时 Streamlit 应用,一个暴露实时数据源的 MCP 服务器,以及一个自动化评估门控验证流水线。

发现
一个双向(国家+年份)固定效应面板回归,每个结果在允许被称为显著之前,都必须通过强制性的200+次置换安慰剂检验:
组合 | n | 系数 | 参数p值 | 置换p值 |
E. coli / Fluoroquinolones | 642 | +0.11 | 0.77 | 0.62 |
E. coli / 3rd-gen cephalosporins | 642 | +0.21 | 0.54 | 0.31 |
K. pneumoniae / Carbapenems (2010-2022, consumption-adjusted) | 355 | −1.73 | 0.008 | 0.000 |
S. aureus / MRSA | 667 | −0.13 | 0.89 | 0.69 |
4种组合中有3种在任何地方都没有显示出天气效应。 唯一的例外——K. pneumoniae 碳青霉烯耐药性,在 ESAC-Net 消费调整后的2010–2022年子样本中——是真实的(留一国家检验稳定,非COVID驱动),并且方向性得到独立基因组测序数据的确认(NCBI Pathogen Detection/MicroBIGG-E,相同负号,与表型率 r=+0.38 相关),但在完整的2000–2023年面板中并未出现,而且抗生素消费本身在应该控制它的模型中并不显著。解读为:一个真实的、狭窄的、样本窗口特定的模式,而非已确认的气候→AMR因果联系。
这一结果经受住了真正的QA流程——一次独立的测试通过发现了消费调整模型上缺失的置换检验,而随后的稳健性检查发现了一个混杂因素列选择错误,这意味着抗生素消费实际上从未像最初报告的那样进入模型。两者都在 docs/paper.md 中坦率披露,而非掩盖。
Related MCP server: DMAP-AI MCP Server
本仓库内容
app.py Streamlit atlas — combo explorer, causal-test caveat, rankings
mcp_server/ live-data MCP server (NASA POWER + BigQuery, not the frozen CSV)
data/
eu_eea_pilot_panel.csv joined country-year-combo panel (join_panel.py's output)
validation_baseline.json accepted "known good" snapshot for the eval-gate pipeline
raw/ gitignored raw pulls (ECDC, NASA POWER, ESAC-Net, EPI)
validation_runs/ timestamped JSON logs from validate_pipeline.py runs
docs/
phase1_access_check.md access-verification memo
phase3_scoping.md causal-design scoping, grounded in the real pilot data
phase4_scoping.md scale-up fork (WHO GLASS vs. BigQuery vs. deepen EU/EEA) + genomic cross-check
paper.md full write-up: methods, bugs found and fixed, results
src/amr_climate_atlas/
config.py country lists, centroids, DOIs, ECDC/NASA POWER/BigQuery constants
fetch_ears_net.py EARS-Net resistance rates via ECDC Atlas (fully scriptable, see below)
fetch_esac_net.py antibiotic-consumption confounder (static XLSX annexes, 2010-2022)
fetch_weather_anomaly.py daily weather per EU/EEA country centroid (NASA POWER)
fetch_confounders.py EPI 2024 tabular confounder from Harvard Dataverse
join_panel.py joins resistance + weather + EPI into the country-year panel
stage3_identification.py two-way FE model + mandatory permutation test + lag check, per combo
compare_genomic_phenotypic.py genomic (BigQuery) vs. phenotypic (EARS-Net) cross-check
validate_pipeline.py automated eval-gate: rerun + placebo-sanity-check + baseline drift check
.github/workflows/validate.yml ready-to-run CI (fires once this repo is pushed to GitHub)两个值得提前指出的发现
ECDC的Surveillance Atlas导出完全可脚本化,不仅限于手动UI。 导出触发一个简单的参数化GET请求,其
downloadTokenId参数实际上并未在服务器端验证——一旦会话cookie被引导,任何值都有效。fetch_ears_net.py通过两个HTTP请求获取给定病原体-抗生素组合的完整国家×年份网格。Dataverse的API对默认的
python-requestsUser-Agent 返回403——在任何地方都没有文档说明,需要类似浏览器的UA(参见config.DATAVERSE_REQUEST_HEADERS)。
快速开始
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
PYTHONPATH=src python -m amr_climate_atlas.fetch_ears_net # ECDC EARS-Net resistance rates
PYTHONPATH=src python -m amr_climate_atlas.fetch_esac_net # antibiotic consumption confounder
PYTHONPATH=src python -m amr_climate_atlas.fetch_weather_anomaly # NASA POWER, EU/EEA centroids
PYTHONPATH=src python -m amr_climate_atlas.fetch_confounders # EPI 2024 from Dataverse
PYTHONPATH=src python -m amr_climate_atlas.join_panel # join panel
PYTHONPATH=src python -m amr_climate_atlas.stage3_identification # causal model + permutation test
streamlit run app.py # the live atlasMCP服务器——实时数据,不仅仅是冻结的CSV
mcp_server/ 通过模型上下文协议暴露了该项目的两个数据源,因此任何兼容MCP的客户端(Claude Desktop、自定义代理)都可以按需查询实时天气或实时基因组AMR数据,而不仅仅是读取 eu_eea_pilot_panel.csv。基于Anthropic官方的 mcp Python SDK构建(不是早期范围草稿中使用的虚构的“MCP 2.0”/“Agent Plugins”术语——参见 mcp_server/README.md 了解完整的术语更正和一个真实的API漂移发现:大多数教程使用的 FastMCP 类已从当前SDK中移除)。使用真正的外部进程客户端(mcp_server/test_external_client.py)进行了测试,而不仅仅是进程内调用——巴黎的真实天气数据,法国大肠杆菌分离株的真实碳青霉烯基因流行率(16.83%)。参见 mcp_server/README.md 了解设置和一个已记录的命名怪癖(NCBI在其自身模式中将大肠杆菌归为 "E.coli and Shigella",而非 "Escherichia coli")。
自动化评估门控验证
validate_pipeline.py 将 stage3_identification.py 的拟合+置换检验自动化到一个可重新运行的关卡:如果置换检验的零分布看起来退化(对洗牌逻辑静默破坏的真实检查),或者结果与存储的基线有显著偏差,则失败。这旨在自动捕获上述混杂因素错误,而不仅仅是在人类碰巧仔细查看时。一个GitHub Actions工作流(.github/workflows/validate.yml)已准备好,一旦仓库在GitHub上,每次推送都会运行此操作。
延迟/默认不获取
GRDI v1.10(栅格GeoTIFF,932MB)和EnvClim(2.6GB地理包)——网格化/次国家级产品与国家-年份面板不成比例。fetch_confounders.py 打印其文件列表,以便未来的次国家级构建可以决定GIS工具投资是否值得。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceDetects, monitors, and analyzes potential wildfires globally using NASA FIRMS, OpenWeatherMap, and Google Earth Engine data.1
- FlicenseNot gradedqualityCmaintenanceMCP server for DMAP-AI drought monitoring and SPI drought analysis using NASA POWER and ERA5-Land/CDS data.
- AlicenseNot gradedqualityCmaintenanceMCP server for NASA POWER climate data, offering a climatology tool to retrieve long-term monthly averages for any coordinate. Supports natural language queries through the Pipeworx gateway.9MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying and retrieving bacterial and viral genomic data, features, antimicrobial resistance, and epitopes from the BV-BRC API using natural language.MIT
Related MCP Connectors
NASA POWER MCP — Prediction of Worldwide Energy Resources
Search NOAA climate stations and datasets, fetch historical weather observations.
NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rishavbhattarai/amr-climate-atlas'
If you have feedback or need assistance with the MCP directory API, please join our Discord server