Seit es das Sulu MCP Bundle gibt, kann man mit einem KI-Assistenten Inhalte in Sulu bearbeiten. Die Doku nennt Claude.ai, Claude Code, Claude Cowork, ChatGPT und Codex als mögliche Clients. Es ist noch ein Release Candidate, bei mir ist 1.0.0-RC3 installiert. Seiten und Artikel lassen sich damit bearbeiten, Events sollten nicht abseits stehen. Deshalb hat auch das SuluEventBundle MCP-Tools bekommen.
Eine Einschränkung gleich vorweg: Die Event-Tools habe ich im Alltag noch nicht eingesetzt. Dieser Beitrag beschreibt deshalb, wie sie gebaut sind und warum, nicht Erfahrungen aus dem Betrieb.
Was das Sulu MCP Bundle vorgibt
Das MCP Bundle macht aus Sulu einen MCP-Server. KI-Assistenten verbinden sich über HTTP und nutzen dieselben Vorgänge wie der Admin. Aus der Doku ergeben sich vier Grundsätze:
- Jede Anfrage läuft als der angemeldete Sulu-Benutzer. Was im Admin verboten ist, ist auch per MCP verboten. Es gibt keine eigene Rechteschicht.
- Jedes Tool gibt an, welches Recht es braucht. Tools, die eine Rolle nicht nutzen darf, fehlen in deren Werkzeugliste.
- Die Anmeldung läuft über OAuth 2.1. Sulu zeigt eine Zustimmungsseite, die den Client und die angeforderten Rechte nennt, erst danach gibt es ein Token.
- Tools mit schwer rückgängig zu machenden Folgen sind standardmäßig abgeschaltet: Löschen, Veröffentlichen, Blöcke entfernen und Medien hochladen.
Im Standardprofil kann die KI laut Doku alles lesen und Entwürfe anlegen, aber nicht veröffentlichen, löschen oder den Seitenbaum umbauen. Wer mehr will, schaltet es in der Konfiguration ausdrücklich frei.
Die sechs Tools des EventBundles
Das EventBundle hängt sich in dieses System ein. Es registriert sechs Tools, aber nur, wenn das MCP Bundle installiert ist. Ohne es wird nichts geladen, das EventBundle bleibt unabhängig.
sulu_event_list: Events einer Sprache, seitenweisesulu_event_get: ein Event mit allen Feldernsulu_event_create: Event als Entwurf anlegensulu_event_update: Felder eines Events ändernsulu_location_list: Orte mit ihren IDssulu_location_create: Ort anlegen
Die Rechte sind die der Events im Admin: Ansehen für die Listen, Hinzufügen für das Anlegen, Bearbeiten für Änderungen. Wer im Admin keine Events anlegen darf, bekommt das Tool nicht zu sehen. Anlegen und Ändern erscheinen außerdem im Aktivitätsprotokoll, so wie jede Arbeit im Admin (mehr dazu im Beitrag Papierkorb, Zeitsteuerung und Aktivitäten).
Warum Veröffentlichen fehlt
Ein Event, das ein Assistent anlegt, bekommt den Zustand Entwurf. In der Beschreibung des Anlege-Tools steht, dass es im Admin veröffentlicht wird. Das Änderungs-Tool beschreibt noch einen Schritt mehr: Ändert man damit ein bereits veröffentlichtes Event, wird es wieder zum Entwurf und muss erneut im Admin veröffentlicht werden.
Ein eigenes Tool zum Veröffentlichen gibt es im EventBundle nicht. Das passt zur Linie des MCP Bundles, das Veröffentlichen standardmäßig abschaltet. Ein veröffentlichtes Event erscheint auf der Website, etwa in Listen und in der Sitemap. Diesen Schritt überlässt das Bundle dem Admin oder den Sammelaktionen, wenn es mehrere Events auf einmal sein sollen.
Ausprobieren
Das MCP Bundle ist nicht in zwei Minuten eingerichtet. Zur Installation gehören ein OAuth-Schlüsselpaar, das league/oauth2-server-bundle, eine Datenbank-Migration und eine Firewall, die vor der des Admins stehen muss. Die Doku des Bundles führt Schritt für Schritt durch und enthält Anleitungen für die genannten Clients.
Für die Event-Tools muss man danach nichts mehr tun. Sie sind mit dem Bundle da, die Beschreibung der einzelnen Tools steht in der Doku des EventBundles. Erfahrungen aus dem Alltag fehlen mir noch.
Die Reihe beginnt mit Wie das SuluEventBundle entstand. Davor: Der Umbau des SuluEventBundle auf Sulu 3.
Repository: manuxi/SuluEventBundle auf GitHub