Zorgverzekering.chat: Dutch health insurance
Server Details
Dutch health insurance (zorgverzekering): premiums, coverage, providers, yearly cost. Not advice.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 12 tools
Each tool has a clearly distinct role: searching vs. retrieving vs. comparing policies, searching vs. checking providers, calculating costs, fetching legal parameters, and quoting sources. The detailed descriptions explicitly constrain inputs and use cases, reducing overlap. Parallel tools such as zoek_basisverzekeringen and zoek_aanvullende_pakketten are clearly separated by product type.
All tool names follow a consistent Dutch verb_noun pattern: bereken_, check_, get_, list_, vergelijk_, and zoek_ followed by a clear domain object. There is no mixing of camelCase or vague action names. The convention is predictable across the entire set.
Twelve tools is well within the appropriate range and each appears to earn its place in the health-insurance information workflow. The set covers search, detail retrieval, comparison, provider checks, cost calculation, legal parameters, intake, and source citation without obvious redundancy.
The surface covers the core informational lifecycle: insurer discovery, policy search/detail/comparison, year-over-year changes, provider search/contract checks, cost calculation, statutory parameters, and source quotations. Minor gaps exist, such as no standalone tool for browsing taxonomy categories or care types, but the intake schema and tool descriptions largely compensate.
Available Tools
12 toolsbereken_jaarkostenCalculate annual healthcare costsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. | |
| taal | No | Response language: nl (default) or en. | nl |
| termijn | No | Premium payment term (betaaltermijn). | maand |
| personen | Yes | 1 to 8 persons in the household, each with a unique id. | |
| collectiefId | No | Collective contract (collectiviteit) id, if any; discounts apply to supplementary only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
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.
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.
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.
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.
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.
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.
check_zorgaanbiederCheck care provider contract statusARead-onlyIdempotentInspect
Checks per basic policy whether a care provider (zorgaanbieder, by AGB code) has a contract with the insurer (gecontracteerd) for a care type (zorgsoort), and which percentage of the costs is reimbursed without a contract. Each result states its origin (herkomst: insurer publication, the insurer's provider search (zorgzoeker), or cache) and the date it was retrieved. If herkomst is null the dataset has no contract information for that policy (status onbekend); calling again does not change that. Contracts can change during the year, so suggest the user confirms with the insurer. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| agbCode | Yes | AGB code (8 digits) of the care provider, from zoek_zorgaanbieder. | |
| polisIds | Yes | Basic policy ids (polisId) to check, e.g. from zoek_basisverzekeringen. | |
| zorgsoort | Yes | Type of care (zorgsoort), lowercase key such as 'ziekenhuis' (hospital), 'kliniek', 'ggz' (mental healthcare), 'fysio', 'wijkverpleging', 'apotheek'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (already declaring readOnly, idempotent, non-destructive), it discloses result provenance via herkomst (insurer publication, zorgzoeker, cache) plus retrieval dates, and warns contracts can change during the year so the user should confirm with the insurer. It also frames the output as informational, not advice, and clarifies that a null herkomst means no contract data exists rather than a transient failure.
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?
The core capability is front-loaded in the first sentence, with provenance and the null-herkomst caveat following logically. It is slightly long, and the closing 'information, not advice' sentence is tangential to invocation, though it does clarify the tool's role.
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 read-only lookup tool with a full output schema, the description covers what is needed: inputs' provenance, what a result contains (herkomst and date), what null means, and the staleness caveat. Nothing essential for correct invocation 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?
Schema description coverage is 100%, so the schema already documents agbCode, polisIds, zorgsoort, jaar and taal. The description only restates the meaning of a few of these (AGB code, per basic policy, zorgsoort) without adding format, defaults, or edge-case guidance beyond what the schema provides.
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 verb and resource: it checks per basic policy whether an AGB-coded care provider is contracted for a zorgsoort, and reports the reimbursement percentage without a contract. This is clearly distinct from the sibling zoek_zorgaanbieder, which the description implicitly references as the source of the AGB code.
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 clear usage context: it points to zoek_zorgaanbieder and zoek_basisverzekeringen as sources for the inputs, and warns that if herkomst is null the dataset has no contract information (status onbekend) and re-calling will not change that. It lacks an explicit 'use this instead of X' exclusion relative to sibling tools, but the workflow and the anti-retry rule are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bronQuote a source passageARead-onlyIdempotentInspect
Returns a short passage (at most 500 characters, in Dutch) from an official source document (bron), such as an insurer's policy conditions (modelovereenkomst), coverage overview (vergoedingenwijzer), premium overview or a government publication, with its URL, version and date. Use a bronId and anchor (page or section) from the bronnen of another tool response to quote and cite the exact wording. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| anchor | No | Page or section within the source, e.g. 'p.14', from bronnen[].anchor. | |
| bronId | Yes | Source id (bronId) from the bronnen list of another tool response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description still adds real behavior: a hard 500-character cap on the returned passage, the response language default, and the fact that URL, version and date accompany the quote. What it does not disclose is what happens when the bronId or anchor is unknown or the passage exceeds the cap (truncation? error?), which is the main behavioral unknown for a lookup tool.
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 sentences, front-loaded with the resource, size cap and language, then the provenance instruction, then the informational-not-advice framing. Little waste, though the closing disclaimer is longer than it needs to be for the operational guidance it conveys.
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 an output schema present, the description needn't describe the return shape, and the annotations cover the safety profile, so the remaining burden is modest. It discharges that burden well by specifying the character cap, quoting language and provenance of identifiers. Only error conditions and the taal-vs-'in Dutch' interaction are left unaddressed.
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 each parameter is already documented, including the anchor example 'p.14' and the taal enum. The description's only added semantic is that bronId and anchor come from another tool's bronnen list, which closely restates the schema text for bronId. It also says the passage is 'in Dutch' while the schema exposes an en option, a small imprecision that could confuse an agent about whether taal actually changes the output.
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 pairs a specific verb with a specific resource: it returns a short quoted passage (capped at 500 characters) from an official source document, and enumerates the document types (modelovereenkomst, vergoedingenwijzer, premium overview, government publication). It also states what accompanies the quote (URL, version, date). It never names a sibling such as get_polis or get_wettelijke_parameters, so the boundary with those tools is left to inference.
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?
It gives a clear triggering condition: quote and cite exact wording, using a bronId and anchor taken from the bronnen list of another tool response. That establishes the upstream workflow step precisely. It stops short of an explicit when-not or a named alternative for retrieving whole documents rather than a passage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_intake_schemaGet intake questionsARead-onlyIdempotentInspect
Returns the ordered intake questionnaire for building a Scenario for bereken_jaarkosten: insurance year, persons with year of birth, optional planned care as categories and counts (only if the user offers it; no diagnoses), care providers to keep, preference for choice of providers, voluntary deductible (vrijwillig eigen risico), collective contract (collectiviteit), payment term and current policy. Each question lists its allowed values and the Scenario field it maps to. Ask only what is needed, in this order. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses meaningful behavior: questions are ordered, each carries allowed values and its mapped Scenario field, and the tool deliberately 'provides information, not advice' with the user signing up with the insurer themselves. That is a substantive scope/liability constraint an agent could not infer from annotations, though nothing is said about the size or format of the returned list.
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?
The response shape is front-loaded in the first clause and the operating rules follow in short imperatives. The long mid-sentence enumeration of intake topics is dense but each item is load-bearing for planning the conversation, so little could be cut without loss.
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?
An output schema exists, so return values need no explanation, and the safety profile is fully covered by annotations. The description supplies the domain fields, ordering rule and the advice disclaimer, leaving only minor gaps such as whether the questions are re-requestable or stateful across calls.
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 single parameter 'taal' has 100% schema description coverage with its enum and default documented, so the schema already does the work. The description never references language at all, adding no meaning beyond the structured field, making baseline 3 correct.
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 ('Returns the ordered intake questionnaire') and ties it explicitly to its downstream consumer, 'building a Scenario for bereken_jaarkosten'. The enumeration of what the questionnaire covers (insurance year, persons, deductible, collectiviteit, payment term) makes it unmistakable against siblings like bereken_jaarkosten or get_polis.
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 concrete operating guidance: 'Ask only what is needed, in this order', and restricts planned care questions to cases where 'the user offers it', explicitly excluding diagnoses. It implies the follow-up (berecken_jaarkosten scenario building) rather than naming when not to use this tool, so it stops just short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_polisGet policy detailsARead-onlyIdempotentInspect
Returns the full record of one basic policy (basisverzekering) or one supplementary or dental package (aanvullende verzekering, tandartsverzekering): premiums per deductible level or age band, reimbursement of non-contracted care, coverage per taxonomy category (dekkingen: maximum amount, percentage, number of treatments, period; a line with variant true is an extra line under its category, with the insurer's own name in rubriek, and does not count in calculations or comparisons), waiting period (wachttijd), acceptance rules (acceptatie), gesloten (true: package no longer available to new customers; existing policyholders keep it), a summary in the requested language and a source id per field that get_bron can quote. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| polisId | Yes | Policy id (polisId) of a basic policy or supplementary package, e.g. '2027-vgz-natura', as returned by the search tools. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description does add real domain behavior beyond them: variant=true lines sit under a category but must be excluded from calculations/comparisons, gesloten=true means closed to new customers while existing policyholders retain it, and it sets a scope boundary ('information, not advice'). That is solid added value, though nothing is said about error behavior for unknown or unavailable polisIds.
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?
It is front-loaded with the core action and contains no filler, but the body is one long run-on sentence with a deeply nested parenthetical on dekkingen/variant that is hard to parse on first read. A short bulleted breakdown of the returned components would preserve the content with far less cognitive load.
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 rich single-record read tool with an output schema, an annotated safety profile, and fully described parameters, this is complete: it explains the meaning of non-obvious flags (variant, gesloten), states the source-id/get_bron linkage, and sets scope expectations. An agent has everything needed to call it correctly.
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 100%, so both polisId and taal are already documented with format, example, and enum. The description adds only indirect meaning — that the summary comes back 'in the requested language' — without new syntax or constraints, 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?
Names a specific verb and resource ('Returns the full record of one basic policy ... or one supplementary or dental package') and enumerates the returned components: premiums per deductible/age band, non-contracted care reimbursement, dekkingen, wachttijd, acceptatie, gesloten, summary, and per-field source id. An agent can immediately separate this single-record detail lookup from the zoek_*/vergelijk_* siblings.
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 implied rather than stated: the singular record plus the note that each field carries a source id 'that get_bron can quote' signals a follow-up lookup role and a cross-tool workflow. However, the description never says to obtain polisId from zoek_basisverzekeringen/zoek_aanvullende_pakketten first (that hint lives only in the schema), nor when to prefer this over vergelijk_polissen or bereken_jaarkosten.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wettelijke_parametersStatutory health insurance parametersARead-onlyIdempotentInspect
Returns the statutory Dutch health insurance parameters (wettelijke parameters) for an insurance year: the mandatory deductible (verplicht eigen risico), the voluntary deductible options (vrijwillig eigen risico), care exempt from the deductible, the healthcare allowance (zorgtoeslag) maximums and income and asset limits, statutory co-payments (eigen bijdragen), the premium publication date and the switching deadline (overstapdeadline). status 'voorlopig' means provisional until parliament has voted. Use this tool instead of your own knowledge for any of these amounts. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, non-destructive, closed-world lookup. The description adds useful behavioral context beyond those annotations: it explains the meaning of provisional status and the scope boundary that this provides information rather than advice. It does not describe error handling or freshness guarantees, but the remaining gap is minor given the strong annotation coverage.
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?
The description is front-loaded with the core purpose and then lists the returned parameter categories in a dense but useful way. Every sentence contributes relevant scope or usage guidance. It is somewhat long, but the length is justified by the number of distinct statutory parameters covered.
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?
Given that there is an output schema and rich annotations, the description need not explain return formatting. It still provides a complete picture of what is returned, the meaning of provisional status, and the information-not-advice boundary. Nothing an agent needs in order to call this lookup correctly appears to be 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?
Schema description coverage is 100%, and the schema already explains that 'jaar' is the insurance year and that users often mean the coming year during switching season, as well as the 'taal' enum. The description reinforces that results are for an insurance year but adds little parameter-specific meaning beyond what the schema already provides. A baseline 3 is appropriate when the schema does the heavy lifting.
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 uses a specific verb and resource: it returns statutory Dutch health insurance parameters for an insurance year. It enumerates the exact contents, including deductible amounts, care exempt from deductible, zorgtoeslag limits, co-payments, premium publication date, and switching deadline, so the agent can confidently distinguish this from calculation and comparison siblings.
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?
It explicitly says to use this tool instead of the model's own knowledge for these amounts, which is a strong usage instruction. It also explains that status 'voorlopig' means provisional until parliament has voted. It does not name alternative sibling tools or state when not to use it, so it falls short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_verzekeraarsList health insurersARead-onlyIdempotentInspect
Lists all Dutch health insurers (verzekeraars) for an insurance year with their insurer group (concern), the policy types they offer (natura, restitutie, combinatie, budget), the number of basic policies and supplementary packages, and customer ratings with their source. Use it to resolve an insurer name to a verzekeraarId for the other tools. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds real context beyond that: the 'provides information, not advice' disclaimer and the note that the user signs up with the insurer themselves, which shapes how the agent should present results. It does not discuss result volume or whether the list is exhaustive per year, which is the only remaining gap.
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 sentences, no filler: the first defines the payload, the second states the routing use, the third sets the advisory boundary. The most actionable information (what you get, why you'd call it) is front-loaded before the disclaimer.
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 two-parameter read-only list tool with a full output schema and complete annotations, this description covers everything an agent needs: what is returned, the year scoping, and the intended downstream use of verzekeraarId. No explanation of return values is required because an output schema exists.
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 100% and the `jaar` parameter already documents the switching-season interpretation, so the schema carries the parameter burden. The description only implies year-scoping ('for an insurance year') and adds nothing about `taal` or output language selection. Baseline 3 is appropriate when the schema is this complete.
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?
Opens with a specific verb and resource ('Lists all Dutch health insurers') and then enumerates exactly what each record carries: insurer group (concern), policy types (natura, restitutie, combinatie, budget), counts of basic policies and supplementary packages, and ratings with source. This is far more specific than the sibling tools zoek_basisverzekeringen or vergelijk_polissen, so an agent can distinguish them without reading schemas.
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?
Explicitly states the primary use case: 'resolve an insurer name to a verzekeraarId for the other tools', which is exactly the routing information an agent needs to pick this tool before the insurer-specific siblings. It does not, however, name when NOT to use it or contrast it directly with zoek_basisverzekeringen/vergelijk_polissen, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vergelijk_jarenCompare a policy across yearsARead-onlyIdempotentInspect
Shows what changed in a policy between two insurance years (jaargangen), for example 2026 and 2027: premium, coverage per category, reimbursement of non-contracted care and conditions. Useful in the switching season (overstapseizoen) to explain why a policy became more expensive or lost coverage. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| jaarA | Yes | Earlier insurance year, e.g. 2026. | |
| jaarB | Yes | Later insurance year, e.g. 2027. | |
| polisId | Yes | Policy id (polisId) of a basic policy or supplementary package, e.g. '2027-vgz-natura', as returned by the search tools. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds the 'information, not advice' stance and the scope of compared data, which is useful framing for how results should be surfaced. It says nothing about result size, missing-year handling, or errors, so it remains a modest addition.
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 short sentences, front-loaded with the core comparison and its dimensions, then context, then the advisory disclaimer. Nothing is redundant, though the disclaimer sentence is the only borderline one and still earns its place for compliance framing.
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 an output schema, full parameter documentation and complete annotations, the description only needs to convey purpose and usage framing, which it does. A minor gap is that it doesn't clarify what happens if a year pair isn't available for the policy, but nothing essential for a correct call 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?
Schema description coverage is 100%, with jaarA/jaarB, polisId pattern and taal enum all documented in the schema. The description only restates the two-year comparison with an example year pair, adding no format or constraint meaning beyond the schema. Baseline 3 is appropriate.
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 verb and resource ('shows what changed in a policy between two insurance years') and enumerates the compared dimensions — premium, coverage per category, non-contracted care reimbursement, conditions. This clearly separates it from siblings like vergelijk_polissen (different policies) and bereken_jaarkosten (cost calculation) without needing the schemas.
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?
It gives concrete usage context — the switching season (overstapseizoen) and the explanatory goal of why a policy got pricier or lost coverage — plus a clear framing that it informs rather than advises. It never names an alternative tool or an explicit exclusion case, so the agent must infer when to pick vergelijk_polissen or bereken_jaarkosten instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vergelijk_polissenCompare policiesARead-onlyIdempotentInspect
Compares 2 to 4 policies of the same insurance year and returns only the differences, grouped by aspect: premium (premie), choice of care providers (zorgkeuze), coverage per category (dekking), acceptance rules (acceptatie), waiting period (wachttijd), policy type and conditions (voorwaarden). Works for basic policies or for supplementary packages. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| aspecten | No | Only compare these aspects: premie, zorgkeuze, dekking, acceptatie, wachttijd, type, voorwaarden. Default: all. | |
| polisIds | Yes | 2 to 4 policy ids (polisId) of the same year: all basic policies or all supplementary packages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds genuine behavioral value by disclosing the output shape ('returns only the differences') and the advisory boundary. It does not say what happens on invalid input, e.g. mismatched years or mixing basic and supplementary ids.
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?
Front-loaded with the core action and scope, followed by the aspect enumeration and the advisory disclaimer, all in two sentences with no filler. The aspect list with Dutch terms is slightly long but pays for itself by mapping terms to the enum.
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 an output schema present, return values need no explanation, and the description wisely states only the 'differences only' behavior. Combined with rich annotations and full schema coverage this is nearly complete; the only missing piece is failure behavior for year mismatches or mixed policy types.
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 baseline is 3. The description's '2 to 4 policies of the same insurance year' and 'all basic policies or all supplementary packages' restate the polisIds schema text, and the aspect list mirrors the aspecten enum rather than adding semantics such as default behavior or cost of narrowing aspects.
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 (compares), resource (policies), cardinality bound (2 to 4), scope (same insurance year) and the exact return shape (only differences, grouped by aspect). An agent can distinguish this from sibling vergelijk_jaren (compares years) or get_polis (single policy) without opening a schema.
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 clear usage context: 'works for basic policies or for supplementary packages', plus the 'information, not advice' boundary which tells the agent not to present results as a recommendation. It stops short of naming explicit alternatives (e.g. use get_polis for a single policy, vergelijk_jaren for year-over-year), so no true when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoek_aanvullende_pakkettenSearch supplementary and dental packagesARead-onlyIdempotentInspect
Finds Dutch supplementary health insurance and dental packages (aanvullende verzekering, tandartsverzekering) that meet all coverage requirements (eisen), for example at least 12 physiotherapy sessions (categorie 'fysio', minAantal 12) or at least 500 euros for dental treatment ('tand_behandeling', minBedragCent 50000). Returns the premium at the given age, acceptance rules (acceptatie: medical questionnaire or age limit), waiting period (wachttijd), whether children are insured for free, and the matching coverage lines (requirements are checked on main lines only; extra lines have variant true). Packages no longer available to new customers (gesloten) are left out. Use taxonomy category codes only; never pass diagnoses or medicines. Paginated with limit and cursor. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| eisen | No | Coverage requirements (eisen); a package must meet all of them. Empty = all packages. | |
| limit | No | Maximum number of results per page (1-50, default 10). | |
| soort | No | Package kind: aanvullend (supplementary), tand (dental) or combinatie (both in one package). | |
| cursor | No | Opaque pagination cursor: pass meta.cursor from the previous response to get the next page. | |
| leeftijd | Yes | Age of the insured person on 1 January of jaar; supplementary premiums depend on age. | |
| basisPolisId | No | Only packages that can be combined with this basic policy (polisId); most packages require a basic policy from the same insurer group (concern). | |
| verzekeraarId | No | Insurer id (verzekeraar), e.g. 'vgz', as returned by list_verzekeraars. | |
| maxPremieCentMaand | No | Maximum premium per month in euro cents at this age, e.g. 2500 = 25 euros. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and non-destructive annotations, it discloses important matching behavior: all requirements must be met, only main coverage lines are checked, extra lines have variant true, and closed packages are omitted. It also explains pagination and limits the tool's role to information rather than advice or enrollment.
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?
The description is front-loaded with the search purpose and contains no filler, with each subsequent sentence addressing matching, results, exclusions, input constraints, pagination, or scope. It is nevertheless a dense single paragraph, and the detailed return-field list is less necessary because an output schema is present.
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 complex filtered search with ten parameters, the definition supplies the essential matching semantics, representative inputs, result behavior, exclusions, and pagination model. Together with the fully described input schema and output schema, it gives an agent enough context to invoke the tool correctly.
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?
Although schema description coverage is 100%, the description adds useful guidance by connecting eisen to concrete categorie, minAantal, and minBedragCent combinations and prohibiting diagnoses or medicines as category inputs. Some other parameter discussion, such as age-based premiums and limit/cursor pagination, largely repeats the schema.
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 uses a specific verb and resource: it finds Dutch supplementary and dental insurance packages satisfying all coverage requirements. This clearly distinguishes it from siblings for basic insurance, policy retrieval, and policy comparison.
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?
It gives clear usage context through worked physiotherapy and dental examples, and explicitly says to use taxonomy category codes rather than diagnoses or medicines. It does not explicitly route users to alternatives such as zoek_basisverzekeringen or vergelijk_polissen when their needs fall outside this search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoek_basisverzekeringenSearch basic health insurance policiesARead-onlyIdempotentInspect
Searches Dutch basic health insurance policies (basisverzekering) for an insurance year. Returns per policy the premium per month and per year at the chosen voluntary deductible (vrijwillig eigen risico), the policy type, freedom of choice of care providers (zorgkeuze, based on reimbursement of non-contracted care, niet-gecontracteerde zorg), customer rating, a link to the policy page (detailUrl; afsluitUrl is only filled over the REST API) and source ids. Filter by policy type, insurer, minimum reimbursement for non-contracted care and care type (zorgsoort); sort by premie, zorgkeuze or rating and always tell the user the sort key (meta.sorteersleutel). The insured care itself is the same in every basic policy by law; policies differ in premium and choice of providers. Paginated with limit and cursor. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| jaar | Yes | Insurance year (verzekeringsjaar), e.g. 2027. During the switching season (November-December) users usually mean the coming year. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| type | No | Policy type: natura (only contracted care fully reimbursed), restitutie (free choice of provider), combinatie (mix), budget (lowest premium, limited choice). | |
| limit | No | Maximum number of results per page (1-50, default 10). | |
| cursor | No | Opaque pagination cursor: pass meta.cursor from the previous response to get the next page. | |
| sorteer | No | Sort order: premie (lowest annual premium first, default), zorgkeuze (most freedom of choice first), rating (highest customer rating first). | premie |
| zorgsoort | No | Type of care (zorgsoort), lowercase key such as 'ziekenhuis' (hospital), 'kliniek', 'ggz' (mental healthcare), 'fysio', 'wijkverpleging', 'apotheek'. | |
| eigenRisico | No | Voluntary deductible (vrijwillig eigen risico) in whole euros used to price the premium: 0 (default), 100, 200, 300, 400 or 500. It comes on top of the mandatory deductible (verplicht eigen risico). | 0 |
| verzekeraarId | No | Insurer id (verzekeraar), e.g. 'vgz', as returned by list_verzekeraars. | |
| minVergoedingNietGecontracteerd | No | Minimum reimbursement percentage (0-100) for care from non-contracted providers (niet-gecontracteerde zorg). Applies to zorgsoort if given, otherwise to every care type of the policy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower, yet the description adds real context: pagination via limit/cursor, that premium is priced at the chosen voluntary deductible, that afsluitUrl is only populated over the REST API, and the meta.sorteersleutel disclosure obligation. The main omission is that it does not warn about the response size or the consequences of a large limit beyond the paginated note.
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?
Front-loaded with purpose, then results, then filtering/sorting, then the advisory disclaimer, so the most important information comes first. It is a single dense paragraph with some unavoidable jargon repetition of schema field names, but no sentence is truly wasted; splitting into short bullets would improve scanability slightly.
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 search with an output schema and full annotations, the description supplies everything still needed to call it correctly: deductible-driven pricing, pagination contract, sort-key reporting, domain caveat that covered care is identical by law, and the non-advisory stance. Return-value details are already in the output schema, and the extra mention of afsluitUrl is a useful quirk rather than redundancy.
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 100%, so baseline is 3, but the description adds meaning beyond the schema: eigenRisico is described as the basis for premium pricing and as stacking on the mandatory deductible, minVergoedingNietGecontracteerd is explained as applying to zorgsoort when given and otherwise to all care types, and zorgkeuze is defined via reimbursement of non-contracted care. These are semantic clarifications the enum/description fields only partially convey.
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?
Opens with a specific verb and resource ('Searches Dutch basic health insurance policies (basisverzekering) for an insurance year') and scopes it to basic policies only, implicitly distinguishing it from zoek_aanvullende_pakketten and vergelijk_polissen. It also states what the search actually varies on (premium and provider choice, not covered care), so an agent understands the differentiator without opening a schema.
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 concrete usage context: filter by type, insurer, reimbursement and zorgsoort, sort by one of three keys, and always report the sort key to the user. It also sets an explicit boundary ('Provides information, not advice: the user makes the decision and signs up with the insurer themselves'). It never names sibling tools like vergelijk_polissen or bereken_jaarkosten as alternatives, so routing between tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoek_zorgaanbiederSearch care providersARead-onlyIdempotentInspect
Searches Dutch care providers (zorgaanbieders), such as hospitals, clinics and physiotherapists, in the national AGB register by name, city (plaats), postcode or care type (zorgsoort). Returns the AGB code, address and, when a postcode is given, the distance. Provide at least one of naam, plaats or postcode, then pass the AGB code to check_zorgaanbieder. Provides information, not advice: the user makes the decision and signs up with the insurer themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| naam | No | (Part of) the name of the care provider. | |
| taal | No | Response language: nl (Dutch, default) or en (English). | nl |
| limit | No | Maximum number of results per page (1-50, default 10). | |
| plaats | No | City or town (plaats), e.g. Utrecht. | |
| postcode | No | Dutch postcode (4 digits, optionally 2 letters), e.g. 3511 or 3511AB; results get a distance. | |
| zorgsoort | No | Type of care (zorgsoort), lowercase key such as 'ziekenhuis' (hospital), 'kliniek', 'ggz' (mental healthcare), 'fysio', 'wijkverpleging', 'apotheek'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes | |
| acties | Yes | |
| bronnen | Yes | |
| aannames | Yes | |
| samenvatting | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered; the description adds the conditional output trait that a distance is only returned when a postcode is supplied, plus a scope disclaimer (information, not advice) that matters for a consumer insurance context. It says nothing about paging beyond the limit parameter or about empty-result behavior, so it is not exhaustive.
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?
Front-loaded with purpose, then search axes, then return values, then the workflow handoff and disclaimer — a sensible order with no filler sentences. The closing disclaimer is policy boilerplate that only marginally earns its space.
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 six documented parameters, an output schema and full annotations, the description supplies what the structured fields cannot: the multi-criteria requirement, the distance-on-postcode behavior, and the handoff to check_zorgaanbieder. Missing only pagination semantics and clarification of whether zorgsoort can be used alone.
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 100%, so every parameter including the zorgsoort examples and the postcode pattern is already documented; the description largely restates those axes. The one genuine addition beyond the schema is the cross-parameter constraint that at least one of naam/plaats/postcode must be given, and the link between postcode and distance — enough to stay at baseline rather than above it.
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?
"Searches Dutch care providers (zorgaanbieders)... in the national AGB register" gives a specific verb, resource and data source, then enumerates the four search axes (name, city, postcode, care type) and what comes back (AGB code, address, distance). It explicitly routes the agent to check_zorgaanbieder for the follow-up, so it is distinguishable from siblings without opening a schema.
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?
States a precondition ("Provide at least one of naam, plaats or postcode") and the next step ("pass the AGB code to check_zorgaanbieder"), which is real when-to-use guidance and names the alternative tool. It stops short of any when-not-to-use condition and leaves ambiguous whether zorgsoort alone is a valid sole criterion, even though the schema marks nothing required.
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.
12 tool updates
- First observed
bereken_jaarkosten - First observed
check_zorgaanbieder - First observed
get_bron - First observed
get_intake_schema - First observed
get_polis - First observed
get_wettelijke_parameters - First observed
list_verzekeraars - First observed
vergelijk_jaren - First observed
vergelijk_polissen - First observed
zoek_aanvullende_pakketten - First observed
zoek_basisverzekeringen - First observed
zoek_zorgaanbieder
Publisher details
- Operator
- Jan-Willem Bobbink
- Operator website
- https://www.zorgverzekering.chat · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://www.zorgverzekering.chat/mcp · Publisher source
- Trust center
- https://www.zorgverzekering.chat/mcp · Publisher source
- Restrictions
- Not available
Related MCP Connectors
Dutch tax: net salary, tax return, Box 3, 30% ruling, cross-border (DE/BE/UK/IN), WOZ, benefits.
Living in NL: legal max rent (points), car by plate (RDW), city budget, current fees with sources.
Swiss health insurance 2027: rank every insurer, model and deductible with official BAG data.
Dutch energy market, open data computed nightly: cheapest contracts, market levels, offer lifecycle
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
- AlicenseAqualityDmaintenanceCost-of-living and quality-of-life comparison across ~165 cities: take-home pay, the equivalent salary you'd need, and the safety-net deltas (childcare, healthcare, vacation, parental leave).69 npm2MIT
- FlicenseNot gradedqualityBmaintenanceEnables Dutch income tax calculations: converts gross to net salary, net to gross, compares multiple salary scenarios, and provides tax bracket data for supported years. Every result includes a detailed breakdown and a thetax.nl permalink.-
- AlicenseAqualityAmaintenanceEnables natural language queries about Swiss mandatory health insurance coverage for medications and medical devices using official BAG lists.641 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.