MCP-Konfigurationstools
Die Tools hinter der Konfigurationstür /mcpconfig: die, mit denen eine Umgebung eingerichtet wird. Produkte und Preise, Frontend und Theme, E-Mail-Vorlagen und der Buchungsworkflow. Ein Schlüssel mit Geltungsbereich config öffnet diese Tür; wie Sie sich verbinden, steht in Einen KI-Agenten mit dem MCP-Server verbinden. Das Tagesgeschäft liegt hinter einer anderen Tür — siehe MCP-Betriebstools.
Plan und Anwenden sind zwei Tools
Jede schreibende Handlung besteht hier aus zwei Tools: ..._plan zeigt, was sich ändern würde, und schreibt nichts, ..._apply führt es aus. Das ist keine Formalität, sondern der Kern des sicheren Umgangs mit dieser Tür: Sie zeigen jemandem einen Plan, der Ja dazu sagt, und erst dann wird geschrieben. Beide haben ein eigenes Recht, Sie können also jemanden schauen lassen, ohne ihn ändern zu lassen.
Ein _apply, das nichts zu ändern findet, ist ein Erfolg und kein Fehler: Stand der Wert schon so, sagt die Antwort, dass sich nichts geändert hat. Ein Client, der seine Antwort verloren hat, kann es also einfach erneut versuchen.
Zwei Schlösser und das Produktionsschloss
Bevor hier etwas geschrieben wird, müssen zwei Schlösser offen sein: eines setzt der Anbieter für die ganze Umgebung, eines der Lizenznehmer selbst. Ist eines zu, wird auch der Plan abgewiesen — sonst würde die Tür, die Sie nicht öffnen können, trotzdem in allen Einzelheiten beschreiben, was dahinter steht.
Zusätzlich gilt für die schwersten Tools eine dritte Bedingung: Auf einer Produktivumgebung laufen sie überhaupt nicht. Das sind die Tools mit Stufe 2 in der Tabelle unten — die Status und die automatischen Statusübergänge. Diese zu verstellen entscheidet, welche E-Mail bei welcher Statusänderung hinausgeht, und beim nächsten Joblauf ist das echte Post an echte Kunden. Theme-CSS zu ändern ist auf Produktion erlaubt: Das ist sichtbar und umkehrbar.
Die Tools
| Tools | Lesen/Schreiben | Stufe | Beschreibung |
|---|---|---|---|
| env_describe / config_diff_vs_baseline / recent_changes | lesen | - | Was diese Umgebung ist, was von einer frischen Installation abweicht und was kürzlich geändert wurde |
| object_explain / pricing_explain / availability_why_not_bookable | lesen | - | Erläuterung zu einem Produkt: die Einstellungen, der Preisaufbau und warum es an einem Datum nicht buchbar ist |
| object_create / object_update / object_set_periods / object_set_extras / object_set_participants | schreiben | 1 | Produkte anlegen und ändern, mit Zeiträumen, Zusatzoptionen und Teilnehmertypen |
| product_set_active | schreiben | 1 | Ein Produkt ein- oder ausschalten |
| combi_create / combi_update | schreiben | 1 | Arrangements zusammenstellen |
| theme_describe / theme_set_variables / theme_set_css / theme_set_logo / theme_rebuild | lesen/schreiben | 1 | Das Frontend-Theme: Farben und Variablen, eigenes CSS, Logo und Neukompilieren |
| theme_patch_css | schreiben | 1 | Einen Teil des eigenen CSS ändern: eine Farbe, eine Regel oder einen benannten Block, ohne das ganze Stylesheet erneut zu senden |
| media_upload_link | schreiben | 1 | Ein einmaliger Upload-Link in die Medienbibliothek, für ein Logo, Stylesheet oder eine Schriftart |
| media_fetch | schreiben | 1 | Eine Datei von der eigenen Website in die Medienbibliothek holen |
| brand_set_logo | schreiben | 1 | Das Logo der Hausfarben |
| content_block_describe / content_block_create / content_block_update | lesen/schreiben | 1 | Die Blöcke, aus denen eine Frontend-Seite aufgebaut ist |
| content_block_delete | schreiben | 1 | Einen Block löschen. Abgelehnt, solange er noch irgendwo verwendet wird: auf einer Seite, in einem Theme, in einem anderen Block oder in einem Formular |
| menu_describe_items / menu_set_items | lesen/schreiben | 1 | Die Einträge eines Menüs als Liste: Reihenfolge, Dropdowns, die Seite, zu der ein Eintrag führt, und die Beschriftung pro Sprache |
| page_describe / page_create / page_update | lesen/schreiben | 1 | Inhaltsseiten im Frontend |
| page_list / page_check_links | lesen | - | Alle Inhaltsseiten, und welche internen Links in Menüs, Inhaltsblöcken und der Startseite ins Leere führen |
| page_delete | schreiben | 1 | Eine Seite löschen. Abgelehnt, wenn eine andere Sprachversion darauf verweist, es sei denn, Sie lassen diesen Verweis gleich mit bereinigen |
| theme_set_menu | schreiben | 1 | Welches Menü der Kopf eines Themes pro Sprache zeigt |
| homepage_set | schreiben | 1 | Welche Seite das Frontend öffnet, wenn ein Besucher die Basisadresse aufruft |
| template_describe / template_create / template_update / template_section_set | lesen/schreiben | 1 | E-Mail- und PDF-Vorlagen und ihre Kopf-, Fuß- und CSS-Teile |
| workflow_describe | lesen | - | Der ganze Buchungsworkflow in einer Antwort: Status, manuelle und automatische Übergänge und welche Vorlage zu welchem Übergang gehört — einschließlich Prüfungen auf Vorlagen, auf die nichts mehr verweist |
| status_set | schreiben | 2 | Einen Buchungsstatus ändern: ob er einen Platz belegt und wohin jemand eine Buchung von Hand verschieben darf |
| auto_set / auto_delete | schreiben | 2 | Automatische Statusübergänge: von welchem Status zu welchem, zu welchem Zeitpunkt und welche E-Mail oder SMS dazugehört |
| language_list | lesen | - | Die Sprachen der Umgebung (aktiv, Standard) und welche Teile übersetzbar sind |
| language_activate | schreiben | 1 | Eine Frontend-Sprache ein- oder ausschalten; der Plan zählt, was in dieser Sprache noch leer ist |
| language_missing_report | lesen | - | Pro Teil die Texte, die in der Ausgangssprache gefüllt sind und in der neuen Sprache noch nicht, mit dem Ausgangstext |
| translation_get / translation_set | lesen/schreiben | 1 | Übersetzungen lesen und speichern, bis zu 50 auf einmal, über alle übersetzbaren Teile hinweg |
Das Frontend einrichten
Ein Frontend besteht aus Inhaltsblöcken, Seiten, die diese Blöcke zeigen, einem Menü, einem Theme und einer Startseite. Mit den Tools geht das in dieser Reihenfolge: Blöcke anlegen und füllen (content_block_create, content_block_update), daraus Seiten machen (page_create), das Menü füllen (menu_set_items), das Menü mit dem Theme verknüpfen (theme_set_menu) und die Startseite wählen (homepage_set). Zum Schluss zeigt page_check_links, ob noch Links ins Leere führen.
Unterwegs werden einige Dinge geprüft, damit ein Fehler nicht erst dem Besucher auffällt:
- Der Inhalt eines Inhaltsblocks wird vor dem Speichern geprüft, genauso wie im Editor. Text, der die Seite zerstören würde, etwa eine einzelne geschweifte Klammer oder ein
{if}ohne{/if}, wird abgelehnt. Setzen Sie JavaScript und CSS mit geschweiften Klammern zwischen{literal}und{/literal}. - Das Menü im Kopf wird pro Sprache gewählt, und eine Sprache ohne Menü greift nicht auf eine andere Sprache zurück. Der Plan von
theme_set_menunennt jede aktive Sprache, die danach kein Menü hat. - Ein Menü, das für eine Sprache eingerichtet ist, braucht nur Beschriftungen in dieser Sprache. Ein Menü für alle Sprachen braucht eine Beschriftung in jeder aktiven Sprache.
- Die Startseite ist eine Einstellung für alle Sprachen. Wechselt ein Besucher die Sprache, folgt das Frontend der verknüpften Sprachversion dieser Seite. Der Plan von
homepage_setwarnt vor jeder aktiven Sprache, in der die Seite keine Version hat. - Die Linkprüfung betrachtet nur Links, auf die ein Besucher klickt. JavaScript zählt nicht mit, auch wenn darin etwas wie
location.hrefsteht.
Logo und Hausstil bereitstellen
Fügen Sie ein Logo oder ein komplettes Stylesheet nicht in das Gespräch mit Ihrem Assistenten ein. Das ist langsam, und ein einziges falsches Zeichen macht die Datei unbrauchbar. Die Datei kommt zuerst in die Medienbibliothek Ihrer Umgebung, und der Assistent verweist dann darauf.
- Datei bereitstellen. Bitten Sie den Assistenten um einen Upload-Link (
media_upload_link). Öffnen Sie den Link, wählen Sie die Datei und klicken Sie auf Hochladen. Steht das Logo bereits auf Ihrer eigenen Website, kann der Assistent es auch selbst holen (media_fetch). - Verwenden lassen. Der Assistent setzt die Datei danach als Logo (
brand_set_logoodertheme_set_logo) oder als Stylesheet des Themes (theme_set_css). Sie müssen nichts im Admin einfügen.
Beispiel: „Verwende das Logo, das ich jetzt hochlade, auf unserer Website und in der Bestätigungsmail, und mache die Buttons dunkelgrün." Der Assistent erstellt einen Upload-Link, setzt nach Ihrem Upload das Logo und ändert mit theme_patch_css nur die Buttonfarbe. Der Rest des Stylesheets bleibt unverändert.
- Ein Upload-Link funktioniert einmal und ist standardmäßig 15 Minuten gültig. Wird eine Datei abgelehnt, etwa weil sie kein Bild ist, bleibt der Link verwendbar.
- Erlaubt: Bilder (png, jpg, gif, webp, svg, ico), Stylesheets (css) und Schriftarten (woff, woff2, ttf, otf), bis 5 MB. Der Dateityp wird aus dem Inhalt bestimmt, nicht aus dem Namen.
- Holen funktioniert nur von den eigenen Domains Ihrer Lizenz: den Domains in der Einstellung CORS - Zugelassene Domänen.
- Für diese Tools brauchen Sie das Recht
menu_config_manage_media(Medien verwalten), und die Schlösser oben müssen offen sein. - Bei einer kleinen Änderung prüft
theme_patch_csszuerst, ob das Stylesheet noch dasselbe ist, das der Assistent gelesen hat. Wurde es zwischendurch im Admin geändert, wird die Änderung abgelehnt und der Assistent liest es erneut.
Eine Sprache hinzufügen
Wenn Sie eine Frontend-Sprache einschalten, wird nichts kopiert. Alles, was in dieser Sprache noch keinen Text hat, bleibt im Frontend leer: Produktnamen, Optionen, Status, Feldbeschriftungen, Inhaltsblöcke, das Menü und die Seiten. Fast nirgends wird auf die Standardsprache zurückgegriffen. Die Sprachtools machen aus dieser Handarbeit eine strukturierte Aufgabe:
language_activate_planzeigt, wie viele Texte pro Teil noch leer sind. Erst nach Zustimmung schaltetlanguage_activate_applydie Sprache ein.language_missing_reportliefert den Arbeitsvorrat: pro Teil, welche Texte fehlen, mit dem Ausgangstext.- Der Agent übersetzt, und
translation_set_planzeigt pro Text, was sich ändern würde.translation_set_applyspeichert es.
Drei Dinge werden immer geprüft. Ein Text, der schon gefüllt ist, wird nicht überschrieben, es sei denn, das wird ausdrücklich verlangt. Codes wie {NAME} oder ##OWNER_ID## und die HTML-Formatierung eines Textes müssen nach dem Übersetzen genau so zurückkommen. Und ein Text darf nicht länger sein, als das Feld erlaubt. Eine Inhaltsseite in einer neuen Sprache braucht eine eigene URL; sie wird nicht von der ursprünglichen Seite übernommen.
E-Mail- und PDF-Vorlagen gehören nicht dazu: Das sind eigene Dokumente pro Sprache, die Sie mit den Vorlagentools anlegen.
Für alle diese Tools ist das Recht menu_config_language nötig, dazu das Recht des Bildschirms, auf dem der Text normalerweise bearbeitet wird. Wer die Produkte nicht ändern darf, kann sie auch über KI nicht übersetzen.
Die exakte, stets aktuelle Liste mit allen Eingabefeldern fragen Sie mit der Standard-MCP-Methode tools/list an der Tür selbst ab. Was Sie zurückbekommen, hängt von Ihren Rechten ab; eine kürzere Liste als hier bedeutet meist, dass ein Recht fehlt.
BETA. Diese Tür ist neu und wird noch weiterentwickelt. Toolnamen, Eingabefelder und Stufen können sich zwischen Releases ohne Übergangsfrist ändern. Nutzen Sie die Plan-Variante, bevor Sie etwas anwenden, und bauen Sie darauf noch keine Produktivintegration, die nicht ausfallen darf.


