mcp-hypotheken-berekenen
This MCP server provides Dutch mortgage calculation capabilities and access to current mortgage interest rates.
Capabilities:
Calculate maximum mortgage (
bereken_hypotheek) - Determine maximum mortgage amount, gross monthly payments, and potential equity based on income, age, and existing obligationsSupport multiple applicant types - Handle single applicants or couples with partners
Process existing homeowners - Calculate equity and handle refinancing scenarios for movers (doorstromers) by accounting for existing loan details and current property values
Custom loan parameters - Support for specific loan types (annuity, linear, interest-only), custom interest rates, LTV percentages, and energy labels
Retrieve current interest rates (
haal_actuele_rentes_op) - Access the top 5 lowest mortgage rates categorized by NHG status, LTV classes, construction type (new vs. existing), and loan typesEnergy efficiency integration - Factor in energy labels for mortgage calculations
Integrates with Replit's backend API to provide mortgage calculation services and current interest rate data
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-hypotheken-berekenenbereken mijn maximale hypotheek als starter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hypotheek MCP Server v5.0
MCP-server voor Nederlandse hypotheekberekeningen. Levert compacte tools, prompts en resources zodat AI-agents (n8n, Claude, GPT, ...) direct hypotheekvragen kunnen afhandelen.
🚀 Quick Start
git clone https://github.com/pace8/hypotheek-mcp-server.git
cd hypotheek-mcp-server
npm install
cp .env.example .env # vul je REPLIT_API_KEY in
npm run build
npm startnpm run dev— TypeScript watch modenpm test— Jest test suitesnpm run lint— ESLint controle
Meer configuratie-opties staan in docs/CONFIG.md.
🛠️ Beschikbare tools
Tool | Beschrijving | Output |
| Maximale hypotheek voor starters | Max bedrag + maandlast + NHG-vergelijking |
| Maximale hypotheek voor doorstromers | Max bedrag + maandlast + overwaarde |
| Maatwerkparameters (rente, looptijd, energielabel) | Custom leenbedrag |
| Complete financiering voor gewenste woning (starter) | Totaal benodigd bedrag + financieringsmix + maandlast |
| Financieringsmix voor doorstromers (bestaand + nieuw) | Benodigd bedrag + overwaarde + maandlasten |
| Opzet met maatwerk leningdelen | Custom opzet, zowel bestaand als nieuw |
| Actuele rentes per rentevaste periode | JSON met NHG en niet-NHG tarieven |
📚 MCP Resources & Prompts
hypotheek://v4/guide/opzet-intake— intake checklist, defaults & velddefinitieshypotheek://v4/guide/output-formatting— hoe je tooloutput toont aan klantenhypotheek://v4/guide/quick-ref— toolselectie, formatregels, valkuilenhypotheek://v4/guide/playbook— 10 uitgewerkte voorbeeldgesprekken
Prompts (list_prompts) verwijzen automatisch naar deze resources zodat agents detailinformatie kunnen ophalen wanneer nodig.
🔧 Development notes
Config wordt centraal geladen via
src/config/index.ts(Zod-validatie)Toolhandlers zitten in
src/index.tsen gebruiken gedeelde helperfunctiesMarkdown-resources wonen in
docs/en worden viasrc/resources/index.tsbeschikbaar gemaaktTesten draaien op Node ≥18 met Jest (ESM + ts-jest)
Zie CHANGELOG.md voor volledige release notes.
Available Tools
7 toolsbereken_hypotheek_doorstromerA
Berekent de maximale hypotheek voor doorstromers (standaard variant). Alle regels uit het doorstromerbeleid gelden ook voor de uitgebreide tool:
Outputvelden (altijd rechtstreeks gebruiken in de terugkoppeling):
max_woningbudget → woningbudget inclusief overwaarde en extra leencapaciteit
overwaarde_bedrag → vrijvallende winst uit de huidige woning
huidige_hypotheek_schuld → resterende schuld die moet worden afgelost
extra_leencapaciteit → nieuwe hypotheekruimte bovenop de overwaarde
maandlast_nu, maandlast_straks en verschil_maandlast → huidige, toekomstige en delta maandlast
Presentatie richting gebruiker (één compact blok):
Toon het woningbudget centraal onder de titel "Uw woningbudget" en licht toe waaruit dit bedrag bestaat in bullets (overwaarde, huidige hypotheek, extra leencapaciteit).
Voeg een tweede blok toe "Uw nieuwe maandlast" met maandlast nu, maandlast straks en het verschil (positief/negatief) op eigen regel.
Gebruik alleen MCP-waarden; geen eigen herberekeningen behalve eenvoudige weergave/afronding.
Invoerkeuze bestaande hypotheek (verplicht expliciet vragen):
Snelle globale berekening → gebruiker geeft een samenvatting (totale schuld, gemiddelde rente/looptijd, eventuele huidige maandlast). Vul één leningdeel met deze totaalwaarden in.
Detailberekening → gebruiker levert alle leningdelen (hoofdsom, rente, resterende looptijd, hypotheekvorm). Kopieer ze één-op-één in de leningdelen array.
Vraag altijd: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?" en volg de gekozen route.
| Name | Required | Description | Default |
|---|---|---|---|
| inkomen_aanvrager | Yes | Bruto jaarinkomen hoofdaanvrager in euro's. | |
| geboortedatum_aanvrager | Yes | Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: "Wat is uw leeftijd of geboortedatum?" en deel bij een leeftijd alleen die leeftijd terug. | |
| heeft_partner | Yes | Geeft aan of een partner mee leent. | |
| inkomen_partner | No | Optioneel partnerinkomen in euro's. | |
| geboortedatum_partner | No | Optionele interne geboortedatum partner (ISO). Vraag ook hier: "Wat is uw leeftijd of geboortedatum?" en houd de afgeleide datum intern. | |
| verplichtingen_pm | No | Optionele maandelijkse verplichtingen in euro's. | |
| waarde_huidige_woning | Yes | Huidige marktwaarde van de bestaande woning. | |
| bestaande_hypotheek | Yes | Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?" | |
| session_id | No | Optioneel sessie-ID vanuit n8n (voor logging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does an excellent job explaining what the tool calculates (max_woningbudget, overwaarde_bedrag, etc.), how to present results to users (two compact blocks with specific formatting), and detailed input handling requirements. However, it doesn't mention potential limitations, error conditions, or performance characteristics that would make it a perfect 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 description is comprehensive but somewhat lengthy and mixes multiple concerns (output fields, presentation guidelines, input approaches). While all information is valuable, it could be more efficiently structured. The first sentence clearly states the purpose, but subsequent sections could be better organized for quicker comprehension by an AI agent.
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 mortgage calculation tool with 9 parameters, nested objects, no annotations, and no output schema, the description does an excellent job covering what's needed. It explains output fields, presentation requirements, and input handling scenarios. The main gap is the lack of explicit error handling or edge case guidance, preventing a perfect score.
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?
With 100% schema description coverage, the baseline is 3. The description adds significant value by explaining the two input approaches for 'bestaande_hypotheek' (quick global calculation vs detailed calculation) and mandating how to ask users about their preference. This provides crucial context beyond the schema's technical parameter definitions, though it doesn't elaborate on all 9 parameters' business logic.
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 clearly states the tool's purpose: 'Berekent de maximale hypotheek voor doorstromers (standaard variant)' which translates to 'Calculates the maximum mortgage for movers (standard variant)'. This specifies both the action (calculates maximum mortgage) and the target audience (doorstromers/movers), distinguishing it from sibling tools like bereken_hypotheek_starter and bereken_hypotheek_uitgebreid.
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 provides explicit guidance on when to use this tool versus alternatives: 'Alle regels uit het doorstromerbeleid gelden ook voor de uitgebreide tool' indicates this is the standard variant for movers, with an extended tool available. It also specifies detailed input scenarios (quick global calculation vs detailed calculation) and mandates asking the user which approach they prefer, providing clear operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bereken_hypotheek_starterC
Berekent de maximale hypotheek voor starters. Output: maximaal leenbedrag, maandlast en NHG-vergelijking.
| Name | Required | Description | Default |
|---|---|---|---|
| inkomen_aanvrager | Yes | Bruto jaarinkomen hoofdaanvrager in euro's. | |
| geboortedatum_aanvrager | Yes | Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: "Wat is uw leeftijd of geboortedatum?" en deel bij een leeftijd alleen die leeftijd terug. | |
| heeft_partner | Yes | Geeft aan of een partner mee leent. | |
| inkomen_partner | No | Optioneel partnerinkomen in euro's. | |
| geboortedatum_partner | No | Optionele interne geboortedatum partner (ISO). Vraag ook hier: "Wat is uw leeftijd of geboortedatum?" en houd de afgeleide datum intern. | |
| verplichtingen_pm | No | Optionele maandelijkse verplichtingen in euro's. | |
| session_id | No | Optioneel sessie-ID vanuit n8n (voor logging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states what the tool calculates, it doesn't describe how it works: what formula or rules are used, whether it's a simulation or official calculation, if there are rate limits, authentication requirements, or data persistence. For a financial calculation tool with 7 parameters and no annotations, this leaves significant behavioral gaps.
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 appropriately concise with two sentences that efficiently state the purpose and output. It's front-loaded with the main function and follows with output details. There's no wasted verbiage, though it could potentially be more structured by separating purpose from output more clearly.
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 financial calculation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the calculation methodology, accuracy limitations, whether results are binding estimates, or how it differs from sibling tools. The output mentions are helpful but lack detail about format or units. Given the complexity and absence of structured behavioral information, more context is needed.
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 7 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema - it doesn't explain relationships between parameters (e.g., how partner income affects calculation) or provide context about the calculation methodology. With complete schema coverage, the baseline of 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 clearly states the tool's purpose: 'Berekent de maximale hypotheek voor starters' (Calculates the maximum mortgage for starters). It specifies the target user group (starters) and mentions the output includes maximum loan amount, monthly costs, and NHG comparison. However, it doesn't explicitly differentiate from sibling tools like bereken_hypotheek_doorstromer or bereken_hypotheek_uitgebreid, which likely target different user groups.
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 provides no guidance on when to use this tool versus alternatives. With sibling tools like bereken_hypotheek_doorstromer and bereken_hypotheek_uitgebreid available, there's no indication of what distinguishes 'starters' from 'doorstromers' or when to choose the 'uitgebreid' version. The description doesn't mention prerequisites, limitations, or comparison to other calculation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bereken_hypotheek_uitgebreidA
Gebruik dit voor maatwerk (rente, looptijd, energielabel). Output: maatwerk leenbedrag met maandlast en NHG-inschatting. Zodra u dit tool voor een doorstromer inzet (is_doorstromer=true of bestaande_hypotheek ingevuld), gelden dezelfde regels als bij de standaard doorstromer-tool:
Outputvelden (altijd rechtstreeks gebruiken in de terugkoppeling):
max_woningbudget → woningbudget inclusief overwaarde en extra leencapaciteit
overwaarde_bedrag → vrijvallende winst uit de huidige woning
huidige_hypotheek_schuld → resterende schuld die moet worden afgelost
extra_leencapaciteit → nieuwe hypotheekruimte bovenop de overwaarde
maandlast_nu, maandlast_straks en verschil_maandlast → huidige, toekomstige en delta maandlast
Presentatie richting gebruiker (één compact blok):
Toon het woningbudget centraal onder de titel "Uw woningbudget" en licht toe waaruit dit bedrag bestaat in bullets (overwaarde, huidige hypotheek, extra leencapaciteit).
Voeg een tweede blok toe "Uw nieuwe maandlast" met maandlast nu, maandlast straks en het verschil (positief/negatief) op eigen regel.
Gebruik alleen MCP-waarden; geen eigen herberekeningen behalve eenvoudige weergave/afronding.
Invoerkeuze bestaande hypotheek (verplicht expliciet vragen):
Snelle globale berekening → gebruiker geeft een samenvatting (totale schuld, gemiddelde rente/looptijd, eventuele huidige maandlast). Vul één leningdeel met deze totaalwaarden in.
Detailberekening → gebruiker levert alle leningdelen (hoofdsom, rente, resterende looptijd, hypotheekvorm). Kopieer ze één-op-één in de leningdelen array.
Vraag altijd: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?" en volg de gekozen route.
| Name | Required | Description | Default |
|---|---|---|---|
| inkomen_aanvrager | Yes | Bruto jaarinkomen hoofdaanvrager in euro's. | |
| geboortedatum_aanvrager | Yes | Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: "Wat is uw leeftijd of geboortedatum?" en deel bij een leeftijd alleen die leeftijd terug. | |
| heeft_partner | Yes | Geeft aan of een partner mee leent. | |
| inkomen_partner | No | Optioneel partnerinkomen in euro's. | |
| geboortedatum_partner | No | Optionele interne geboortedatum partner (ISO). Vraag ook hier: "Wat is uw leeftijd of geboortedatum?" en houd de afgeleide datum intern. | |
| verplichtingen_pm | No | Optionele maandelijkse verplichtingen in euro's. | |
| is_doorstromer | No | Geeft aan of de aanvrager een doorstromer is. | |
| waarde_huidige_woning | No | Optionele huidige woningwaarde in euro's. | |
| bestaande_hypotheek | No | Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?" | |
| nieuwe_woning | No | Kerngegevens nieuwe woning (detailuitleg: hypotheek://v4/guide/opzet-intake). | |
| nieuwe_hypotheek | No | Optionele maatwerk leningparameters (looptijd, rentevast, rente). Detailuitleg: hypotheek://v4/guide/opzet-intake. | |
| nieuwe_lening | No | Optionele structuur voor looptijd/rentevast/NHG en renteklassen (detailuitleg: hypotheek://v4/guide/opzet-intake). | |
| session_id | No | Optioneel sessie-ID vanuit n8n (voor logging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does an excellent job describing output format, presentation requirements, and input handling logic (the two calculation approaches for existing mortgages). It explains what the tool returns and how to present it to users. However, it doesn't mention potential limitations like rate limits, error conditions, or authentication requirements, which prevents a perfect score.
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 comprehensive but lengthy and could be more front-loaded. While every section adds value, the structure mixes purpose, output format, presentation guidelines, and input handling without clear separation. The core purpose is stated early, but the detailed formatting instructions and calculation approaches could be more efficiently organized to help agents quickly grasp the tool's essence.
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 the tool's complexity (13 parameters, nested objects, no output schema, no annotations), the description does an excellent job providing context. It explains output fields, presentation requirements, and input handling logic. However, without an output schema, the description doesn't fully document the return structure's data types or potential error responses, and it doesn't address edge cases or limitations, leaving some gaps for a complex financial calculation tool.
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 13 parameters thoroughly. The description adds significant value by explaining the two approaches for handling 'bestaande_hypotheek' (quick global calculation vs. detailed calculation) and providing guidance on how to ask users about their preference. This contextual information about parameter usage goes beyond what the schema provides, though it doesn't cover all parameters equally.
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 clearly states the tool's purpose: 'Gebruik dit voor maatwerk (rente, looptijd, energielabel). Output: maatwerk leenbedrag met maandlast en NHG-inschatting.' It specifies the verb (calculate/bereken), resource (mortgage/hypotheek), and distinguishes it from siblings by emphasizing 'maatwerk' (customization) for advanced scenarios with specific parameters like interest rate, term, and energy label.
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 provides explicit usage guidelines: it states when to use this tool (for customized calculations with specific parameters) and references sibling tools ('dezelfde regels als bij de standaard doorstromer-tool'). It also specifies when it applies to 'doorstromer' scenarios (when is_doorstromer=true or bestaande_hypotheek is filled), creating clear boundaries versus alternatives like bereken_hypotheek_starter or bereken_hypotheek_doorstromer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
haal_actuele_rentes_opB
Haalt actuele hypotheekrentes op per rentevaste periode. Output: overzicht met NHG- en niet-NHG-tarieven.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output format ('overzicht met NHG- en niet-NHG-tarieven'), which adds some context, but lacks details on critical behaviors like data freshness, source reliability, rate limits, error handling, or authentication needs. For a data-fetching tool with zero annotation coverage, this is insufficient.
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 extremely concise and front-loaded: two sentences that directly state the purpose and output. There is no wasted text, repetition, or unnecessary elaboration. It efficiently communicates the essential information.
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 the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and output format, but lacks behavioral details (e.g., how current the rates are, any limitations). For a tool fetching financial data, more context on data currency and reliability would be beneficial, but it meets the basic threshold.
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 has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, so a baseline score of 4 is appropriate. It does mention the output includes NHG and non-NHG rates, which provides context on what data is returned.
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 clearly states the tool's purpose: 'Haalt actuele hypotheekrentes op per rentevaste periode' (Fetches current mortgage rates per fixed-rate period). It specifies the verb ('haalt op') and resource ('hypotheekrentes'), and distinguishes from siblings by focusing on rate retrieval rather than calculation or setup. However, it doesn't explicitly differentiate from potential similar rate-fetching tools that might exist elsewhere.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any of the sibling tools (e.g., bereken_hypotheek_* for calculations or opzet_hypotheek_* for setup), nor does it specify prerequisites, constraints, or scenarios where this tool is appropriate. Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opzet_hypotheek_doorstromerA
Berekent de hypotheekopzet voor doorstromers met bestaande woning. Output: benodigd bedrag, financiering per component en maandlasten (bestaand versus nieuw).
Invoerbeleid bestaande hypotheek (verplicht expliciet vragen):
Stel altijd de vraag: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?"
Bij snelle globale berekening: laat de gebruiker één samenvattende set waarden geven (totale schuld, gemiddelde rente, resterende looptijd, optioneel huidige maandlast) en vul hiermee één leningdeel.
Bij detailberekening: laat de gebruiker alle leningdelen kopiëren/plakken (hoofdsom, rente, looptijd, rentevast, hypotheekvorm) en vul de leningdelen-array één-op-één.
| Name | Required | Description | Default |
|---|---|---|---|
| aanvrager | Yes | Gegevens van de (hoofd)aanvrager. Vraag altijd: "Wat is uw leeftijd of geboortedatum?" en gebruik opgegeven leeftijden alleen intern. | |
| waarde_huidige_woning | Yes | Marktwaarde van de huidige woning. | |
| bestaande_hypotheek | Yes | Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?" | |
| nieuwe_woning | Yes | Kerngegevens nieuwe woning (detailuitleg: hypotheek://v4/guide/opzet-intake). | |
| session_id | No | Optioneel sessie-ID vanuit n8n (voor logging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It explains the tool's interactive behavior (mandatory questions to ask users), input handling policies for different calculation types, and output structure. However, it doesn't mention computational limitations, error conditions, or performance characteristics that might be relevant for a complex financial calculation 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?
The description is appropriately sized but not optimally structured. The first sentence clearly states purpose and output, but the detailed input policy section dominates. While necessary for usage guidance, it creates a front-loaded structure that could be more balanced. Every sentence earns its place, but the flow could be improved.
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 tool with 5 parameters, 100% schema coverage, no annotations, and no output schema, the description provides strong contextual completeness. It explains the tool's purpose, usage procedures, and behavioral expectations. The main gap is the lack of output format details beyond high-level categories, which would be helpful given the absence of an output schema.
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 parameters thoroughly. The description adds value by explaining the conceptual approach to handling existing mortgages (global vs detailed calculation) and how this affects the 'leningdelen' array parameter. However, it doesn't provide additional semantic context for other parameters beyond what's in 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 clearly states the tool's purpose: 'Berekent de hypotheekopzet voor doorstromers met bestaande woning' (Calculates mortgage setup for movers with existing property). It specifies the exact output format and distinguishes itself from siblings by focusing on 'doorstromers' (movers) with existing properties, unlike starter or uitgebreid variants.
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 provides explicit usage guidance with mandatory questions to ask users: 'Wilt u een snelle globale berekening... of een detailberekening...' (Do you want a quick global calculation... or a detailed calculation...). It clearly explains when to use each approach and how to handle input based on user choice, offering complete procedural guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opzet_hypotheek_starterB
Berekent de hypotheekopzet voor starters. Output: totaal benodigd bedrag, financieringsoverzicht en maandlast.
| Name | Required | Description | Default |
|---|---|---|---|
| aanvrager | Yes | Gegevens van de (hoofd)aanvrager. Vraag altijd: "Wat is uw leeftijd of geboortedatum?" en gebruik opgegeven leeftijden alleen intern. | |
| nieuwe_woning | Yes | Kerngegevens nieuwe woning (detailuitleg: hypotheek://v4/guide/opzet-intake). | |
| session_id | No | Optioneel sessie-ID vanuit n8n (voor logging). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the calculation function and output format. It doesn't disclose important behavioral traits like whether this is a read-only calculation or if it creates records, what permissions might be needed, whether it has rate limits, or how it handles errors. The output description is helpful but insufficient for a tool with complex nested parameters.
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 appropriately concise with a single sentence that front-loads the core purpose and follows with output details. Every element serves a purpose, though it could be slightly more structured by separating purpose from output specification.
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 mortgage calculation tool with nested objects, no annotations, and no output schema, the description is insufficient. It doesn't explain the calculation methodology, assumptions, limitations, or error conditions. The output description helps but doesn't compensate for the lack of behavioral context needed for proper tool invocation.
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?
With 100% schema description coverage, the baseline is 3. The tool description adds no parameter-specific information beyond what's already documented in the comprehensive input schema descriptions. It doesn't explain relationships between parameters or provide additional context about how the calculation uses these inputs.
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 clearly states the tool's purpose with a specific verb ('Berekent' - calculates) and resource ('hypotheekopzet voor starters' - mortgage setup for starters), and distinguishes it from siblings by specifying it's for 'starters' rather than 'doorstromer' or 'uitgebreid' variants.
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 provides no guidance on when to use this tool versus the sibling tools like 'opzet_hypotheek_doorstromer' or 'opzet_hypotheek_uitgebreid'. It doesn't explain what makes a 'starter' different from other mortgage applicants or when to choose this specific variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
opzet_hypotheek_uitgebreidA
GEAVANCEERDE opzet hypotheek berekening met VOLLEDIGE controle over alle parameters. Geschikt voor zowel starters als doorstromers.
Output bevat alles van de starter/doorstromer tools, plus:
Mogelijkheid om elk leningdeel handmatig te definiëren
Custom rentepercentages, looptijden en rentevast periodes
NHG, energielabel en verbouwing/duurzaamheidsbudget in één scenario
Volledige balans check en praktische toelichtingen
Gebruik deze tool alleen wanneer afwijkende parameters nodig zijn; anders de specifieke starter/doorstromer varianten gebruiken.
Doorstromer invoerbeleid:
Vraag óók hier: "Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?"
Snelle route → één samenvattend leningdeel (totale schuld, gemiddelde rente/looptijd, optionele maandlast).
Detailroute → volledige lijst leningdelen met de exacte waarden per deel. Kopieer deze rechtstreeks in de leningdelen array.
| Name | Required | Description | Default |
|---|---|---|---|
| aanvrager | Yes | Gegevens van de (hoofd)aanvrager. Vraag altijd: "Wat is uw leeftijd of geboortedatum?" en gebruik opgegeven leeftijden alleen intern. | |
| is_doorstromer | No | Is dit een doorstromer met bestaande woning en hypotheek? | |
| waarde_huidige_woning | No | OPTIONEEL - Alleen voor doorstromers: huidige woningwaarde in euro's | |
| bestaande_hypotheek | No | OPTIONEEL - Alleen voor doorstromers: gegevens van de bestaande hypotheek. | |
| nieuwe_woning | Yes | Gegevens van de nieuwe woning die gekocht wordt | |
| nieuwe_lening | No | OPTIONEEL - Specifieke parameters voor de nieuwe lening. Gebruik deze sectie om looptijd, rentevast periode, NHG of renteklassen aan te passen. | |
| session_id | No | OPTIONEEL - Sessie ID voor het traceren van de conversatie. Haal deze waarde uit de n8n chat trigger: 'When chat message received' -> sessionId variabele. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It effectively discloses behavioral traits: it's a calculation tool (not a transaction), mentions comprehensive output content, specifies two distinct input workflows for movers, and indicates it handles complex scenarios with manual parameter control. It doesn't mention performance characteristics or error handling, but covers core behavioral aspects well.
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 well-structured with clear sections (overview, output features, usage guidelines, mover input policy). It's appropriately sized for a complex tool, though the mover policy section is quite detailed. Every sentence adds value, but some redundancy exists between the overview and output features list.
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 mortgage calculation tool with no annotations and no output schema, the description does well. It explains the tool's advanced nature, when to use it, what it includes beyond sibling tools, and provides specific input workflows. The main gap is lack of output format description, but given the complexity and good parameter coverage, it's mostly 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 parameters thoroughly. The description adds some context about 'deviating parameters' and the mover input policies, but doesn't provide additional parameter meaning beyond what's in the schema. Baseline 3 is appropriate when 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 clearly states the tool performs an 'advanced mortgage calculation with FULL control over all parameters' and specifies it's suitable for both starters and movers. It distinguishes from siblings by mentioning it includes everything from the starter/mover tools plus additional features like manual loan part definition, custom rates, and comprehensive balance checks.
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 provides explicit guidance: 'Use this tool only when deviating parameters are needed; otherwise use the specific starter/mover variants.' It also includes detailed mover input policies with two distinct calculation routes (quick vs. detailed), giving clear when-to-use instructions and alternatives.
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. Dates show when Glama detected each change.
4 tool updates
v1.0.0- Changed
bereken_hypotheek_uitgebreid1 field changed- removed
Input schema / properties / eigen_vermogenRemoved value: -{ - "default": 0, - "description": "Optioneel beschikbaar eigen geld in euro's.", - "type": "number" -}
- Changed
opzet_hypotheek_doorstromer9 fields changed- added
Input schema / properties / aanvragerAdded value: +{ + "description": "Gegevens van de (hoofd)aanvrager. Vraag altijd: \"Wat is uw leeftijd of geboortedatum?\" en gebruik opgegeven leeftijden alleen intern.", + "properties": { + "eigen_vermogen": { + "default": 0, + "description": "Beschikbaar eigen geld in euro's (optioneel).", + "type": "number" + }, + "geboortedatum_aanvrager": { + "description": "Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug.", + "type": "string" + }, + "geboortedatum_partner": { + "description": "Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern.", + "type": "string" + }, + "heeft_partner": { + "description": "Geeft aan of een partner mee leent.", + "type": "boolean" + }, + "inkomen_aanvrager": { + "description": "Bruto jaarinkomen hoofdaanvrager in euro's.", + "type": "number" + }, + "inkomen_partner": { + "description": "Optioneel partnerinkomen in euro's.", + "type": "number" + }, + "verplichtingen_pm": { + "default": 0, + "description": "Optionele maandelijkse verplichtingen in euro's.", + "type": "number" + } + }, + "required": [ + "inkomen_aanvrager", + "geboortedatum_aanvrager", + "heeft_partner" + ], + "type": "object" +} - removed
Input schema / properties / eigen_vermogenRemoved value: -{ - "default": 0, - "description": "Optioneel beschikbaar eigen geld in euro's.", - "type": "number" -} - removed
Input schema / properties / geboortedatum_aanvragerRemoved value: -{ - "description": "Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug.", - "type": "string" -} - removed
Input schema / properties / geboortedatum_partnerRemoved value: -{ - "description": "Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern.", - "type": "string" -} - removed
Input schema / properties / heeft_partnerRemoved value: -{ - "description": "Geeft aan of een partner mee leent.", - "type": "boolean" -} - removed
Input schema / properties / inkomen_aanvragerRemoved value: -{ - "description": "Bruto jaarinkomen hoofdaanvrager in euro's.", - "type": "number" -} - removed
Input schema / properties / inkomen_partnerRemoved value: -{ - "description": "Optioneel partnerinkomen in euro's.", - "type": "number" -} - removed
Input schema / properties / verplichtingen_pmRemoved value: -{ - "default": 0, - "description": "Optionele maandelijkse verplichtingen in euro's.", - "type": "number" -} - changed
Input schema / requiredPrevious value: -[ - "inkomen_aanvrager", - "geboortedatum_aanvrager", - "heeft_partner", - "waarde_huidige_woning", - "bestaande_hypotheek", - "nieuwe_woning" -]New value: +[ + "aanvrager", + "waarde_huidige_woning", + "bestaande_hypotheek", + "nieuwe_woning" +]
- Changed
opzet_hypotheek_starter9 fields changed- added
Input schema / properties / aanvragerAdded value: +{ + "description": "Gegevens van de (hoofd)aanvrager. Vraag altijd: \"Wat is uw leeftijd of geboortedatum?\" en gebruik opgegeven leeftijden alleen intern.", + "properties": { + "eigen_vermogen": { + "default": 0, + "description": "Beschikbaar eigen geld in euro's (optioneel).", + "type": "number" + }, + "geboortedatum_aanvrager": { + "description": "Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug.", + "type": "string" + }, + "geboortedatum_partner": { + "description": "Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern.", + "type": "string" + }, + "heeft_partner": { + "description": "Geeft aan of een partner mee leent.", + "type": "boolean" + }, + "inkomen_aanvrager": { + "description": "Bruto jaarinkomen hoofdaanvrager in euro's.", + "type": "number" + }, + "inkomen_partner": { + "description": "Optioneel partnerinkomen in euro's.", + "type": "number" + }, + "verplichtingen_pm": { + "default": 0, + "description": "Optionele maandelijkse verplichtingen in euro's.", + "type": "number" + } + }, + "required": [ + "inkomen_aanvrager", + "geboortedatum_aanvrager", + "heeft_partner" + ], + "type": "object" +} - removed
Input schema / properties / eigen_vermogenRemoved value: -{ - "default": 0, - "description": "Optioneel beschikbaar eigen geld in euro's.", - "type": "number" -} - removed
Input schema / properties / geboortedatum_aanvragerRemoved value: -{ - "description": "Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug.", - "type": "string" -} - removed
Input schema / properties / geboortedatum_partnerRemoved value: -{ - "description": "Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern.", - "type": "string" -} - removed
Input schema / properties / heeft_partnerRemoved value: -{ - "description": "Geeft aan of een partner mee leent.", - "type": "boolean" -} - removed
Input schema / properties / inkomen_aanvragerRemoved value: -{ - "description": "Bruto jaarinkomen hoofdaanvrager in euro's.", - "type": "number" -} - removed
Input schema / properties / inkomen_partnerRemoved value: -{ - "description": "Optioneel partnerinkomen in euro's.", - "type": "number" -} - removed
Input schema / properties / verplichtingen_pmRemoved value: -{ - "default": 0, - "description": "Optionele maandelijkse verplichtingen in euro's.", - "type": "number" -} - changed
Input schema / requiredPrevious value: -[ - "inkomen_aanvrager", - "geboortedatum_aanvrager", - "heeft_partner", - "nieuwe_woning" -]New value: +[ + "aanvrager", + "nieuwe_woning" +]
- Changed
opzet_hypotheek_uitgebreid9 fields changed- added
Input schema / properties / aanvragerAdded value: +{ + "description": "Gegevens van de (hoofd)aanvrager. Vraag altijd: \"Wat is uw leeftijd of geboortedatum?\" en gebruik opgegeven leeftijden alleen intern.", + "properties": { + "eigen_vermogen": { + "default": 0, + "description": "Beschikbaar eigen geld in euro's (optioneel).", + "type": "number" + }, + "geboortedatum_aanvrager": { + "description": "Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug.", + "type": "string" + }, + "geboortedatum_partner": { + "description": "Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern.", + "type": "string" + }, + "heeft_partner": { + "description": "Geeft aan of een partner mee leent.", + "type": "boolean" + }, + "inkomen_aanvrager": { + "description": "Bruto jaarinkomen hoofdaanvrager in euro's.", + "type": "number" + }, + "inkomen_partner": { + "description": "Optioneel partnerinkomen in euro's.", + "type": "number" + }, + "verplichtingen_pm": { + "default": 0, + "description": "Optionele maandelijkse verplichtingen in euro's.", + "type": "number" + } + }, + "required": [ + "inkomen_aanvrager", + "geboortedatum_aanvrager", + "heeft_partner" + ], + "type": "object" +} - removed
Input schema / properties / eigen_vermogenRemoved value: -{ - "default": 0, - "description": "Eigen geld beschikbaar in euro's.", - "type": "number" -} - removed
Input schema / properties / geboortedatum_aanvragerRemoved value: -{ - "description": "Interne geboortedatum aanvrager (ISO). Vraag de gebruiker: \"Wat is uw leeftijd of geboortedatum?\" en houd afgeleide datums voor uzelf.", - "type": "string" -} - removed
Input schema / properties / geboortedatum_partnerRemoved value: -{ - "description": "OPTIONEEL - Interne geboortedatum partner. Vraag dezelfde leeftijd/geboortedatum-vraag en deel alleen de leeftijd terug indien relevant.", - "type": "string" -} - removed
Input schema / properties / heeft_partnerRemoved value: -{ - "description": "Heeft de aanvrager een partner die mee aanvraagt?", - "type": "boolean" -} - removed
Input schema / properties / inkomen_aanvragerRemoved value: -{ - "description": "Bruto jaarinkomen van de hoofdaanvrager in euro's", - "type": "number" -} - removed
Input schema / properties / inkomen_partnerRemoved value: -{ - "description": "OPTIONEEL - Bruto jaarinkomen van de partner in euro's.", - "type": "number" -} - removed
Input schema / properties / verplichtingen_pmRemoved value: -{ - "default": 0, - "description": "Maandelijkse verplichtingen in euro's.", - "type": "number" -} - changed
Input schema / requiredPrevious value: -[ - "inkomen_aanvrager", - "geboortedatum_aanvrager", - "heeft_partner", - "nieuwe_woning" -]New value: +[ + "aanvrager", + "nieuwe_woning" +]
6 tool updates
- Changed
bereken_hypotheek_doorstromer4 fields changed- changed
Input schema / properties / bestaande_hypotheek / descriptionPrevious value: -"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake)."New value: +"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: \"Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?\"" - changed
Input schema / properties / bestaande_hypotheek / properties / leningdelen / descriptionPrevious value: -"Minimaal één leningdeel met restschuld en rente."New value: +"Minimaal één leningdeel. Gebruik één samenvattend leningdeel voor een snelle globale berekening of voeg alle afzonderlijke leningdelen toe voor een nauwkeurige detailberekening." - changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum hoofdaanvrager (YYYY-MM-DD)."New value: +"Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"Optionele geboortedatum partner (YYYY-MM-DD)."New value: +"Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern."
- Changed
bereken_hypotheek_starter2 fields changed- changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum hoofdaanvrager (YYYY-MM-DD)."New value: +"Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"Optionele geboortedatum partner (YYYY-MM-DD)."New value: +"Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern."
- Changed
bereken_hypotheek_uitgebreid4 fields changed- changed
Input schema / properties / bestaande_hypotheek / descriptionPrevious value: -"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake)."New value: +"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: \"Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?\"" - changed
Input schema / properties / bestaande_hypotheek / properties / leningdelen / descriptionPrevious value: -"Minimaal één leningdeel met restschuld en rente."New value: +"Minimaal één leningdeel. Gebruik één samenvattend leningdeel voor een snelle globale berekening of voeg alle afzonderlijke leningdelen toe voor een nauwkeurige detailberekening." - changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum hoofdaanvrager (YYYY-MM-DD)."New value: +"Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"Optionele geboortedatum partner (YYYY-MM-DD)."New value: +"Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern."
- Changed
opzet_hypotheek_doorstromer4 fields changed- changed
Input schema / properties / bestaande_hypotheek / descriptionPrevious value: -"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake)."New value: +"Bestaande leningdelen voor doorstromer (detailuitleg: hypotheek://v4/guide/opzet-intake). VRAAG ALTIJD: \"Wilt u een snelle globale berekening (met een samenvatting van uw hypotheek) of een detailberekening waarbij u alle leningdelen invoert?\"" - changed
Input schema / properties / bestaande_hypotheek / properties / leningdelen / descriptionPrevious value: -"Minimaal één leningdeel met restschuld en rente."New value: +"Minimaal één leningdeel. Gebruik één samenvattend leningdeel voor een snelle globale berekening of voeg alle afzonderlijke leningdelen toe voor een nauwkeurige detailberekening." - changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum hoofdaanvrager (YYYY-MM-DD)."New value: +"Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"Optionele geboortedatum partner (YYYY-MM-DD)."New value: +"Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern."
- Changed
opzet_hypotheek_starter2 fields changed- changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum hoofdaanvrager (YYYY-MM-DD)."New value: +"Interne geboortedatum hoofdaanvrager (ISO). Vraag de gebruiker altijd: \"Wat is uw leeftijd of geboortedatum?\" en deel bij een leeftijd alleen die leeftijd terug." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"Optionele geboortedatum partner (YYYY-MM-DD)."New value: +"Optionele interne geboortedatum partner (ISO). Vraag ook hier: \"Wat is uw leeftijd of geboortedatum?\" en houd de afgeleide datum intern."
- Changed
opzet_hypotheek_uitgebreid2 fields changed- changed
Input schema / properties / geboortedatum_aanvrager / descriptionPrevious value: -"Geboortedatum aanvrager in formaat YYYY-MM-DD"New value: +"Interne geboortedatum aanvrager (ISO). Vraag de gebruiker: \"Wat is uw leeftijd of geboortedatum?\" en houd afgeleide datums voor uzelf." - changed
Input schema / properties / geboortedatum_partner / descriptionPrevious value: -"OPTIONEEL - Geboortedatum partner in formaat YYYY-MM-DD."New value: +"OPTIONEEL - Interne geboortedatum partner. Vraag dezelfde leeftijd/geboortedatum-vraag en deel alleen de leeftijd terug indien relevant."
7 tool updates
- Removed
bereken_hypotheek - Added
bereken_hypotheek_doorstromer - Added
bereken_hypotheek_starter - Added
bereken_hypotheek_uitgebreid - Added
opzet_hypotheek_doorstromer - Added
opzet_hypotheek_starter - Added
opzet_hypotheek_uitgebreid
2 tool updates
- First observed
bereken_hypotheek - First observed
haal_actuele_rentes_op
TDQS
There is significant overlap and unclear boundaries between tools. For example, 'bereken_hypotheek_doorstromer' and 'bereken_hypotheek_uitgebreid' both handle doorstromers with similar outputs and rules, while 'opzet_hypotheek_doorstromer' and 'opzet_hypotheek_uitgebreid' also overlap in functionality. The descriptions indicate that the uitgebreid tools are for advanced cases, but the distinctions are not clearly defined, leading to potential confusion about which tool to use for a given scenario.
All tool names follow a consistent verb_noun pattern in Dutch, using 'bereken_' or 'haal_' or 'opzet_' as prefixes followed by descriptive nouns (e.g., 'hypotheek_doorstromer', 'actuele_rentes_op'). The naming is uniform across all tools, making it easy to predict and understand the purpose of each tool based on its name.
With 7 tools, the count is reasonable for a mortgage calculation domain, but it feels borderline due to redundancy. The tools cover starters, doorstromers, and advanced cases, but the overlap suggests the set could be consolidated without losing functionality. It's not excessive, but the scope might be slightly over-partitioned.
The tool set covers key mortgage calculation scenarios: starters, doorstromers, interest rates, and advanced setups, with detailed input and output specifications. However, there are minor gaps, such as no explicit tool for updating or deleting calculations, and some tools (e.g., 'bereken_hypotheek_uitgebreid' and 'opzet_hypotheek_uitgebreid') seem to duplicate functionality, which could lead to confusion rather than filling a true gap. Overall, the core workflows are well-covered.
Related MCP Connectors
Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth
MCP server for Product Management
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pace8/mcp-hypotheken-berekenen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server