Sinds de release van de Sulu MCP-bundel is het mogelijk om inhoud in Sulu te bewerken met behulp van een AI-assistent. In de documentatie worden Claude.ai, Claude Code, Claude Cowork, ChatGPT en Codex genoemd als mogelijke clients. Het is nog steeds een release candidate; ik heb versie 1.0.0-RC3 geïnstalleerd. Pagina’s en artikelen kunnen ermee worden bewerkt, en ook evenementen mogen niet ontbreken. Daarom is ook de SuluEventBundle voorzien van MCP-tools.

Eén kanttekening vooraf: ik heb de evenemententools nog niet in de dagelijkse praktijk gebruikt. Dit bericht beschrijft daarom hoe ze zijn opgebouwd en waarom, in plaats van praktische ervaringen te delen.

Wat de Sulu MCP-bundel volgens de fabrikant te bieden heeft

De MCP-bundel maakt van Sulu een MCP-server. AI-assistenten maken verbinding via HTTP en gebruiken dezelfde processen als de beheerder. Uit de documentatie komen vier principes naar voren:

  • Elk verzoek wordt uitgevoerd als de aangemelde Sulu-gebruiker. Alles wat in de beheerdersinterface verboden is, is ook via MCP verboden. Er is geen aparte machtigingslaag.
  • Elke tool specificeert welke machtigingen deze nodig heeft. Tools die een rol niet mag gebruiken, worden weggelaten uit de tool-lijst van die rol.
  • Authenticatie verloopt via OAuth 2.1. Sulu toont een toestemmingspagina met daarop de client en de gevraagde machtigingen; pas daarna wordt een token uitgegeven.
  • Hulpmiddelen met onomkeerbare gevolgen zijn standaard uitgeschakeld: verwijderen, publiceren, blokkades opheffen en media uploaden.

Volgens de documentatie kan de AI in het standaardprofiel alles lezen en concepten aanmaken, maar kan hij de paginastructuur niet publiceren, verwijderen of herschikken. Wie meer wil doen, moet deze functies expliciet inschakelen in de configuratie.

De zes tools in de EventBundle

De EventBundle wordt in dit systeem geïntegreerd. Het registreert zes tools, maar alleen als de MCP Bundle is geïnstalleerd. Zonder deze bundel wordt er niets geladen; de EventBundle blijft dan onafhankelijk.

  • sulu_event_list: Gebeurtenissen voor een taal, pagina voor pagina
  • sulu_event_get: een evenement met alle velden
  • sulu_event_create: Maak een evenement aan als concept
  • sulu_event_update: De velden van een evenement wijzigen
  • sulu_location_list: Locaties met hun ID's
  • sulu_location_create: Een locatie aanmaken

De rechten zijn dezelfde als voor evenementen in het beheerderspaneel: ‘Bekijken’ voor de lijsten, ‘Toevoegen’ voor het aanmaken, ‘Bewerken’ voor wijzigingen. Iedereen die geen toestemming heeft om evenementen aan te maken in het beheerderspaneel, zal de tool niet kunnen zien. Het aanmaken en bewerken verschijnen ook in het activiteitenlogboek, net als elke andere actie in het beheerderspaneel (meer hierover in het bericht Prullenbak, Tijdcontrole en Activiteiten).

Waarom 'Publiceren' ontbreekt

Een evenement dat door een assistent is aangemaakt, krijgt de status ‘Concept’. In de beschrijving van de aanmaakfunctie staat dat het evenement in het beheerderspaneel wordt gepubliceerd. De bewerkingstool beschrijft nog een extra stap: als je deze gebruikt om een reeds gepubliceerd evenement te bewerken, wordt het teruggezet naar de status ‘Concept’ en moet het opnieuw worden gepubliceerd in het beheerderspaneel.

Er is geen speciale publicatietool in de EventBundle. Dit is in lijn met de MCP Bundle, die publicatie standaard uitschakelt. Een gepubliceerd evenement verschijnt op de website, bijvoorbeeld in lijsten en in de sitemap. De bundel laat deze stap over aan de beheerder of aan de batchacties als meerdere evenementen tegelijk moeten worden verwerkt.

Probeer het eens

De MCP-bundel kan niet binnen twee minuten worden geïnstalleerd. Voor de installatie zijn een OAuth-sleutelpaar, de league/oauth2-server-bundle, een databasemigratie en een firewall nodig, die vóór de firewall van de beheerder moet worden geplaatst. De documentatie van de bundel leidt je stap voor stap door het proces en bevat instructies voor de genoemde clients.

Zodra dat is gebeurd, hoef je verder niets meer te doen voor de evenementtools. Ze zijn bij de bundel inbegrepen; beschrijvingen van de afzonderlijke tools zijn te vinden in de EventBundle-documentatie. Ik heb nog geen kans gehad om ze in de praktijk uit te proberen.

De serie begint met Hoe de SuluEventBundle tot stand kwam. Eerder: De port van de SuluEventBundle naar Sulu 3.

Repository: manuxi/SuluEventBundle op GitHub