Wat een AI-agent echt met jouw accommodatie kan doen
De HolidayHero MCP server is algemeen beschikbaar. De volledige toolslijst, het rechtenmodel, de audit trail, en een eerlijk verhaal over wat nog niet klaar is.

Bijna alles wat er over het Model Context Protocol in hospitality geschreven wordt, legt uit wat het protocol is. Dat doe ik in drie zinnen. De rest van dit artikel gaat over de vraag die operators mij echt stellen: wat een agent kan doen met een draaiende accommodatie, en wat niet.
Vandaag wordt de HolidayHero MCP server algemeen beschikbaar. Je zet hem zelf aan, in je adminpaneel, en hij zit zonder meerkosten in het platform. De volledige toolslijst, het rechtenmodel en de koppelstappen staan op support.holidayhero.com/api/mcp, zonder formulier ervoor.
Dit is het grootste oppervlak dat we ooit hebben opengezet. Geen read-only venster op reserveringen. Bijna het hele adminpaneel, als tools.
Het Model Context Protocol, in drie zinnen
Het Model Context Protocol is een open standaard waarmee een AI-assistent tools kan aanroepen in het systeem van iemand anders. Een leverancier draait een MCP server die een lijst met tools publiceert; een operator koppelt een assistent en die roept de tools namens hem aan. Dat is het hele idee.
Het protocol is niet het interessante deel. De toolslijst wel.
Wat operators als eerste vroegen
We hebben dit voor vandaag al opengezet voor een handvol klanten, en de eerste verzoeken waren niet wat ik verwachtte. Niemand vroeg om een autonome conciërge. Ze vroegen om de klussen die niemand wil.
"Zoek de reserveringen die deze week aankomen zonder telefoonnummer." Een boeking zonder mobiel nummer kan geen check-in link krijgen, geen deurcode en geen WhatsApp-bericht. Niemand merkt het, totdat de gast voor de deur staat. De agent leest de aankomsten van die week via reservation_list, geeft de gaten terug en opent met task_create een taak op elke boeking.
"Schrijf de dienstoverdracht." Nu wordt die aan het eind van een lange dienst geschreven door iemand die naar huis wil, precies het moment waarop hij slecht wordt geschreven. De agent leest de dag via conversation_list en task_list, kijkt in checkin_list wat er nog openstaat, en levert een concept dat de dienstdoend manager corrigeert in plaats van opstelt.
"Maak mijn maandrapportage." Iemand doet dit in een spreadsheet, elke eerste maandag van de maand. De agent haalt de maand op uit reserveringen, check-ins, taken en experiences, en schrijft het uit.
Geen van deze dingen is nieuw. Alles zit al in het platform, en alles doet iemand van je team nu al klikkend. Wat de MCP server verandert, is wie er klikt.
Wat een agent op een dinsdagochtend doet
De receptie opent om acht uur. De agent begint om zeven uur, aan de wachtrij van de nacht.
Elk gesprek uit e-mail, gastapp-chat, sms en WhatsApp kwam terwijl de accommodatie sliep binnen in één filterbare wachtrij, met de reservering naast elke thread. Onze eigen AI beantwoordde 94% daarvan zonder mens. De agent leest die wachtrij met conversation_list zoals een dienstdoend manager dat zou doen. De rest valt uiteen in twee soorten.
Sommige gesprekken zijn bewust aan een mens gegeven. Die komen binnen met een interne notitie die onze AI al heeft geschreven: wat de gast vroeg, wat er geprobeerd is, wat er beslist moet worden. Wie het oppakt, erft context in plaats van scrollback. Een agent net zo. Hij leest de notitie, controleert de reservering en schrijft een concept-antwoord voor de dienstdoend manager, of stuurt er zelf een met conversation_message_send. Dat hangt af van hoeveel ruimte je hem hebt gegeven.
De tweede soort is degene die ik zou houden als ik er maar één mocht houden.
Als onze AI de vraag van een gast niet kan beantwoorden, gokt hij niet en escaleert hij niet zomaar. Hij maakt een taak aan: breid de content in de gastapp uit, zodat de volgende gast die het vraagt wel een echt antwoord krijgt. Of de slagboom van de parkeerplaats na middernacht een code nodig heeft. Welk van de twee stranden in september een badmeester heeft. Over een maand worden die taken een ongewoon eerlijk document. Een lijst, geschreven door je gasten, van alles wat jouw accommodatie nooit helemaal heeft uitgelegd. Het is nooit urgent, niemand komt eraan toe, en daarom blijft dezelfde vraag binnenkomen.
Een agent die via MCP gekoppeld is, kan die lijst wegwerken. Hij leest de open taken met task_list, leest het gesprek achter elke taak, schrijft de ontbrekende sectie met guidebook_update en laat met task_note_create een notitie achter op de taak, zodat een mens hem kan goedkeuren. Het gat dicht zichzelf, in een tempo waar niemand de middagen voor heeft.
Jouw eigen AI kan de wachtrij wegwerken van dingen die onze AI niet wist. Dat is het argument waarmee ik zou beginnen als ik dit intern moest uitleggen.
De volledige toolslijst
De canonieke versie staat op support.holidayhero.com/api/mcp en blijft actueel als de server verandert. Dit is de vorm ervan.
| Gebied | Wat een agent kan doen |
|---|---|
| Listings | listing_list, listing_get, listing_create, listing_update, plus attach-tools voor amenities, guidebooks, experiences, aankondigingen en smart devices, sectie-updates, afbeeldingen en documenten |
| Reserveringen | reservation_list, reservation_get, reservation_create, reservation_update, en documenttools |
| Check-ins | checkin_list, checkin_get, checkin_update, checkin_mark_no_show, checkin_unmark_no_show |
| Gastuitnodigingen | invitation_list, invitation_get, invitation_create, invitation_update, invitation_delete |
| Gesprekken | conversation_list, conversation_get, conversation_message_send, conversation_update |
| Taken | task_list, task_get, task_create, task_update, task_note_create |
| Amenities | amenity_list, amenity_get, amenity_create, amenity_update, amenity_delete, afbeeldingen en documenten |
| Guidebooks | guidebook_list, guidebook_get, guidebook_create, guidebook_update, guidebook_delete, afbeeldingen en documenten |
| Aankondigingen | announcement_list, announcement_get, announcement_create, announcement_update, announcement_delete |
| Agenda-items | calendar_event_list, calendar_event_get, calendar_event_create, calendar_event_update, calendar_event_delete, afbeeldingen en documenten |
| Experiences | experience_list, experience_get, experience_create, experience_update, experience_delete, experience_host_note_create, afbeeldingen en documenten |
| Experience-producten | experience_product_create, experience_product_update, experience_product_delete, experience_products_reorder, veldtools, vat_rate_list |
| Places | places_search, place_get |
| Brands | brand_list, brand_get, brand_create, brand_update, brand_delete, brand_art_direction_detect |
| Uploads | upload_target_create |
Lees die lijst goed voordat je iets koppelt. Hij maakt aan, werkt bij en verwijdert. Een agent die een guidebook kan schrijven, kan er ook een verwijderen. Dit is een werkoppervlak, geen etalage, en je geeft het uit zoals je een nieuwe medewerker op zijn eerste ochtend toegang geeft.
Het rechtenmodel
Er is geen tweede rechtensysteem om te leren, en dat is bewust.
Operator zijn is niet genoeg. Een operator moet expliciet als MCP-gebruiker worden toegevoegd voordat hij überhaupt een koppeling kan maken. Niemand krijgt AI-toegang vanzelf omdat hij toevallig een login heeft.
De agent draait op de rechten van die persoon. Elke aanroep wordt tegen exact dezelfde regels gecontroleerd als het adminpaneel. Wat in het paneel geweigerd zou worden, wordt ook voor de agent geweigerd. Er glipt niets doorheen omdat het via MCP binnenkwam.
Eén koppeling, één workspace. Een client die aan workspace A gekoppeld is, ziet workspace B niet, ook niet als dezelfde operator bij allebei hoort.
Toolstoegang is niet per connector af te bakenen. Een gekoppelde client kan bij elke tool uit de lijst hierboven, waarbij elke aanroep tegen de rechten van de operator wordt gecontroleerd. Wil je dat een agent minder kan, geef hem dan de inloggegevens van iemand die minder kan. Toolstoegang per connector afbakenen staat als volgende op de lijst, en dat zeg ik liever hardop dan dat iemand aanneemt dat het er al is.
Wat jouw team niet mag, mag de agent ook niet. Dat is het hele model.
De audit trail
Elke tool-aanroep gaat naar een audit trail, geslaagd of niet, met de tool, de connector waar hij vandaan kwam, de input en hoe lang hij duurde. Er gebeurt niets onzichtbaar.
Eén eerlijke beperking: die log staat nog niet in het adminpaneel. Wil je hem vandaag inzien, vraag het support en wij halen hem eruit. Hem in het paneel zetten is dichtbij, en het had tegelijk met dit moeten meekomen. Dat is niet gebeurd.
Aanzetten
Drie stappen, en niemand van ons is erbij betrokken.
- Adminpaneel, pagina MCP, Enable. Kopieer de Endpoint URL.
- Maak een connector aan, vernoemd naar de client en het apparaat waar hij bij hoort. Kopieer de Client ID en het Client secret. Het secret wordt één keer getoond en is niet terug te halen, alleen te vervangen.
- Open in Claude Settings → Connectors, voeg een custom connector toe met de endpoint URL, en log in met de ID en het secret.
Claude is op dit moment de enige client waarvan de sign-in callback op de allowlist staat. Andere werken zodra hun callback overeenkomt, en dan melden we dat hier.
Vraag hem daarna om de aankomsten van morgen, en kijk wat er terugkomt.
Wat er misging
We bouwden MCP servers voor onszelf, lang voordat we er een voor klanten bouwden. Ons productboard, onze salespijplijn en onze marketingsite lopen er allemaal doorheen, en teruggaan naar klikken begon absurd te voelen.
Schoon ging het niet. Een agent die op ons eigen productboard werkte, kreeg de opdracht een backlog op te ruimen en archiveerde een kolom werk die nog liep, omdat een filter dat ik had geschreven meer teruggaf dan ik bedoelde. Er ging niets verloren en de audit trail liet precies zien wat er gebeurd was. Maar het was ons board en niet iemands accommodatie, en het besliste intern een discussie.
Het protocol was het makkelijke deel. Ongeveer een week. Het moeilijke deel was beslissen waar een agent bij mag, en daar bestaat geen specificatie voor. Het is een oordeel over je eigen bedrijf, tool voor tool, en je ontdekt dat je het fout had door het fout te zien gaan.
Wat nog niet klaar is
Drie dingen, zodat je ze van mij hoort.
De audit log staat nog niet in het adminpaneel. Toolscoping per connector bestaat niet, dus vandaag is het model de rechten van de operator en niets fijnmaziger. En de agent heeft geen event triggers: hij handelt als je het vraagt, dus hij kan niet wakker worden omdat er een gastbericht binnenkwam. Die laatste weegt het zwaarst, want de wachtrij met contentgaten wegwerken is precies de klus die je vanzelf zou willen laten lopen. Vandaag moet je het nog vragen.
Alle drie staan ze op de lijst. Als ze er zijn, verschijnen ze hier, in de week dat ze er zijn, net als al het andere.
Veelgestelde vragen
Wat is een MCP server, en waarom zou een hotel er een willen?+
Kan ik mijn accommodatie aan Claude of ChatGPT koppelen?+
Is het veilig om een AI-agent toegang tot gastgegevens te geven?+

Hjalte is CEO and co-founder of HolidayHero, an Amsterdam-based platform that runs the whole guest stay for hotels, holiday parks, hostels, aparthotels and short-term rentals. He also runs a rental property himself, which is a decent cure for building features nobody asked for. Most of his writing here is product: new integrations, guest registration and compliance work, and the reasoning behind decisions that show up in your account a few weeks later.
Lees verder

