Koppel je AI-assistent (Claude, ChatGPT of een andere MCP-client) aan Renovatieplanner en vraag in gewone taal naar projecten, woningen, taken, inspecties en formulieren — met je eigen account en rechten.
Dit is het MCP-endpoint (Streamable HTTP, OAuth 2.1):
https://mcp.renovatieplanner.nl/mcp
claude mcp add --transport http renovatieplanner https://mcp.renovatieplanner.nl/mcpnpx @modelcontextprotocol/inspector → Streamable HTTP → dit adres.Na het toevoegen log je in met je Renovatieplanner-account (inclusief tweestapsverificatie). Toegang vereist het AI-abonnement van Renovatieplanner voor jouw organisatie (de AI-koppeling zit daarin). OAuth-discovery: authorization-server · protected-resource
search_projects
get_project
get_project_metrics
list_houses
get_house
search_inspections
get_inspection
get_poi_answers
list_form_results
get_form_result
list_tasks
get_task_stats
get_task_performance
get_task
create_task
update_task
list_forms
get_form
search_form_questions
list_form_external_ids
get_form_question_answers
create_form
extend_form
draft_resident_news
attach_document_to_project
search_changelog
search_projects leestZoek renovatieprojecten op naam, code of plaats. Geeft een gepagineerde lijst met id, naam, code en status.
| Parameter | Type | Omschrijving |
|---|---|---|
query |
string |
Zoektekst (naam, code, omschrijving, plaats) |
status |
'active' | 'concept' | 'archived' |
Projectstatus |
limit |
integerstandaard: 20 |
Maximaal aantal resultaten |
page |
integerstandaard: 1 |
Paginanummer |
get_project leestHaal één project op: adres, status, datums, budget en instellingen.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
get_project_metrics leestDashboardcijfers van één project: woningaantallen, inspectievoortgang, taakaantallen en andere kerncijfers.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
list_houses leestWoningen (objecten) van een project: adres, woningcode voor de bewonersapp, woningtype en inspectiestatus. Bewonersgegevens (namen, telefoonnummers, e-mail) zijn via de koppeling bewust niet op te halen.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
get_house leestHaal één woning op — op id óf op woningcode: adres, codes, woningtype, project en inspectiestatus. Geef precies één van beide mee. Zonder bewonersgegevens.
| Parameter | Type | Omschrijving |
|---|---|---|
house_id |
integer |
Id van de woning |
house_code |
string |
Woningcode (bewonersapp) |
search_inspections leestInspecties en registraties van een project (per woning, met status).
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
get_inspection leestHaal één inspectie op, inclusief locaties en voortgang.
| Parameter | Type | Omschrijving |
|---|---|---|
inspection_id verplicht |
integer |
Id van de inspectie |
get_poi_answers leestMaatregel-antwoorden (POI) van inspecties/registraties in een project: vraag, categorie, waarde en afmetingen per antwoord. Optioneel filteren op woning, categorie of vraag.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
house_id |
integer |
Beperk tot één woning |
category_id |
integer |
Beperk tot één vraagcategorie |
question_id |
integer |
Beperk tot één vraag |
limit |
integerstandaard: 100 |
Maximaal aantal antwoorden |
list_form_results leestIngevulde formulierresultaten. Filter op project, woning of formulier (minstens één filter verplicht).
| Parameter | Type | Omschrijving |
|---|---|---|
project_id |
integer |
Id van het project |
house_id |
integer |
Id van de woning |
form_id |
integer |
Id van het formulier |
page |
integerstandaard: 1 |
Paginanummer |
limit |
integerstandaard: 20 |
Maximaal aantal resultaten |
get_form_result leestHaal één formulierresultaat op: de volledige formulierstructuur met alle antwoorden, foto’s en bestanden.
| Parameter | Type | Omschrijving |
|---|---|---|
result_id verplicht |
integer |
Id van het formulierresultaat |
list_tasks leestTaken van een project met filters: taaktypes (bijv. ["opleveren"] voor opleverpunten), status(sen), alleen te laat, zoektekst, uitvoerder, woning, labels, hoofdstukken, ruimte en einddatum-bereik. Gepagineerd (nieuwste eerst), met datums, status, type, woningen met adres, labels, hoofdstuk en uitvoerder. Voor aantallen: get_task_stats.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
types |
array |
Alleen deze taaktypes, bijv. ["opleveren"] |
status |
'new' | 'planned' | 'inprogress' | 'ready' | 'done' | 'read' | 'in_progress' |
Eén taakstatus: new (Open), planned (Gepland), inprogress (In uitvoering), ready (Klaar) of done (Afgerond) |
statuses |
array |
Meerdere taakstatussen (zelfde waarden) |
overdue |
boolean |
Alleen te-late taken |
search |
string |
Zoektekst |
assignee_id |
integer |
Id van de uitvoerder |
house_id |
integer |
Id van de woning |
label_ids |
array |
Ids van labels |
section_ids |
array |
Ids van hoofdstukken |
room |
'woning' | 'badkamer' | 'keuken' | 'toilet' | 'gevel' | 'begane_grond' | 'eerste_verdieping' | 'tweede_verdieping' | 'zolder' | 'kelder' |
Ruimte (gehele woning, badkamer, keuken, toilet, gevel of een woonlaag) |
due_from |
string |
Einddatum vanaf (JJJJ-MM-DD) |
due_to |
any |
Einddatum tot en met (JJJJ-MM-DD) |
page |
integerstandaard: 1 |
Paginanummer |
limit |
integerstandaard: 25 |
Maximaal aantal taken |
get_task_stats leestAantallen en verdeling van taken over één dimensie (type, naam, ruimte, label, hoofdstuk, discipline, woning, project, status, formuliervraag of uitvoerder), per groep met aantal, open, te laat en afgerond. Opleverpunten = taken van type "opleveren". Zonder project_id over alle projecten die je mag zien.
| Parameter | Type | Omschrijving |
|---|---|---|
group_by verplicht |
'type' | 'name' | 'room' | 'label' | 'section' | 'discipline' | 'house' | 'project' | 'status' | 'formQuestion' | 'assignee' |
Dimensie om op te groeperen |
project_id |
integer |
Id van het project (optioneel) |
house_id |
integer |
Id van de woning (optioneel) |
types |
array |
Alleen deze taaktypes, bijv. ["opleveren"] |
statuses |
array |
Alleen deze statussen: new (Open), planned, inprogress, ready, done |
overdue |
boolean |
Alleen te-late taken |
created_from |
string |
Aangemaakt vanaf (JJJJ-MM-DD) |
created_to |
any |
Aangemaakt tot en met (JJJJ-MM-DD) |
limit |
integerstandaard: 25 |
Aantal groepen |
get_task_performance leestTakendashboard: percentage taken dat op tijd is afgehandeld (op Klaar of Afgerond gezet op of vóór de deadline), de KPI-doelen van de organisatie met uitkomst, verloop per week of maand, verdeling per taaktype en per uitvoerder (intern/extern met bedrijfsnaam). Standaard de laatste 90 dagen; zonder project_id over alle projecten die je mag zien, met project_id over dat project met zijn eigen KPI's.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id |
integer |
Id van het project (optioneel) |
types |
array |
Alleen deze taaktypes voor de cijfers; KPI's houden hun eigen typen |
section_ids |
array |
Alleen deze hoofdstukken (ook voor de KPI's) |
project_statuses |
array |
Zonder project_id: alleen projecten met deze statussen (concept, active, archived) |
from |
string |
Deadline vanaf (JJJJ-MM-DD), standaard 90 dagen terug |
to |
any |
Deadline tot en met (JJJJ-MM-DD), standaard vandaag |
all |
boolean |
Alle taken met een deadline, ongeacht de periode |
get_task leestHaal één taak op, inclusief omschrijving, datums, woningen, uitvoerder en status.
| Parameter | Type | Omschrijving |
|---|---|---|
task_id verplicht |
integer |
Id van de taak |
create_task schrijftMaak een taak aan in een project. Datums zijn optioneel; de duur is in werkdagen en de einddatum berekent Renovatieplanner zelf. Optioneel met woningen (één instantie per woning) en een uitvoerder. Taken zijn standaard onzichtbaar voor bewoners; voor een bewonersplanning geef je visible_to_residents mee.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
name verplicht |
string |
Naam van de taak |
description |
string |
Omschrijving |
start_date |
string |
Startdatum (JJJJ-MM-DD) |
duration_days |
integer |
Duur in werkdagen |
deadline_date |
string |
Harde deadline (JJJJ-MM-DD) |
house_ids |
array |
Woning-ids (één taakinstantie per woning) |
assignee_user_id |
integer |
Id van de uitvoerder |
type |
'wkb' | 'standard' | 'werkbon' | 'planning' | 'afspraak' | 'project' | 'onboarding' | 'opleveren' | 'bewoner' | 'kyp'standaard: "planning" |
Taaktype; "opleveren" voor een opleverpunt, standaard "planning" |
visible_to_residents |
boolean |
Zichtbaar voor bewoner in de bewonersapp (standaard uit) |
update_task schrijftWerk een taak bij: naam, omschrijving, status, startdatum, duur (werkdagen), deadline, zichtbaarheid voor bewoners of de titel die bewoners zien. Geef alleen de velden mee die je wilt wijzigen.
| Parameter | Type | Omschrijving |
|---|---|---|
task_id verplicht |
integer |
Id van de taak |
name |
string |
Nieuwe naam |
description |
string |
Nieuwe omschrijving |
status |
'new' | 'planned' | 'inprogress' | 'ready' | 'done' | 'read' | 'in_progress' |
Nieuwe status |
start_date |
string |
Nieuwe startdatum (JJJJ-MM-DD) |
duration_days |
integer |
Nieuwe duur in werkdagen |
deadline_date |
any |
Nieuwe deadline (JJJJ-MM-DD), of null om te wissen |
visible_to_residents |
boolean |
Zichtbaar voor bewoner aan (true) of uit (false) |
resident_title |
any |
Titel zoals de bewoner hem ziet, of null om te wissen |
list_forms leestLijst van de formuliersjablonen van je organisatie (bibliotheek, geen projectkopieën): id, naam, map, aantal hoofdstukken, vergrendelstatus en aantal resultaten.
| Parameter | Type | Omschrijving |
|---|---|---|
search |
string |
Filter op formuliernaam |
get_form leestStructuur van één formulier: hoofdstukken (met hun ruimte, als die is gezet) en de vragen daarin (type, verplicht, toelichting, voorinvul-bron, opties, extern ID). Geen antwoorden.
| Parameter | Type | Omschrijving |
|---|---|---|
form_id verplicht |
integer |
Id van het formulier |
search_form_questions leestZoek formuliervragen op tekst of extern ID over alle bereikbare formulieren heen (bibliotheek én projectkopieën). Vragen met hetzelfde externe ID worden daarop gegroepeerd, de rest op dezelfde tekst en hetzelfde type; per groep het externe ID, alle vraag-id's, de formulieren en projecten waarin ze voorkomen en het aantal antwoorden. Meerdere zoektermen vangen dezelfde vraag in andere bewoordingen.
| Parameter | Type | Omschrijving |
|---|---|---|
terms verplicht |
array |
Zoekwoorden, -zinnen of (een deel van) een extern ID (één ervan moet voorkomen) |
types |
array |
Beperk tot vraagtypen, bv. number en radio voor een cijfer 1-10 |
project_id |
integer |
Alleen formulieren van dit project |
limit |
integerstandaard: 25 |
Maximaal aantal groepen |
list_form_external_ids leestDe externe ID's die je organisatie op formuliervragen heeft gezet (vraag-editor, veld Extern ID): per ID de vraagtekst(en), het type, de opties, alle vraag-id's, de formulieren en projecten waarin de vraag voorkomt en het aantal antwoorden. Een extern ID is de betrouwbare manier om één vraag over formulieren en projecten heen te volgen; geef het door aan Antwoorden per vraag.
| Parameter | Type | Omschrijving |
|---|---|---|
search |
string |
Filter op (een deel van) het externe ID of de vraagtekst |
project_id |
integer |
Alleen formulieren van dit project |
get_form_question_answers leestDe losse antwoorden op formuliervragen over alle bereikbare resultaten: op extern ID (alle kopieën van de vraag met dat ID, over formulieren en projecten heen) of op vraag-id (bv. alle id's van een groep uit Formuliervragen zoeken). Per antwoord de weergave en de getalwaarde, met het woningadres of project; daarbij een samenvatting (aantal, gemiddelde, minimum, maximum, verdeling), optioneel per project, formulier, vraag of maand.
| Parameter | Type | Omschrijving |
|---|---|---|
question_ids |
array |
Vraag-id's (maximaal 50), als er geen extern ID is |
external_id |
string |
Extern ID van de vraag (zie Externe ID's van formuliervragen); vervangt question_ids |
project_id |
integer |
Alleen resultaten van dit project |
from |
string |
Resultaten vanaf deze datum (JJJJ-MM-DD) |
to |
any |
Resultaten tot en met deze datum (JJJJ-MM-DD) |
submitted_only |
booleanstandaard: true |
Alleen ingediende resultaten (standaard aan) |
group_by |
'question' | 'form' | 'project' | 'month' |
Samenvatting per vraag, formulier, project of maand |
include_rows |
booleanstandaard: true |
Ook de losse antwoorden teruggeven (standaard aan) |
page |
integerstandaard: 1 |
Paginanummer van de losse antwoorden |
limit |
integerstandaard: 100 |
Aantal losse antwoorden per pagina |
create_form schrijftMaak een nieuw formulier in de bibliotheek. Óf met een beschrijving in gewone taal (de AI van Renovatieplanner ontwerpt het en kijkt naar je eigen formulieren), óf met een exacte structuur van hoofdstukken en vragen — bijvoorbeeld overgenomen uit een PDF- of Word-formulier dat je aan de assistent geeft. Het resultaat is een gewoon, bewerkbaar formulier.
| Parameter | Type | Omschrijving |
|---|---|---|
name |
string |
Naam van het formulier (verplicht bij een structuur) |
description |
string |
Beschrijving voor de AI, in het Nederlands |
categories |
array |
Hoofdstukken (naam, optioneel de ruimte en "toon alleen bij") met vragen (naam, type, verplicht, opties, optioneel voorinvullen en "toon alleen bij"); type task = opleverpunten die taken worden |
folder_id |
integer |
Map in de bibliotheek; standaard de eerste map of een nieuwe map Algemeen |
extend_form schrijftVoeg hoofdstukken en/of vragen toe aan een bestaand formulier. Alleen toevoegen: bestaande hoofdstukken en vragen blijven staan. Met een beschrijving (AI) of een exacte structuur.
| Parameter | Type | Omschrijving |
|---|---|---|
form_id verplicht |
integer |
Id van het formulier |
description |
string |
Beschrijving van wat erbij moet |
categories |
array |
Hoofdstukken (naam, optioneel de ruimte en "toon alleen bij") met vragen om toe te voegen (optioneel voorinvullen en "toon alleen bij") |
draft_resident_news schrijftMaak een CONCEPT-bewonersnieuwsbericht voor een project (Nederlandse inhoud; wordt niet gepubliceerd — een gebruiker beoordeelt en publiceert het in Renovatieplanner). Geeft een link naar het concept.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
title verplicht |
string |
Titel van het bericht |
content verplicht |
string |
Inhoud (HTML of platte tekst, in het Nederlands) |
attach_document_to_project schrijftUpload een document (base64) naar de tab Documenten van een project. Maximaal ±10 MB.
| Parameter | Type | Omschrijving |
|---|---|---|
project_id verplicht |
integer |
Id van het project |
filename verplicht |
string |
Bestandsnaam |
content_base64 verplicht |
string |
Bestandsinhoud als base64 |
description |
string |
Omschrijving |
mime_type |
stringstandaard: "application/octet-stream" |
MIME-type van het bestand |
search_changelog leestDoorzoek de productchangelog van Renovatieplanner: welke release wijzigde wat, en wanneer. Per versie gegroepeerd op rubriek. Zonder filters krijg je de nieuwste releases. Alleen voor superadmins.
| Parameter | Type | Omschrijving |
|---|---|---|
source |
'platform' | 'app'standaard: "platform" |
platform = web app and API (default); app = the mobile field app renovatieplanner.app |
query |
string |
Zoektekst in de changelogregels |
version |
string |
Exacte versie, bijv. 1.120.0 |
category |
string |
Rubriek: Toegevoegd, Gewijzigd, Opgelost, Verwijderd, Beveiliging of Verouderd |
since |
string |
Uitgebracht op of na (JJJJ-MM-DD) |
until |
string |
Uitgebracht op of vóór (JJJJ-MM-DD) |
limit |
integerstandaard: 10 |
Maximaal aantal versies |