Skip to main content
Glama

Zorgverzekering.chat: Dutch health insurance

Calculate annual healthcare costs

bereken_jaarkosten
Read-onlyIdempotent

Calculates the expected total annual costs for a household scenario: basic and supplementary premiums, collective discount (collectiviteitskorting, supplementary only), expected deductible (eigen risico), statutory co-payments (eigen bijdragen) and care costs that are not reimbursed, per person and in total, with all assumptions (aannames) and warnings such as provisional premiums. Input is a Scenario: insurance year, 1 to 8 persons with year of birth, chosen policy ids, voluntary deductible and, only if the user volunteers it, planned care per taxonomy category with counts (verwachtGebruik, optional). Do not ask about health; never put diagnoses, medicines or free text in the scenario; get_intake_schema lists the questions and allowed categories. Children under 18 pay no basic premium and no deductible. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "jaar": "<jaar>",
      "personen": "<personen>"
    },
    "name": "bereken_jaarkosten"
  }
}

Input Schema

NameRequiredDescriptionDefault
jaarYesInsurance year (verzekeringsjaar), e.g. 2027.
taalNoResponse language: nl (default) or en.nl
termijnNoPremium payment term (betaaltermijn).maand
personenYes1 to 8 persons in the household, each with a unique id.
collectiefIdNoCollective contract (collectiviteit) id, if any; discounts apply to supplementary only.

Output Schema

NameRequiredDescriptionDefault
dataYes
metaYes
actiesYes
bronnenYes
aannamesYes
samenvattingYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read, so the description doesn't need to re-state that. It does add real behaviour the annotations can't: the response includes assumptions (aannames) and warnings such as provisional premiums, children under 18 pay no basic premium or deductible, and the tool frames itself as information rather than advice. It doesn't say anything about computational cost or what a partial/invalid policy id yields, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and outputs are front-loaded in the first sentence and every clause carries information; there is no filler. It is admittedly dense — one very long sentence followed by a second — so an agent has to parse a lot, but nothing is genuinely wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return shape needn't be explained, and the description covers the input contract, safety framing and the no-health-data rule well. The one gap is how this tool relates operationally to get_polis / zoek_basisverzekeringen (where the required policy ids come from), which an agent must infer from the sibling list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description still earns more: it constrains the scenario to 1–8 persons with year of birth and chosen policy ids, notes that collectiviteitskorting applies to supplementary only, and states that verwachtGebruik is optional and must never contain diagnoses, medicines or free text. That adds decision-relevant meaning beyond the field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb (calculates) and enumerates exactly which cost components are produced — basic/supplementary premiums, collectiviteitskorting, eigen risico, eigen bijdragen, non-reimbursed care — per person and in total. That scope distinguishes it from the comparison siblings like vergelijk_polissen and vergelijk_jaren, which don't produce an itemised annual total.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditional guidance for the optional care-usage input ('only if the user volunteers it'), a hard exclusion ('Do not ask about health'), and routes the agent to get_intake_schema for the allowed questions and categories. What's missing is any statement of when to prefer this tool over vergelijk_jaren or vergelijk_polissen, so the sibling choice is still left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.