← Terug naar alle artikelen

Verbind Claude of ChatGPT met je reserveringen — micali.online heeft nu een MCP-server

#MCP #Claude #ChatGPT #AI #reserveringssysteem #integraties #automatisering
Verbind Claude of ChatGPT met je reserveringen — micali.online heeft nu een MCP-server

Je opent Claude of ChatGPT en typt "wie heeft de zaterdagcursus nog niet betaald?" — en krijgt een lijst met namen en telefoonnummers terug. Niet inloggen in de app, niet doorklikken langs evenementen en reserveringen. Precies dat maakt micali.online vanaf nu mogelijk.

Daarachter zit MCP — Model Context Protocol. Het is een open standaard die precies één ding oplost: hoe een AI-assistent veilig bij een andere applicatie naar binnen kan. Niet door hem een wachtwoord te geven, en niet door ergens een export naartoe te kopiëren. Wel doordat de applicatie zelf een lijst bekendmaakt van dingen die gedaan kunnen worden, en de assistent daaruit kiest — met jouw aanmelding en binnen jouw rechten.

micali.online heeft nu een eigen MCP-server. Dit artikel vertelt precies wat hij weet, wat hij bewust niet weet, en waarom we het zo hebben opgezet.

Zo maak je verbinding

Het zijn drie stappen, en het duurt minder dan een minuut.

  • Je vertelt je assistent dat je een MCP-server wilt verbinden, en stuurt hem het adres https://mcp.micali.online — helemaal, zonder iets erachter. Er wordt nergens doorgeklikt en er hoeft niets in instellingen te worden gezocht; het opschrijven is genoeg. Je vindt het adres ook in de app onder Profiel → AI-verbindingen, met een knop om het te kopiëren.
  • Onze inlogpagina wordt geopend. Je vult je e-mailadres in, er komt een 6-cijferige code, die je overtypt. Het is precies dezelfde aanmelding als in de app — geen nieuw wachtwoord, geen API-sleutel die je ergens zou moeten bewaren.
  • Klaar. Vanaf dat moment ziet de assistent je accounts, en kun je vragen gaan stellen.

Nergens in dat proces ontstaat een geheim dat je zou moeten bewaken. Dat is bewust zo: een API-sleutel die in een chat wordt geplakt, is een sleutel die voor altijd in de gespreksgeschiedenis blijft staan.

Wat je kunt vragen als je een account beheert

We hebben de assistent twaalf tools gegeven. Het zijn geen commando's die je moet leren — de assistent kiest er zelf uit, op basis van waar je in gewone taal naar vraagt. Maar het is alleen eerlijk om op te schrijven wat er in die lijst staat, want dat is precies de omtrek van wat de AI over je account te weten kan komen:

  • Evenementen en tijdstippen — een lijst met evenementen met hoe vol elk tijdstip is, en de volledige instelling van één evenement: capaciteit, deadlines, betalingen, bevestiging.
  • Reserveringen — wie voor welk tijdstip is ingeschreven, met contactgegevens en de status bevestigd / betaald / was aanwezig. Kan worden versmald tot één datum, of alleen tot de onbetaalde of onbevestigde.
  • Wachtlijst — wie wacht op een vrijkomende plek, te beginnen bij wie het langst wacht.
  • Bezoekers — zoeken op naam, e-mail of telefoon, en daarna het profiel van één persoon, inclusief diens prepaidpakketten en meest recente reserveringen.
  • Prepaidpakketten — wat je verkoopt, voor hoeveel, met welke limiet en hoeveel mensen het op dit moment hebben.
  • Diensten en bestellingen — welke diensten je aanbiedt en wie daarvoor in een bepaalde periode een tijdstip heeft besteld.
  • Wijzigen van de status van een reservering — bevestigd, betaald, was aanwezig.
  • Een reservering annuleren namens de klant.

Tien van die twaalf tools lezen alleen. Er kunnen twee dingen worden gewijzigd: de status van een reservering en het annuleren ervan. Dat is geen toeval — het volgende hele hoofdstuk gaat precies daarover.

Concreter gezegd, zijn het vragen zoals: "hoeveel plekken zijn er volgende week nog vrij?", "heeft Nováková nog beurten over op haar prepaidpakket?", "wie van de vrijdagcursus kwam de vorige keer niet opdagen?", "markeer Peters zaterdag als betaald". De assistent vindt zelf het account, het evenement en de reservering; je hoeft ze niet met ID's te benoemen.

Wat je kunt vragen als je klant bent

De MCP-server heeft ook een tweede gezicht. Als je bezoeker bent — dus iemand die bij een organisator reserveert — verbind je je op precies dezelfde manier en krijg je vijf tools voor jezelf:

  • een lijst van de organisaties waarbij je geregistreerd bent,
  • je eigen reserveringen — zowel evenementen als bestelde diensten, standaard alleen de aankomende,
  • je prepaidpakketten, met hoeveel beurten je hebt gebruikt en hoeveel je er nog over hebt,
  • het zoeken naar tijdstippen die je kunt reserveren, met het aantal vrije plekken erbij,
  • het annuleren van je eigen reservering — met inachtneming van de deadline die de organisator heeft ingesteld.

"Wat heb ik volgende week geboekt?" of "hoeveel beurten heb ik nog over?" is een vraag waarvoor niemand een website zou moeten hoeven openen.

Wat de assistent bewust niet weet

Dit gedeelte vinden we belangrijker dan de lijst met functies. AI toegang geven tot klantgegevens is een beslissing die duidelijke grenzen moet hebben — en die grenzen zijn uit te leggen.

De assistent ziet nooit meer dan jij. Het aanmeldtoken zegt alleen wie je bent; het zegt niets over wat je mag zien. Elke tool controleert daarom bij elke afzonderlijke aanroep opnieuw of je het betreffende account ook echt beheert. Zoiets als "het op dit moment geopende account" waarop je zou kunnen vertrouwen, bestaat niet — en dus is er ook geen manier om je met een vraag naar binnen te praten bij een account van iemand anders.

Teamleden staan voorlopig uit. Als iemand in je account de rol teamlid heeft, ziet hij in de app alleen de evenementen en diensten die je hem hebt toegewezen. Die beperking zou in elke afzonderlijke tool apart moeten worden ingebouwd — en het zou genoeg zijn om het in één databasequery te vergeten, om hem de reserveringenlijst van iemand anders te laten zien. Zolang dat niet native in de tools is ingebouwd, krijgt hij bij het verbinden een duidelijke foutmelding in plaats van halfwerkende toegang. Liever uitgeschakeld dan bijna goed.

Onomkeerbare acties zijn gemarkeerd als onomkeerbaar. Het MCP-protocol laat elke tool aangeven of hij alleen leest, of het effect ervan ongedaan kan worden gemaakt, en of hij destructief is. Het annuleren van een reservering is gemarkeerd als destructief — daarmee verwijderen we een rij, sturen we de klant een bericht, en bieden we de vrijgekomen plek meteen aan de eerste persoon op de wachtlijst aan. Dankzij die markering vragen zowel Claude als ChatGPT vooraf om bevestiging. Bovendien staat er in de beschrijving van de tool zelf de instructie dat de assistent je eerst de naam van de klant en de datum van het evenement moet voorlezen en op uitdrukkelijke bevestiging moet wachten.

We zien je gesprekken niet. De assistent draait op je eigen Claude- of ChatGPT-abonnement en praat rechtstreeks met je. Aan onze kant zien we alleen de afzonderlijke tool-aanroepen die bij ons binnenkomen — dus hetzelfde als wat we zouden zien als je in de app zou klikken. De tekst van je vragen of van de antwoorden bereikt ons nooit.

Aanmelden en verbinding verbreken

Toegang die je niet met één druk op de knop kunt intrekken, is geen fatsoenlijke toegang. In de app vind je onder Profiel de sectie AI-verbindingen: een lijst van alle verbonden assistenten met de datum van verbinden en laatste gebruik, en bij elk een knop Verbinding verbreken.

Verbinding verbreken gebeurt onmiddellijk en heeft alleen betrekking op die ene connector — je aanmelding in de browser en je overige verbindingen blijven ongemoeid. Dezelfde sectie bestaat ook voor bezoekers, op hun profiel.

Het toegangstoken is vijf uur geldig, en de assistent vernieuwt het automatisch; het vernieuwen heeft een limiet van 90 dagen. Zelfs als je de verbinding dus helemaal zou vergeten, vervalt hij vanzelf na verloop van tijd.

Voor wie geïnteresseerd is in de technische kant

De server spreekt Streamable HTTP en ondersteunt de protocolversies 2025-06-18 en 2025-03-26. De autorisatie is OAuth 2.1 met PKCE (methode S256; plain accepteren we helemaal niet), met dynamische clientregistratie volgens RFC 7591 — precies daarom volstaat het om het adres te plakken, zonder dat je ergens vooraf iets hoeft aan te maken. De discovery-documenten staan precies waar clients ernaar zoeken: /.well-known/oauth-protected-resource en /.well-known/oauth-authorization-server. Het intrekken van een token verloopt via revoke volgens RFC 7009.

Dat betekent dat niet alleen Claude en ChatGPT zich kunnen verbinden, maar alles wat MCP spreekt — Claude Code, Codex, Cursor en andere tools die er intussen bij komen. Niets daarvan hoeven we apart te ondersteunen; dat is precies het punt van een standaard.

Wat het kost

Niets. De MCP-server maakt voor alle accounts deel uit van micali.online en heeft geen eigen prijs. De AI draait op je eigen abonnement bij Anthropic of OpenAI, dus aan onze kant ontstaan er geen modelkosten — en dus ook geen reden om ze jou in rekening te brengen.

Als je AI rechtstreeks in de app wilt, is die er ook al: Vraag de AI kent de app en je account, en het genereren van berichtteksten helpt je een e-mail of sms te schrijven. MCP is iets anders — het is voor de momenten waarop je al in een assistent zit en geen zin hebt om te wisselen.

Zo begin je

Kopieer het adres https://mcp.micali.online uit Profiel → AI-verbindingen, vertel je assistent dat je deze MCP-server wilt verbinden, en meld je aan met je e-mail en een code. De eerste vraag die we aanraden om te proberen, is saai en verraadt veel: "wat staat deze week in mijn agenda, en wie heeft nog niet betaald?"

Als er in de lijst met tools iets ontbreekt wat je van je assistent zou verwachten, laat het ons weten. Nog een tool toevoegen is voor ons eenvoudig — moeilijk is de beslissing welke daarvan iets mogen wijzigen. Bij die beslissing helpt jouw ervaring ons meer dan onze eigen inschatting.

Probeer micali.online