MCP server for Swiss Federal Office of Public Health (BAG) infectious disease surveillance — IDD API
Project description
🏥 bag-health-mcp
Part of the Swiss Public Data MCP Portfolio — connecting AI models to Swiss public data sources.
MCP server for the Swiss Federal Office of Public Health (BAG) Infectious Disease Dashboard (IDD). Access epidemiological surveillance data for 51 pathogens across Switzerland — including influenza, COVID-19, measles, wastewater surveillance, and more.
🎯 What You Can Do
"Wie ist die aktuelle Grippesituation im Kanton Zürich verglichen mit den letzten Wochen?"
→ bag_get_canton_situation(canton="ZH")
"Gibt es aktuell einen Masernausbruch in der Schweiz?"
→ bag_get_disease_data(series_id="measles/cases/incValue/year", canton="all")
"Wie entwickelt sich das SARS-CoV-2-Signal im Abwasser?"
→ bag_list_series(topic="wastewater_viral_load")
→ bag_get_disease_data(series_id="wastewater_viral_load/NA/value/date", ...)
"Welche Krankheitsdaten stellt das BAG aktuell bereit?"
→ bag_list_diseases()
🔧 Tools
| Tool | Description |
|---|---|
bag_list_diseases |
List all 51 disease topics, grouped by category |
bag_list_series |
List data series for a specific disease |
bag_get_series_details |
Get available filter dimensions (canton, age, sex) |
bag_get_disease_data |
Fetch time-series surveillance data |
bag_get_canton_situation |
Situational overview for a canton (Schulamt use case) |
bag_list_export_files |
List available complete export datasets |
bag_download_export |
Download raw CSV/JSON export |
bag_get_data_version |
Current data version (updated every Wednesday) |
🏫 Relevance for Schools & City Administration
Schulamt / Kreisschulbehörden:
- Monitor influenza and ARI incidence in your canton
- Single measles case → alert for schools with low vaccination coverage
- Pertussis tracking → protect unvaccinated infants (siblings of school children)
Stadtverwaltung / KI-Fachgruppe:
- Public Health Reporting with structured weekly data
- Wastewater surveillance as 1-week lead indicator before clinical cases
Synergy with portfolio:
bag-epl-mcp→ "What treatments are listed?" (EPL medication database)bag-health-mcp→ "What is currently spreading?" (surveillance data)
📡 Data Source
- IDD API:
https://api.idd.bag.admin.ch— No authentication required - Update cycle: Every Wednesday
- Coverage: Switzerland + Liechtenstein (FL), 26 cantons
- Topics: 51 pathogens, 1386 data series
Architecture:
┌─────────────────┐
MCP Host │ bag-health-mcp │
(Claude, etc.) ──▶│ MCP SDK │──▶ api.idd.bag.admin.ch
│ 8 Tools │ (IDD API, no auth)
└─────────────────┘
🚀 Installation
Claude Desktop (stdio)
{
"mcpServers": {
"bag-health": {
"command": "uvx",
"args": ["bag-health-mcp"]
}
}
}
Cloud / HTTP
pip install bag-health-mcp
python -m bag_health_mcp.server --http --port 8000
🗂️ Available Disease Topics
| Category | Topics |
|---|---|
| Respiratory | influenza, covid19, acute_respiratory_infection, respiratory_pathogens |
| Enteric | campylobacteriosis, salmonellosis, ehec, listeriosis, hepatitis_a/e |
| STI & Bloodborne | hiv, aids, syphilis, gonorrhea, hepatitis_b/c, chlamydiosis |
| Vaccine-preventable | measles, pertussis, rubella, tetanus, diphtheria, ipd, meningo |
| Vector-borne | lyme_borreliosis, tick-borne_encephalitis, dengue, malaria, zika |
| Wastewater | wastewater_viral_load, wastewater_sequencing |
⚠️ Known Limitations
- Beta API: IDD API is labelled
v0.1 beta— schema may change without notice - Weekly cadence: Data is not real-time; updated Wednesdays only
- Canton granularity: Some rare diseases have insufficient cases for canton-level data (suppressed for privacy)
- Age groups: Available dimensions vary by disease series; use
bag_get_series_detailsto check
📄 License
MIT — Data from BAG IDD is public domain (opendata.swiss).
🔗 Related Portfolio Servers
swiss-statistics-mcp— BFS demographic databag-epl-mcp— BAG medication reimbursement listzurich-opendata-mcp— City of Zurich open data
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bag_health_mcp-0.1.0.tar.gz.
File metadata
- Download URL: bag_health_mcp-0.1.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
273ad657e766f0fce01687ade2151be22d2336964c71dc4a1ec5b140916db299
|
|
| MD5 |
1405bb4586f9da63fae3c46838095cb4
|
|
| BLAKE2b-256 |
285e4619787a6c5ceb8a1ced0dcbcb13200a14ef273edddcf1976c6d21fc2e0e
|
Provenance
The following attestation bundles were made for bag_health_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on malkreide/bag-health-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bag_health_mcp-0.1.0.tar.gz -
Subject digest:
273ad657e766f0fce01687ade2151be22d2336964c71dc4a1ec5b140916db299 - Sigstore transparency entry: 1205861073
- Sigstore integration time:
-
Permalink:
malkreide/bag-health-mcp@2c7fffa288d44d6ff4daf4dde1fee68e8aab4e3e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/malkreide
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2c7fffa288d44d6ff4daf4dde1fee68e8aab4e3e -
Trigger Event:
release
-
Statement type:
File details
Details for the file bag_health_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bag_health_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adf7ec1de146a74c7df13fcd588b0385486baf652abf2f5e3dc1e60299f11d89
|
|
| MD5 |
d6a232a1b4c081a3305666e4863ac8cd
|
|
| BLAKE2b-256 |
eeb0eb337e38b5d9b2d7d757ee5ac8294e309ead727601314e8872aa01a13264
|
Provenance
The following attestation bundles were made for bag_health_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on malkreide/bag-health-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bag_health_mcp-0.1.0-py3-none-any.whl -
Subject digest:
adf7ec1de146a74c7df13fcd588b0385486baf652abf2f5e3dc1e60299f11d89 - Sigstore transparency entry: 1205861102
- Sigstore integration time:
-
Permalink:
malkreide/bag-health-mcp@2c7fffa288d44d6ff4daf4dde1fee68e8aab4e3e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/malkreide
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2c7fffa288d44d6ff4daf4dde1fee68e8aab4e3e -
Trigger Event:
release
-
Statement type: