Connects Claude to 1.6 million Swiss health insurance premium records from the Federal Office of Public Health (BAG), covering 55 insurers across all 26 cantons from 2016 to 2026. Exposes four tools: get_cheapest_insurers returns the top 5 options for a given canton, year, age band, and deductible; compare_insurers does side-by-side comparisons; get_price_history shows 10-year trends with percentage changes; get_database_stats returns coverage metadata. Runs on Supabase with fuzzy insurer name matching built in. Useful if you're building Swiss healthcare tools or need to answer premium questions without maintaining your own BAG data pipeline. Read-only, includes automatic BAG attribution disclaimers on every response.
An MCP server that gives AI assistants structured access to 1.6 million Swiss health insurance premium records -- 55 insurers, 26 cantons, 11 years of official government data.
Built on the Model Context Protocol. Data sourced from BAG Priminfo (Swiss Federal Office of Public Health, 2016--2026). This is the MCP companion to the KrankenkassenGPT REST API.
Add this to your Claude Desktop config (claude_desktop_config.json) or Cursor settings (.cursor/mcp.json):
{
"mcpServers": {
"swiss-health": {
"command": "npx",
"args": ["-y", "@prinz_esox/swiss-health-mcp"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key"
}
}
}
}
Or install globally:
npm install -g @prinz_esox/swiss-health-mcp
The server is also available on the Smithery registry and the MCP Registry.
get_cheapest_insurersFind the top 5 cheapest health insurers for a given profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
canton | string | yes | Canton code (e.g. ZH, BE, GE) |
year | number | yes | Year (2016--2026) |
age_band | string | yes | child (0--18), young_adult (19--25), adult (26+) |
franchise_chf | number | yes | Deductible: 0, 100, 200, 300, 400, 500, 600, 1000, 1500, 2000, 2500 |
model_type | string | no | standard (default), hmo, telmed, family_doctor, diverse |
accident_covered | boolean | no | Include accident coverage (default: true) |
compare_insurersSide-by-side comparison of specific insurers for the same profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
insurer_names | string[] | yes | Insurer names (e.g. ["CSS", "Helsana", "Swica"]) |
canton | string | yes | Canton code |
year | number | yes | Year (2016--2026) |
age_band | string | yes | Age group |
franchise_chf | number | yes | Deductible in CHF |
get_price_history10-year price development for a single insurer with year-over-year percentage change.
| Parameter | Type | Required | Description |
|---|---|---|---|
insurer_name | string | yes | Insurer name (e.g. CSS, Helsana) |
canton | string | yes | Canton code |
age_band | string | yes | Age group |
franchise_chf | number | yes | Deductible in CHF |
start_year | number | no | Start year (default: 2016) |
end_year | number | no | End year (default: 2026) |
get_database_statsReturns coverage statistics and metadata. No parameters.
| Dimension | Coverage |
|---|---|
| Records | 1,611,386+ |
| Insurers | 55 (CSS, Helsana, Swica, Assura, KPT, Groupe Mutuel, Sanitas, ...) |
| Cantons | 26 (all Swiss cantons) |
| Years | 11 (2016--2026) |
| Franchise levels | 11 (CHF 0--2,500) |
| Insurance models | 5 (standard, HMO, telmed, family doctor, diverse) |
| Age bands | 3 (child, young adult, adult) |
All data comes from BAG Priminfo, the official database of the Swiss Federal Office of Public Health.
"What are the cheapest health insurers in Zurich for 2026?"
"Compare CSS, Helsana and Swica in Bern for an adult with CHF 300 deductible"
"How did Assura premiums develop from 2016 to 2026?"
"Which insurer had the smallest price increase over the last 10 years in Basel?"
| Variable | Required | Description |
|---|---|---|
SUPABASE_URL | yes | Supabase project URL |
SUPABASE_SERVICE_ROLE_KEY | yes | Supabase service role key for database access |
io.github.remoprinz/swiss-health-mcpgit clone https://github.com/remoprinz/swiss-health-mcp.git
cd swiss-health-mcp
npm install
npm run dev # Start with tsx
npm run build # Compile TypeScript
src/index.ts # Complete server implementation (~530 lines)
server.json # MCP registry manifest
smithery.yaml # Smithery registry config
llms.txt # LLM-readable project description
CITATION.cff # Citation metadata
MIT -- Remo Prinz
SUPABASE_URL*Supabase Project URL (e.g. https://xxx.supabase.co)
SUPABASE_SERVICE_ROLE_KEY*secretSupabase Service Role Key for database access