Swiss Health MCP Server
The Swiss Health MCP Server provides AI assistants with structured access to 1.6+ million Swiss health insurance premium records from 55 insurers across 11 years (2016-2026) sourced from the official BAG Priminfo database.
Core Capabilities:
Find cheapest insurers: Get top 5 most affordable options for specific profiles (canton, year, age group, franchise, insurance model)
Compare insurers: Directly compare premiums between multiple insurers (e.g., CSS, Helsana, Swica) for identical profiles
Track price history: View premium trends for specific insurers over time (2016-2026)
Get database statistics: Access metadata including entry counts, available years, and insurer lists
Query Parameters:
26 Swiss cantons (AG, ZH, BE, GE, etc.)
Years: 2016-2026
Age bands: Child (0-18), Young Adult (19-25), Adult (26+)
Franchise levels: 0-2,500 CHF (11 options)
Insurance models: Standard, HMO, Telmed, Family Doctor, Diverse
Use Cases: Personal insurance comparison, market research and analysis, historical premium tracking, data-driven insurance switching decisions, and research on Swiss healthcare costs.
Connects to a Supabase database containing 1.6 million Swiss health insurance premium records from the BAG Priminfo database, providing tools to query and compare premiums across 55 insurers from 2016-2026.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Swiss Health MCP Serverfind the cheapest health insurance in Zurich for a 30-year-old in 2025"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Swiss Health MCP Server
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.
Quick Start
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-mcpThe server is also available on the Smithery registry and the MCP Registry.
Tools
get_cheapest_insurers
Find the top 5 cheapest health insurers for a given profile.
Parameter | Type | Required | Description |
| string | yes | Canton code (e.g. |
| number | yes | Year (2016--2026) |
| string | yes |
|
| number | yes | Deductible: 0, 100, 200, 300, 400, 500, 600, 1000, 1500, 2000, 2500 |
| string | no |
|
| boolean | no | Include accident coverage (default: |
compare_insurers
Side-by-side comparison of specific insurers for the same profile.
Parameter | Type | Required | Description |
| string[] | yes | Insurer names (e.g. |
| string | yes | Canton code |
| number | yes | Year (2016--2026) |
| string | yes | Age group |
| number | yes | Deductible in CHF |
get_price_history
10-year price development for a single insurer with year-over-year percentage change.
Parameter | Type | Required | Description |
| string | yes | Insurer name (e.g. |
| string | yes | Canton code |
| string | yes | Age group |
| number | yes | Deductible in CHF |
| number | no | Start year (default: 2016) |
| number | no | End year (default: 2026) |
get_database_stats
Returns coverage statistics and metadata. No parameters.
Data
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.
Features
Intelligent insurer name resolution -- fuzzy matching across 55+ insurers and their sub-brands. Ask for "Helsana" and the server resolves all associated insurer IDs automatically.
Automatic disclaimer -- every response includes BAG Priminfo attribution and a notice that premiums are informational only.
Read-only access -- no write operations, no personal data.
Percentage change calculations -- price history includes year-over-year trends.
Example Prompts
"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?"Environment Variables
Variable | Required | Description |
| yes | Supabase project URL |
| yes | Supabase service role key for database access |
Tech Stack
Protocol: MCP SDK v1.0.0 (stdio transport)
Language: TypeScript
Database: Supabase (PostgreSQL)
Runtime: Node.js 18+
Package: @prinz_esox/swiss-health-mcp
Registry ID:
io.github.remoprinz/swiss-health-mcp
Development
git 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 TypeScriptProject Structure
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 metadataLicense
MIT -- Remo Prinz
Links
Latest Blog Posts
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/remoprinz/swiss-health-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server