Back to Browse

Swiss Health MCP Server

Developer ToolsLow Risk8.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

Swiss health insurance premiums (Krankenkassen-Prämien) 2016-2026. 1.6M records from BAG.

About

Swiss health insurance premiums (Krankenkassen-Prämien) 2016-2026. 1.6M records from BAG.

Security Report

8.0
Low Risk8.0Low Risk

Valid MCP server (2 strong, 4 medium validity signals). 2 known CVEs in dependencies (0 critical, 2 high severity) Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

3 files analyzed · 3 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Supabase Project URL (e.g. https://xxx.supabase.co)Optional

Environment variable: SUPABASE_URL

Supabase Service Role Key for database accessRequired

Environment variable: SUPABASE_SERVICE_ROLE_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-remoprinz-swiss-health-mcp": {
      "env": {
        "SUPABASE_URL": "your-supabase-url-here",
        "SUPABASE_SERVICE_ROLE_KEY": "your-supabase-service-role-key-here"
      },
      "args": [
        "-y",
        "@prinz_esox/swiss-health-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Swiss Health MCP Server

npm version License: MIT

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-mcp

The 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.

ParameterTypeRequiredDescription
cantonstringyesCanton code (e.g. ZH, BE, GE)
yearnumberyesYear (2016--2026)
age_bandstringyeschild (0--18), young_adult (19--25), adult (26+)
franchise_chfnumberyesDeductible: 0, 100, 200, 300, 400, 500, 600, 1000, 1500, 2000, 2500
model_typestringnostandard (default), hmo, telmed, family_doctor, diverse
accident_coveredbooleannoInclude accident coverage (default: true)

compare_insurers

Side-by-side comparison of specific insurers for the same profile.

ParameterTypeRequiredDescription
insurer_namesstring[]yesInsurer names (e.g. ["CSS", "Helsana", "Swica"])
cantonstringyesCanton code
yearnumberyesYear (2016--2026)
age_bandstringyesAge group
franchise_chfnumberyesDeductible in CHF

get_price_history

10-year price development for a single insurer with year-over-year percentage change.

ParameterTypeRequiredDescription
insurer_namestringyesInsurer name (e.g. CSS, Helsana)
cantonstringyesCanton code
age_bandstringyesAge group
franchise_chfnumberyesDeductible in CHF
start_yearnumbernoStart year (default: 2016)
end_yearnumbernoEnd year (default: 2026)

get_database_stats

Returns coverage statistics and metadata. No parameters.

Data

DimensionCoverage
Records1,611,386+
Insurers55 (CSS, Helsana, Swica, Assura, KPT, Groupe Mutuel, Sanitas, ...)
Cantons26 (all Swiss cantons)
Years11 (2016--2026)
Franchise levels11 (CHF 0--2,500)
Insurance models5 (standard, HMO, telmed, family doctor, diverse)
Age bands3 (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

VariableRequiredDescription
SUPABASE_URLyesSupabase project URL
SUPABASE_SERVICE_ROLE_KEYyesSupabase 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 TypeScript

Project 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 metadata

License

MIT -- Remo Prinz

Links

Reviews

No reviews yet

Be the first to review this server!