# RenovatiePrijsCheck calculator tools Deterministic arithmetic for renovation budgets in Vlaanderen. Currency EUR; version 2026-10-14.3. No AI requests, paid model, registration or storage of calculation inputs. Technical abuse counters are transient. This document is for agent discovery and does not appear in visitor navigation or the public sitemap. ## MCP Remote server: https://renovatieprijscheck.be/mcp/ Transport: Streamable HTTP. No API key on the public domain. The private Sites copy retains its existing owner access. Protocols: 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26. Legacy: initialize, notifications/initialized, tools/list, tools/call. No persistent session or SSE stream. Modern: server/discover; MCP-Protocol-Version and Mcp-Method headers must match the request. Include params._meta with io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientInfo {name,version}, and io.modelcontextprotocol/clientCapabilities {}. For tools/call also send Mcp-Name matching params.name. Send Content-Type: application/json and Accept: application/json, text/event-stream. Example client configuration (names vary by client): { "mcpServers": { "renovatieprijscheck": { "url": "https://renovatieprijscheck.be/mcp/" } } } list_cost_calculators accepts {} and returns all schemas and examples. Available calculation tools: - calculate_schilderwerken: Bereken gratis de prijs van binnenschilderwerk voor muren en plafonds. Bekijk je prijsvork, oppervlakte, btwscenario en inbegrepen voorbereiding. - calculate_pleisterwerken: Bereken de kosten van binnenpleisterwerk op muren. Gratis calculator met prijs per m², btwscenario, prijsopbouw en budgetreserve. - calculate_vloer_leggen: Bereken materiaal en legloon voor laminaat, vinyl, parket of tegels. Houd rekening met snijverlies, dozen, afbraak en btw. - calculate_gyproc: Bereken gratis een richtprijs voor een gipskartonwand of vals plafond. Bekijk de prijs per m², je btwscenario en nog te bevestigen afwerking. - calculate_binnendeuren: Bereken deurbladen en montage voor nieuwe binnendeuren. Gratis calculator met aantallen, materiaalkeuze, btw en afzonderlijke bijkomende kosten. - calculate_dak_renovatie: Bereken de kosten van een hellend of plat dak. Kies nieuwe dakbedekking of renovatie inclusief isolatie en bekijk oppervlakte, btw en prijsopbouw. - calculate_dakisolatie: Bereken dakisolatie tussen de kepers, sarking of sarking met nieuwe dakbedekking. Gratis calculator met prijs per m², btw en prijsopbouw. - calculate_gevelisolatie_crepi: Bereken crepi met of zonder buitenisolatie. Trek raamopeningen af en begroot gevelherstel en een bekend stellingbudget afzonderlijk. - calculate_ramen_vervangen: Bereken nieuwe ramen uit aantal, breedte, hoogte, materiaal en dubbel of driedubbel glas. Levering en basisplaatsing worden apart getoond. - calculate_terras_oprit: Bereken klinkers, betontegels of kasseien voor een terras of oprit. Vergelijk nieuwe en bestaande fundering en bekijk prijsopbouw en btw. - calculate_badkamer_renovatie: Bereken tegelwerk, waterdichting, sanitair en elektriciteit voor je badkamer. Voeg eigen materiaal- en leidingbudgetten toe en bekijk de btw per post. - calculate_keuken_renovatie: Bereken je keukenbudget met kasten, toestellen, montage, leidingen, elektriciteit, vloer en spatwand. Eigen materiaalprijzen en duidelijke afzonderlijke posten. - calculate_elektriciteit_vernieuwen: Bereken herbedrading per kamer of losse elektrische punten, zekeringkast en keuring. Bekijk de prijsopbouw zonder werkposten dubbel te tellen. - calculate_ventilatie: Vergelijk het investeringsbudget voor ventilatie C, C+ en D. Bereken apart stroom, onderhoud en gebruikskosten met je eigen verbruiksgegevens. - calculate_totaalrenovatie: Combineer renovatiewerken per ruimte tot één budget. Vervang ramingen door offertes, voorkom overlappende posten en voeg één gezamenlijke reserve toe. Example tools/call after legacy initialization: { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "calculate_schilderwerken", "arguments": { "wallArea": 40.8, "ceilingArea": 20, "vatRate": "21", "extraBudget": 0, "reservePercent": 0 } } } ## JSON API GET https://renovatieprijscheck.be/api/calculators/ returns the catalogue. GET https://renovatieprijscheck.be/api/calculators/{id}/ returns a strict schema and example. POST to the same calculator URL calculates the budget. OpenAPI 3.1: https://renovatieprijscheck.be/openapi.json Every schema field is required. Additional fields are rejected. Numbers must be finite JSON numbers; booleans are actual booleans. Do not infer missing values from defaults. Maximum request body: 16 KiB. Do not send names, addresses, photos or dossier data. Example request: POST https://renovatieprijscheck.be/api/calculators/schilderwerken/ Content-Type: application/json { "wallArea": 40.8, "ceilingArea": 20, "vatRate": "21", "extraBudget": 0, "reservePercent": 0 } ## Rate limiting Calculator API and MCP share 60 requests per IP per 60 seconds. All non-OPTIONS requests to those endpoints count, including catalogue, schemas, MCP discovery, invalid requests and calculations. Changing calculator, endpoint, user agent or body does not create a new allowance. The Vercel firewall enforces the public limit before application execution across server instances. The owner-private Sites copy has an additional bounded per-worker fallback; it is not a globally distributed exact quota. HTTP 429 means pause and retry. Application rejections include Retry-After in seconds, RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds until reset). Edge rejections may have a different body or no Retry-After; wait 60 seconds in that case. Use backoff with jitter; never retry in a tight loop. Browser calculators execute locally and are unaffected. ## Total renovation calculate_totaalrenovatie accepts 1–20 packages. Each has calculator, location, input, quoteNet and quoteVatRate. All nested input fields are required. Set nested extraBudget and reservePercent to 0 and add them once at the total level. Use the same location name for the same room or building part; * means the whole home. Overlapping work tags in the same location are rejected. Different names for the same room and partially overlapping quotes cannot be recognized automatically. quoteNet null uses the estimate. A positive net quote replaces the entire package; quoteVatRate is 6 or 21. Nested input then specifies scope for overlap checks. No recursive total-renovation packages. Ventilation running costs are never added to the renovation investment. { "packages": [ { "calculator": "schilderwerken", "location": "woonkamer", "input": { "wallArea": 40.8, "ceilingArea": 20, "vatRate": "21", "extraBudget": 0, "reservePercent": 0 }, "quoteNet": null, "quoteVatRate": "21" } ], "extraBudget": 0, "reservePercent": 0 } ## Results total.min/max include chosen VAT scenarios, known extra costs and one reserve. lines contain quantity, unit, unitPrice, net, vatRate and gross. quantities contains geometric or usage information where relevant. Read excluded and notes along with the numbers. Include version and chosen VAT scenario in your answer. Scope: indicative_base_budget. This is an indicative estimate, not an offer, guaranteed maximum, technical design, tax assessment or measured market average. A zero unknown budget is not proof that a service is free. Editable material and energy values are user scenarios. sources and sourceUrl are not part of the public contract. ## Example input schema { "type": "object", "additionalProperties": false, "properties": { "wallArea": { "type": "number", "description": "Te schilderen muren — m²", "default": 40.8, "minimum": 0, "maximum": 2000 }, "ceilingArea": { "type": "number", "description": "Te schilderen plafond — m²", "default": 20, "minimum": 0, "maximum": 2000 }, "vatRate": { "type": "string", "description": "Btwscenario voor de werken — 6% volgt niet automatisch uit de ouderdom van je woning. Laat het tarief per post bevestigen door je aannemer.", "default": "21", "enum": [ "21", "6" ] }, "extraBudget": { "type": "number", "description": "Bekende bijkomende kosten, inclusief btw — € — Vul alleen een bekend bedrag in. Nog onbekende kosten blijven buiten deze basisraming.", "default": 0, "minimum": 0, "maximum": 100000 }, "reservePercent": { "type": "number", "description": "Eigen gekozen budgetreserve — % — Deze reserve komt apart bovenop het berekende budget. Ze garandeert geen dekking van alle meerwerken.", "default": 0, "minimum": 0, "maximum": 50 } }, "required": [ "wallArea", "ceilingArea", "vatRate", "extraBudget", "reservePercent" ] }