Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"bag-health": {
"args": [
"bag-health-mcp"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Part of the Swiss Public Data MCP Portfolio — connecting AI models to Swiss public data sources.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'bag-health-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked bag-health-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in analytics
⚡ A Simple / Speedy / Secure Link Shortener with Analytics, 100% run on Cloudflare.
MCP Server for GCP environment for interacting with various Observability APIs.
MCP server that enables AI agents to perform comprehensive web audits using Google Lighthouse with 13+ tools for performance, accessibility, SEO, and security analysis.
Agent payments ecosystem intelligence. Scans GitHub/HN/npm across AP2, ACP, x402, MPP, UCP.
MCP Security Weekly
Get CVE alerts and security updates for io.github.malkreide/bag-health-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
"Wie ist die aktuelle Grippesituation im Kanton Zürich verglichen mit den letzten Wochen?"
→ bag_health_mcp__get_canton_situation(canton="ZH")
"Gibt es aktuell einen Masernausbruch in der Schweiz?"
→ bag_health_mcp__get_disease_data(series_id="measles/cases/incValue/year", canton="all")
"Wie entwickelt sich das SARS-CoV-2-Signal im Abwasser?"
→ bag_health_mcp__list_series(topic="wastewater_viral_load")
→ bag_health_mcp__get_disease_data(series_id="wastewater_viral_load/NA/value/date", ...)
"Welche Krankheitsdaten stellt das BAG aktuell bereit?"
→ bag_health_mcp__list_diseases()
→ More use cases by audience →
| Tool | Description |
|---|---|
bag_health_mcp__list_diseases | List all 51 disease topics, grouped by category |
bag_health_mcp__list_series | List data series for a specific disease |
bag_health_mcp__get_series_details | Get available filter dimensions (canton, age, sex) |
bag_health_mcp__get_disease_data | Fetch time-series surveillance data |
bag_health_mcp__get_canton_situation | Situational overview for a canton (Schulamt use case) |
bag_health_mcp__list_export_files | List available complete export datasets |
bag_health_mcp__download_export | Download raw CSV/JSON export |
bag_health_mcp__get_data_version | Current data version (updated every Wednesday) |
All tools carry MCP tool annotations so a host can reason about them without calling. Every tool is identical here — it only ever reads from the public BAG IDD API:
| Annotation | Value | Meaning |
|---|---|---|
readOnlyHint | true | No tool mutates any state. |
destructiveHint | false | No destructive side effects. |
idempotentHint | true | Repeating a call has no additional effect. |
openWorldHint | true | Tools reach an external system (the IDD API). |
A host may therefore treat all calls as safe, cacheable reads. The values are
declared once as READ_ONLY in server.py and applied to all 8 tools.
This server uses all three MCP primitives, each for what it is best at:
Tools (8) — live, parameterised actions that call the IDD API (above).
Resources — static, read-only reference data a host can fetch and cache, no arguments or upstream call needed:
| Resource URI | Description |
|---|---|
bag://reference/cantons | Canton codes accepted by the tools (incl. FL, all) |
bag://reference/disease-categories | Disease-topic taxonomy by category |
bag://reference/data-licence | Source, attribution and licence terms |
Prompts — reusable, parameterised workflows a host can surface (e.g. as slash-commands):
| Prompt | Arguments | Purpose |
|---|---|---|
canton_situation_brief | canton | Draft a Schulamt public-health situation brief |
outbreak_check | disease, canton | Check whether a disease is currently elevated |
Live surveillance data stays behind Tools (it is parameterised and changes weekly); fixed referenc