Krankenkasse Copilot
Swiss health insurance 2027: rank every insurer, model and deductible with official BAG data.
Should I use this
Quality & Safety
Findings (3)
- LOWin find_postcode
- LOWin compare_insurance
- LOWin switching_deadlines
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"krankenkasse-copilot": {
"url": "https://krankenkasse-copilot.vercel.app/api/mcp"
}
}
}Remote endpoints
https://krankenkasse-copilot.vercel.app/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
π’find_postcode(postcode)
Look up a Swiss postcode: municipalities, canton and BAG premium region. Use it when a postcode may cover several municipalities.
Input Schema
{
"type": "object",
"properties": {
"postcode": {
"type": "integer",
"minimum": 1000,
"maximum": 9999,
"description": "Swiss 4 digit postcode"
}
},
"required": [
"postcode"
]
}π’compare_insurance(postcode, municipality_bfs, age_group, works_8h_per_week, yearly_health_costs, ...)
Rank every insurer, model and deductible for one person by the full yearly cost for 2027 (premiums plus the bills they pay themselves). Returns the best options, the best deductible, the break-even point, the worst case and the saving against their current insurance.
Input Schema
{
"type": "object",
"properties": {
"postcode": {
"type": "integer",
"minimum": 1000,
"maximum": 9999,
"description": "Swiss 4 digit postcode, e.g. 8001"
},
"municipality_bfs": {
"type": "integer",
"minimum": 0,
"description": "BFS number from find_postcode, only needed if the postcode covers several municipalities"
},
"age_group": {
"type": "string",
"enum": [
"19-25",
"26+"
],
"description": "Age in 2027"
},
"works_8h_per_week": {
"type": "boolean",
"description": "Works at least 8 hours a week for one employer. If true, accident cover is left out because the employer covers it"
},
"yearly_health_costs": {
"type": "number",
"minimum": 0,
"maximum": 200000,
"description": "Expected doctor bills per year in CHF. If missing, estimated from the visit counts below"
},
"gp_visits": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Family doctor visits per year (about CHF 150 each)"
},
"specialist_visits": {
"type": "integer",
"minimum": 0,
"maximum": 200,
"description": "Specialist or therapy sessions per year (about CHF 280 each)"
},
"medication_per_month": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Medication in CHF per month"
},
"model": {
"type": "string",
"enum": [
"standard",
"hausarzt",
"hmo",
"telmed",
"flex"
],
"description": "Only show this insurance model"
},
"franchise": {
"type": "integer",
"description": "Only show this deductible (300, 500, 1000, 1500, 2000 or 2500)"
},
"current_insurer": {
"type": "string",
"description": "Name of the current insurer, e.g. \"Helsana\""
},
"current_monthly_premium": {
"type": "number",
"minimum": 0,
"maximum": 3000,
"description": "What they pay today per month for basic insurance"
},
"current_franchise": {
"type": "integer",
"description": "Their deductible today"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "How many options to return, default 5, best per insurer"
}
},
"required": [
"postcode",
"age_group",
"works_8h_per_week"
]
}π’draft_switch_letter(kind, full_name, street, postcode_town, current_insurer, ...)
Write the German letter to cancel basic insurance (KΓΌndigung) or to change deductible or model with the same insurer. The person prints it, signs it by hand and posts it so it arrives by 30 November. Nothing is stored.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"cancel",
"change"
],
"description": "\"cancel\" to leave the current insurer, \"change\" to stay and change deductible or model"
},
"full_name": {
"type": "string"
},
"street": {
"type": "string"
},
"postcode_town": {
"type": "string",
"description": "e.g. \"8008 ZΓΌrich\""
},
"current_insurer": {
"type": "string"
},
"insurer_address": {
"type": "string"
},
"insurance_number": {
"type": "string"
},
"birth_date": {
"type": "string"
},
"new_franchise": {
"type": "integer",
"description": "Only for kind \"change\""
},
"new_model": {
"type": "string",
"description": "Only for kind \"change\""
}
},
"required": [
"kind",
"full_name",
"street",
"postcode_town",
"current_insurer"
]
}π’switching_deadlines
The dates that matter for changing Krankenkasse, model or deductible for 2027, with days left from today.
Input Schema
{
"type": "object",
"properties": {}
}Community
Evidence