amr-climate-atlas-mcp
AMR-Climate Atlas: atribución causal del clima a la resistencia a los antimicrobianos
Proyecto 2 de una cartera de tres proyectos sobre clima y salud (consulta
../harvard-dataverse-climate-health-projects.md).
Alcance: ../amr-climate-causal-attribution-scoping.md ·
Plan de desarrollo: ../amr-climate-causal-attribution-phases.md ·
Documento completo: docs/paper.md.
Estado: las cuatro fases completadas. Panel de la UE/EEE (29 países, 2000–2023, 4 combinaciones patógeno-antibiótico), un modelo causal correctamente probado, una verificación cruzada genómica, una aplicación Streamlit en vivo, un servidor MCP que expone las fuentes de datos en vivo y un pipeline de validación automatizada con compuerta de evaluación.

El hallazgo
Una regresión de panel con efectos fijos bidireccionales (país + año), con una prueba placebo de permutación obligatoria de más de 200 permutaciones sobre cada resultado antes de que se le permita llamarse significativo:
Combinación | n | Coef | p paramétrica | p de permutación |
E. coli / Fluoroquinolonas | 642 | +0.11 | 0.77 | 0.62 |
E. coli / Cefalosporinas de 3.ª generación | 642 | +0.21 | 0.54 | 0.31 |
K. pneumoniae / Carbapenémicos (2010-2022, ajustado por consumo) | 355 | −1.73 | 0.008 | 0.000 |
S. aureus / MRSA | 667 | −0.13 | 0.89 | 0.69 |
3 de las 4 combinaciones no muestran ningún efecto climático en ninguna parte. La única excepción —la resistencia a carbapenémicos de K. pneumoniae, en la submuestra 2010–2022 ajustada por consumo de ESAC-Net— es real (estable al dejar un país fuera, no impulsada por la COVID) y confirmada direccionalmente por datos independientes de secuenciación genómica (NCBI Pathogen Detection/MicroBIGG-E, mismo signo negativo, correlación r=+0,38 con la tasa fenotípica), pero no aparece en el panel completo de 2000–2023, y el propio consumo de antibióticos no es significativo en el modelo que se supone que debe controlarlo. Se interpreta como: un patrón real, acotado y específico de una ventana de muestra, no un vínculo causal confirmado clima→RAM.
Este resultado superó un proceso de control de calidad real: una pasada de pruebas independiente
detectó una prueba de permutación faltante en el modelo ajustado por consumo, y una verificación de
robustez posterior detectó un error de selección de columna de confusores que significaba que el
consumo de antibióticos en realidad nunca estuvo en el modelo como se informó inicialmente. Ambos
se revelan claramente en docs/paper.md en lugar de suavizarse.
Related MCP server: DMAP-AI MCP Server
Qué hay en este repositorio
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)Dos hallazgos que vale la pena señalar de antemano
La exportación del Atlas de Vigilancia del ECDC es totalmente automatizable, no solo mediante interfaz manual. La exportación lanza una petición GET parametrizada simple, y su parámetro
downloadTokenIden realidad no se valida en el servidor — cualquier valor funciona una vez que se inicia una cookie de sesión.fetch_ears_net.pyobtiene la cuadrícula completa país×año para una combinación patógeno-antibiótico determinada en dos peticiones HTTP.La API de Dataverse devuelve un 403 al User-Agent predeterminado de
python-requests— no documentado en ningún sitio, se requiere un agente de usuario similar al de un navegador (consultaconfig.DATAVERSE_REQUEST_HEADERS).
Inicio rápido
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 atlasServidor MCP: datos en vivo, no solo el CSV congelado
mcp_server/ expone dos de las fuentes de datos de este proyecto a través del Model Context
Protocol, de modo que cualquier cliente compatible con MCP (Claude Desktop, un agente personalizado)
pueda consultar datos meteorológicos en vivo o datos genómicos de RAM en vivo bajo demanda, en lugar
de solo leer eu_eea_pilot_panel.csv. Construido sobre el SDK oficial de Python mcp de Anthropic
(no la terminología inventada de "MCP 2.0"/"Agent Plugins" que usó un borrador anterior de este
alcance — consulta mcp_server/README.md para la corrección terminológica completa y un hallazgo
real de deriva de API: la clase FastMCP que usan la mayoría de los tutoriales se ha eliminado del
SDK actual). Probado con un cliente genuino de proceso externo (mcp_server/test_external_client.py),
no solo con una llamada en proceso: datos meteorológicos reales de París, prevalencia real de genes
de carbapenemasas (16,83 %) en aislados franceses de E. coli. Consulta mcp_server/README.md para
la configuración y una peculiaridad de nomenclatura documentada (NCBI agrupa E. coli bajo
"E.coli and Shigella" en su propio esquema, no "Escherichia coli").
Validación automatizada con compuerta de evaluación
validate_pipeline.py automatiza el ajuste y la prueba de permutación de stage3_identification.py
en una compuerta reejecutable: falla si la distribución nula de la prueba de permutación parece
degenerada (una verificación real para detectar que la lógica de barajado se rompa silenciosamente)
o si los resultados se desvían significativamente de una línea base almacenada. Está diseñado para
haber detectado el error de confusores anterior automáticamente, no solo cuando un humano se fijaba
de cerca. Un flujo de trabajo de GitHub Actions (.github/workflows/validate.yml) está listo para
ejecutarlo en cada push, una vez que el repositorio esté en GitHub.
Diferido / no descargado por defecto
GRDI v1.10 (GeoTIFFs ráster, 932 MB) y EnvClim (geopaquete de 2,6 GB): productos de
cuadrícula/subnacionales desproporcionados para un panel de país-año. fetch_confounders.py imprime
sus listados de archivos para que una futura compilación subnacional pueda decidir si vale la pena la
inversión en herramientas SIG.
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