Krankenkasse Copilot
Server Details
Swiss health insurance 2027: rank every insurer, model and deductible with official BAG data.
- Status
- Healthy
- Uptime
- 100.0% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 4 tools
Each tool targets a clearly distinct task: cost comparison, letter drafting, postcode lookup, and deadline lookup. There is no overlap between any two tools, so misselection is essentially impossible.
Three tools follow a clean verb_noun pattern (compare_insurance, draft_switch_letter, find_postcode), but switching_deadlines breaks it as a bare noun phrase. This is a minor deviation that stays readable and does not impede selection.
Four tools is well-scoped for a focused insurance-switching assistant, and each one covers a distinct step of the workflow (compare, decide, act, look up supporting data). Nothing feels redundant or missing from the count itself.
The surface covers the full switching lifecycle: comparing costs, understanding deadlines, drafting the cancellation/change letter, and resolving postcodes. A minor gap exists around retrieving or importing the user's current policy details, but agents can work around this via the comparison tool.
Available Tools
4 toolscompare_insuranceCompare basic insurance 2027ARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many options to return, default 5, best per insurer | |
| model | No | Only show this insurance model | |
| postcode | Yes | Swiss 4 digit postcode, e.g. 8001 | |
| age_group | Yes | Age in 2027 | |
| franchise | No | Only show this deductible (300, 500, 1000, 1500, 2000 or 2500) | |
| gp_visits | No | Family doctor visits per year (about CHF 150 each) | |
| current_insurer | No | Name of the current insurer, e.g. "Helsana" | |
| municipality_bfs | No | BFS number from find_postcode, only needed if the postcode covers several municipalities | |
| current_franchise | No | Their deductible today | |
| specialist_visits | No | Specialist or therapy sessions per year (about CHF 280 each) | |
| works_8h_per_week | Yes | 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 | No | Expected doctor bills per year in CHF. If missing, estimated from the visit counts below | |
| medication_per_month | No | Medication in CHF per month | |
| current_monthly_premium | No | What they pay today per month for basic insurance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that by enumerating the outputs (best options, best deductible, break-even point, worst case, saving) and clarifying the ranking cost basis, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the ranking operation and then list the returned artifacts. Efficient, though the second sentence is a slightly long run-on enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter comparison tool with no output schema, the description usefully covers what the tool ranks and what it returns. It stops short of explaining key parameter dependencies (e.g. that municipality_bfs comes from find_postcode or that visit counts drive cost estimates), but is broadly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters with enums, ranges and examples. The description adds no parameter-level syntax or format detail beyond what is structured, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Rank every insurer, model and deductible for one person') with the exact cost basis ('full yearly cost for 2027 (premiums plus the bills they pay themselves)'). This is precise enough to distinguish it from the sibling tools (a letter drafter, a postcode lookup, a deadlines reference).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'the saving against their current insurance' implies you should supply current_insurer/current_premium for comparison, but there is no explicit when-to-use guidance, no exclusions, and no routing to siblings like switching_deadlines or draft_switch_letter. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_switch_letterDraft switch letterARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | "cancel" to leave the current insurer, "change" to stay and change deductible or model | |
| street | Yes | ||
| full_name | Yes | ||
| new_model | No | Only for kind "change" | |
| birth_date | No | ||
| new_franchise | No | Only for kind "change" | |
| postcode_town | Yes | e.g. "8008 Zürich" | |
| current_insurer | Yes | ||
| insurer_address | No | ||
| insurance_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses genuinely useful behavior: nothing is stored, and the output is a physical letter the user must print, sign and post with a hard deadline. It stops short of describing the letter's format or length, so it is not fully rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose and then the operational workflow. Each sentence carries useful content with little waste, though the deadline detail could arguably live in a dedicated deadline tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and 40% schema coverage, the description covers the workflow and storage behavior but omits guidance on the five optional address/identity parameters. An agent can call it, but not optimally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% across 10 parameters, so the description must compensate and only partially does. It clarifies the kind enum (cancel vs change) and the change-only fields (new_franchise, new_model), but leaves street, postcode_town, insurance_number, insurer_address and birth_date unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Write/draft) and a concrete resource (the German Kündigung letter) and even names the two modes (cancel vs. change deductible/model). It is clearly distinguishable from siblings like compare_insurance or switching_deadlines, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable context (print, sign by hand, post so it arrives by 30 November) but never states when to reach for this tool versus alternatives such as compare_insurance or switching_deadlines. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_postcodeFind postcodeARead-onlyInspect
Look up a Swiss postcode: municipalities, canton and BAG premium region. Use it when a postcode may cover several municipalities.
| Name | Required | Description | Default |
|---|---|---|---|
| postcode | Yes | Swiss 4 digit postcode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by revealing the returned domain fields and implying the result can be plural (several municipalities), which is behavioral context the annotations do not convey. It stops short of describing error behavior for out-of-range or unknown postcodes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads what is looked up and returned, the second states the usage trigger. No filler, no redundancy with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining returns and does so by naming the three returned data categories. For a one-parameter, read-only lookup that is close to complete; only the shape of the response (single object vs list of municipality records) is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single parameter is documented as 'Swiss 4 digit postcode' with min/max bounds. The description adds no format, padding, or edge-case detail (e.g. leading zeros, validity of 1000/9999) beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') and resource ('Swiss postcode') and enumerates what comes back: municipalities, canton, BAG premium region. That is far more informative than the title. It does not, however, explicitly distinguish itself from the sibling tools (compare_insurance, draft_switch_letter, switching_deadlines), relying on the reader to infer it is a data-lookup rather than an insurance workflow tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete triggering condition: 'Use it when a postcode may cover several municipalities,' which tells the agent when this lookup is warranted. It does not name an alternative tool or state when not to use it, but with unrelated siblings there is little to exclude.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switching_deadlinesSwitching deadlinesARead-onlyInspect
The dates that matter for changing Krankenkasse, model or deductible for 2027, with days left from today.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds a genuine behavioral trait beyond that: the output is computed relative to today ('days left from today'), telling the agent the result is time-sensitive rather than a static table.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states scope, subject and return content with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only lookup with no output schema, the description gives enough to call it and anticipate the answer (deadlines plus a countdown). It could note the fixed 2027 horizon as a limitation and say whether results are year-bound, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The calendar-year scope (2027) is stated in the description, which is the only quasi-parameter context available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the dates for changing Krankenkasse, model or deductible for 2027) and what the result contains (days left from today), so an agent knows exactly what this returns. It stops short of a verb and never references the siblings compare_insurance or draft_switch_letter, so differentiation is inferred from the topic rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool to check switch timing before drafting a letter, but there is no explicit when-to-use statement, no prerequisites, and no mention of alternatives. The 2027 scope is the only constraint given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
compare_insurance - First observed
draft_switch_letter - First observed
find_postcode - First observed
switching_deadlines
Related MCP Connectors
Swiss LAMal premium comparison (OFSP 2027), single or household; consented offer requests to SPI.
Swiss supermarket deals at 8 chains and official 2027 health insurance premiums, from EINI.
Official Swiss data for all 26 cantons and 2,100 communes: tax, rent, health premiums, fuel, jobs.
Price all 579 VHIS certified plans in Hong Kong, read filed terms, see premium increases since 2021
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI assistants access to 1.6 million Swiss health insurance premium records from 55 insurers across 11 years (2016-2026), enabling price comparisons, historical analysis, and finding the cheapest insurance options based on location, age, and coverage preferences.2434 npm1MIT
- AlicenseAqualityAmaintenanceEnables natural language queries about Swiss mandatory health insurance coverage for medications and medical devices using official BAG lists.635 PyPIMIT
- FlicenseNot gradedqualityCmaintenanceThe most comprehensive signal intelligence on Swiss businesses — 800K+ companies with people, FINMA/SRO regulatory data, building permits, procurement tenders, and AI-enriched profiles from the official commercial register.-
- FlicenseAqualityDmaintenanceEnables AI assistants to provide authoritative, cited, jurisdiction-correct answers about Switzerland using official federal, cantonal, and municipal sources across multiple languages and topics.13-
Glama MCP Gateway
Add one secure layer between your agents and this server.