Die schnelle Version hat drei Artikel produziert, die in Wahrheit ein Artikel in drei Verkleidungen waren. Gemerkt habe ich es erst Tage später.
Kurz zum Aufbau: Jeder Beitrag in dieser Reihe erscheint in drei Sprachen, Englisch, Deutsch und Serbisch. Zwischen dem fertigen Text und der veröffentlichten Seite lagen früher ein bis zwei Stunden. Heute sind es rund 5 Minuten. Fast nichts von der alten Zeit war Schreibarbeit.
Dahinter stecken zwei Bausteine, sehr ungleich verteilt. Der MCP Server von Strapi hat die mechanische Hälfte übernommen, ein Claude Skill die redaktionelle. Der Skill war der schwierigere Teil, und zwar mit deutlichem Abstand.
Das eigentliche Problem war nie das Schreiben
Das Datenmodell von Strapi v5 ist an dieser Stelle richtig gebaut. Ein Dokument, drei Locales, saubere Trennung. Daran lag es nicht.
Es lag am Formatbruch. Im Kopf entsteht Markdown, in der Datenbank liegt ein Blocks-Array, also ein JSON-Baum aus Knoten. Diese Umwandlung macht kein Compiler, sondern ein Mensch, von Hand, im Browser, zum dritten Mal an diesem Tag. Für die Maschine ist das trivial. Für den Menschen ist es zäh.
Dazu kommt rund ein Dutzend langweiliger Felder pro Sprache: Slug, Excerpt, Lesezeit, Meta-Title, Meta-Description, Keywords, Open Graph, strukturierte Daten, FAQ-Einträge, Kategorie, Tags, Autor. Mal drei. In Summe ungefähr eine Stunde reine Sachbearbeitung, für die niemand jemals qualifiziert werden musste.
Die Folge war schlimmer als der Zeitverlust, und das ist der Grund, warum ich überhaupt darüber schreibe. Uns haben nie die Themen gefehlt. Was gefehlt hat, war die Bereitschaft, diese letzte, unerfreuliche Stunde noch am selben Abend zu erledigen. Also wurde verschoben, und irgendwann war der Text nicht mehr aktuell genug, um ihn noch zu veröffentlichen. Der Aufwand war kein Kostenpunkt. Er war ein Filter darauf, was überhaupt erschienen ist.
Drei Wege hinein
Erstens: alles so lassen. Weiter im Admin-Panel, kein Setup, kein Risiko, dafür die Stunde für immer bezahlen. Die meisten Teams sind hier, ohne sich je bewusst dafür entschieden zu haben.
Zweitens: ein eigenes Skript gegen die REST-API. Das funktioniert, kostet einen Tag Arbeit, und danach gehört es Ihnen, inklusive Wartung. Schemaänderungen brechen so ein Skript stillschweigend, und Sie merken es Wochen später, wenn ein Feld auf einmal leer bleibt. Vor allem aber löst es den Teil nicht, der Urteilsvermögen verlangt. Sie hätten das Tippen automatisiert und das Denken behalten, und das Tippen war nie das Teure.
Drittens: ein Agent über den MCP Server. Strapi liefert seit Version 5.47 einen mit. Aktiviert wird er mit mcp: { enabled: true } in config/server.js, danach Neustart, der Endpunkt liegt unter /mcp. Authentifiziert wird über ein Admin-Token. Der interessante Teil daran: Die Rechte dieses Tokens entscheiden, welche Tools der Agent überhaupt zu sehen bekommt. Kein Löschrecht bedeutet kein Lösch-Tool. Nicht gesperrt, sondern schlicht nicht vorhanden.
Die vierte Variante wäre gewesen, direkt in die Datenbank zu schreiben. Nein. Damit verlieren Sie Validierung, Lifecycle-Hooks und das Draft-System und gewinnen nichts.
Wir haben uns für den Agenten entschieden. Der MCP Server allein holt allerdings nur etwa ein Drittel der Stunde zurück.
Was der MCP Server löst und was nicht
Ein MCP Server ist keine Integration. Er ist eine API mit einer freundlicheren Eingangstür.
Praktisch bedeutet das: Das CMS ist im selben Gespräch erreichbar, in dem der Text entsteht. Damit hört die Formatumwandlung auf, eine Aufgabe zu sein, und wird zu einem Nebeneffekt. Niemand konvertiert mehr Markdown nach Blocks. Der Inhalt kommt als Blocks an.
Was der Server dagegen nicht weiß: wie ein guter Artikel auf unserem Blog aussieht. Dass jeder Beitrag ein echtes Zugeständnis enthalten muss und nicht nur ein kokettes. Dass die deutsche Fassung komponiert und nicht übersetzt wird. Dass eine Meta-Description zwischen 50 und 160 Zeichen liegt und sich nicht wie ein Werbespruch lesen soll.
Deshalb im Klartext: Ein Agent mit Schreibzugriff auf ein CMS, aber ohne redaktionelle Regeln, ist ein sehr schneller Weg zu mittelmäßigen Inhalten. Das Tempo ist echt. Die Mittelmäßigkeit auch.
Die Regeln stecken bei uns in einem Claude Skill. Das ist im Kern ein Ordner mit einer Datei SKILL.md, dazu Referenzdateien und ein paar Skripte, und der Agent lädt ihn nur, wenn die Aufgabe dazu passt. Bei uns steht darin: die fünf Artikelformate, die Sprachregeln, eine Liste verbotener Formulierungen, sämtliche Feldgrenzen, die exakte Reihenfolge der MCP-Aufrufe und die Regeln für die deutsche und die serbische Fassung. Ein kleiner Styleguide, der zufällig ausführbar ist.
So verteilt sich die Arbeit: Der MCP Server hat das Veröffentlichen mechanisch gemacht. Der Skill hat es auf ein Niveau gehoben, unter das man seinen Namen setzen kann. Wer nur eines von beiden bauen will, baut den Skill. Seit der Umstellung ist kein Beitrag mehr von Hand im Admin-Panel entstanden, in keiner der drei Sprachen.
Was es gekostet hat und was trotzdem kaputtging
Das MCP-Setup war ein Nachmittag. Der Skill hat Wochen gedauert und ist bis heute nicht fertig. Dieses Verhältnis hat mich überrascht, obwohl es im Rückblick offensichtlich hätte sein müssen.
Vier Dinge sind uns dabei um die Ohren geflogen. Drei davon sind es wert, aufgeschrieben zu werden.
Das erste betrifft Relationen, und es ist das unangenehmste. Die Dokumentation sagt, eine to-one-Relation akzeptiert entweder eine reine Dokument-ID als String oder ein Objekt mit einem documentId-Schlüssel. Die Objektform wurde sauber validiert, meldete Erfolg und hängte nichts an. Der Artikel existierte, die Antwort sah korrekt aus, die Live-Seite hatte keinen Autor, keine Kategorie und keine Tags.
Schlimmer ist der Umkehrschluss. Create- und Update-Antworten melden Relationen auch dann als null, wenn sie tatsächlich gesetzt wurden. Die Antwort ist also in beide Richtungen wertlos. Verlässlich ist nur ein get-Aufruf nach dem Schreiben. Gekostet hat uns das eine Debugging-Sitzung am 25. Juli 2026, den größeren Teil davon mit einem Verdacht gegen das Frontend, das vollkommen unschuldig war.
Das zweite ist kleiner. Ein Update weigert sich, partiell zu sein. Wer nur eine einzige Relation ändern will, muss title und slug trotzdem mitschicken. Harmlos, sobald man es weiß. Eine Stunde Verwirrung, wenn nicht.
Das dritte ist eine dokumentierte Einschränkung und kein Fehler: Medien lassen sich über MCP nicht hochladen. Medienfelder verweisen auf ein Asset, das bereits in der Bibliothek liegt, und der Server legt keine neue Datei an. Coverbilder bleiben deshalb Handarbeit. Karte erzeugen, in die Medienbibliothek hochladen, Asset-ID zurückgeben, der Agent referenziert sie. Das sind rund 90 Sekunden der 5 Minuten.
Und dann das vierte, das eigentlich wichtige. Der QA-Artikel vom 25. Juli 2026 kam in allen drei Sprachfassungen auf genau 47 Blöcke. Absatz für Absatz deckungsgleich zwischen Englisch, Deutsch und Serbisch, eins zu eins.
So sieht unabhängige Komposition nicht aus. So sieht eine Übersetzung aus, die so lange poliert wurde, bis sie sich muttersprachlich las. Das Deutsch war korrekt. Es war trotzdem der englische Artikel mit deutschen Wörtern darin, und ein deutscher Leser spürt so etwas, auch wenn er es nicht benennen kann.
Kein Werkzeug hat dabei versagt. Die Pipeline hat exakt das getan, was man ihr gesagt hatte, und sie hat es schnell getan. Genau das Tempo hat den Fehler verdeckt. Bei 90 Minuten wäre mir das aufgefallen. Bei 5 Minuten habe ich veröffentlicht.
Wer Reibung entfernt, entfernt damit auch die Pause, in der er etwas bemerkt hätte. Nach jeder Automatisierung muss deshalb absichtlich eine Kontrolle wieder eingebaut werden, weil die kostenlose weg ist.
Was wir heute anders machen würden
Den Vergleich zwischen den Sprachfassungen vor dem zweiten Artikel bauen, nicht danach. Ein Skript prüft, ob die Zahlen in allen Fassungen identisch sind, ob Namen auftauchen, die es nur in einer Sprache gibt, und wie die Absatzstruktur aussieht. Es sagt Ihnen ungeschminkt, dass Ihr Deutsch eine Übersetzung ist. Zwanzig Zeilen Python hätten das Problem mit den 47 Blöcken noch am selben Tag gefunden.
Das Admin-Token von Anfang an eng zuschneiden. Unseres war breiter als nötig, aus reiner Ungeduld beim Aufsetzen. Da die Sichtbarkeit der Tools den Rechten folgt, ist ein schmales Token nicht nur eine Sicherheitsfrage. Es ist auch eine kleinere und klarere Oberfläche, über die der Agent nachdenken muss.
Und keine Veröffentlichungsrechte für den Agenten. Der Draft landet im System, ein Mensch liest ihn, ein Mensch drückt auf Veröffentlichen. Das Gegenargument kenne ich, das letzte Stück Theater in einer ansonsten automatisierten Kette. Ich weise es zurück, und nach dem Artikel mit den 47 Blöcken deutlich entschiedener als vorher. Diese letzte Lesung ist die einzige Stelle im Prozess, an der überhaupt noch Urteilsvermögen sitzt.
Wenn Ihr Strapi-Blog die langsame Stelle ist
Conimex IT baut Blog- und Content-Frontends auf Strapi. Konkret heißt das: das Frontend in React oder Next.js, ein Blocks-Renderer, der echte Inhalte verkraftet und nicht nur den Happy Path, lokalisiertes Routing, das keine URLs zerschießt, sowie SEO- und Open-Graph-Felder, die auf Tags verdrahtet sind, die Google und die KI-Antwortmaschinen tatsächlich lesen können.
Auf Wunsch bauen wir auch die Publishing-Pipeline dahinter, damit Ihre Redaktion nicht länger im Admin-Panel wohnt.
Wenn Ihr CMS in Ordnung ist, aber das Veröffentlichen die Aufgabe ist, um die im Team alle einen Bogen machen, dann ist das lösbar und meistens kleiner, als es aussieht. Schreiben Sie mir an [email protected].
