CMS-Vergleich

Dein Agent kann den Shop führen, nicht nur die Texte

Eine Erstattung erfassen, einen Entschuldigungscode erstellen, das Promo-Banner aktualisieren und veröffentlichen - eine Unterhaltung mit Claude, ein MCP-Server, ein Workspace. Und was cmssy bewusst deinem Zahlungsanbieter überlässt.

C
Cmssy Team
7 min read

Dein Agent kann den Shop führen, nicht nur die Texte

Die meisten CMS-MCP-Server hören bei Inhalten auf. Hier ein Supportfall - Erstattung, Rabatt, Banner, Veröffentlichung - von einem Agenten in einer Unterhaltung erledigt, samt den Leitplanken drumherum.

Ein Dienstagnachmittag

Ein Kunde schreibt: Die Tasse ist kaputt angekommen. So läuft die Lösung in einem Headless-Setup meist ab:

  1. Das Geld beim Zahlungsanbieter erstatten.
  2. Die Erstattung im Commerce-Backend erfassen, damit Bestand und Berichte übereinstimmen.
  3. Einen Rabattcode erstellen, damit der Kunde wiederkommt.
  4. Wenn du schon dabei bist: Das Banner auf der Startseite wirbt noch mit der Aktion der letzten Woche. Im CMS ändern und veröffentlichen.

Das sind drei oder vier Admin-Panels, und bei den meisten Headless-CMS mindestens zwei Anbieter, weil das CMS die Texte hält und etwas anderes die Bestellungen.

In cmssy liegen Bestellungen, Rabatte und Seiten in einem Workspace, und der MCP-Server stellt sie alle bereit. Jeder Schritt nach dem ersten passt in eine Unterhaltung mit einem Agenten.

Derselbe Nachmittag, in einer Unterhaltung

Das ist Claude Code, verbunden über MCP mit einem cmssy-Workspace. Die Prompts tippst du ein; die Tool-Namen sind das, was Claude aufruft.

1. Die Bestellung finden

Finde die letzte Bestellung von anna@example.com und zeig mir ihre Positionen.

Claude ruft list_orders mit search auf (das passt auf die E-Mail-Adresse des Kunden), dann get_order für Positionen, Zahlungen, Pakete und Summen.

2. Die Erstattung erfassen

Ich habe die Tasse in Stripe erstattet, Refund-ID re_3Q... über 24.00 EUR.
Erfasse das an der Bestellung.

Claude ruft refund_order mit der Bestell-ID, amount: 2400 (Geld wird in kleinsten Einheiten angegeben) und der Stripe-Refund-ID als reference auf.

Beachte, was das tut und was nicht. cmssy bewegt kein Geld. Zahlungen werden von deinem eigenen Anbieter eingezogen und zurückgezahlt. cmssy erfasst das Ergebnis. Die Refund-ID ist Pflicht, und wird dieselbe ID zweimal gesendet, wird nichts doppelt erfasst. Eine vollständige Erstattung bucht außerdem die noch nicht versandten Einheiten zurück in den Bestand und storniert Pakete, die noch auf den Versand warteten. In beiden Fällen löst cmssy einen order.refunded- oder order.partially_refunded-Webhook aus, sodass dein Buchhaltungs- oder E-Mail-Dienst davon erfährt.

3. Den Entschuldigungscode erstellen

Erstelle einen 15%-Code SORRY-ANNA, einmal einlösbar, 30 Tage gültig.

create_discount mit type: "percentage", value: 15, maxUses: 1 und einem endsAt. Der Shop wendet ihn im Checkout über die Delivery-API an, wie jeden anderen Code.

4. Den Promo-Block aktualisieren

Ändere auf der Startseite das Promo-Banner so, dass es kostenlosen Versand
an diesem Wochenende ankündigt, in allen Sprachen, die wir haben.

Claude liest die Seite mit get_page, findet den Banner-Block und ändert ihn mit update_block_content. Claude entnimmt die Feldnamen dem Block-Manifest deiner Website (list_block_types), und der Server warnt, wenn der Inhalt nicht dazu passt, sodass das Banner genau die Felder bekommt, die deine Komponente rendert. Die Änderung liegt im Entwurf.

5. Veröffentlichen

Veröffentliche die Startseite.

publish_page. Hat deine Website eine Revalidate-Route, die content.changed abonniert, ist das neue Banner Sekunden später live. cmssy rendert die Seite nicht; deine App tut das, auf deinem Host.

Was der Server abdeckt

Derselbe Server, mit demselben Token:

  • Content: Seiten, Blöcke, Layout-Bereiche, Page Types, Medien, Formulare und ihre Einsendungen, eigene Datenmodelle und Records.
  • Commerce: Bestellungen (manuelle Bestellungen, Änderungen, erfasste Zahlungen, Erstattungen, Stornierungen, Rechnungen, die Order-Pipeline), Retouren, Sendungen, Warenkörbe, Rabatte, Produkte und Bestand, Preislisten und Verkaufskanäle.
  • Kunden: die Konten, die sich auf deiner Website anmelden. Claude kann sie auflisten, eines sperren oder entsperren oder ein Passwort-Reset senden.
  • Webhooks: Endpunkte anlegen, ändern und rotieren und ihr Zustellprotokoll lesen.

Die vollständige Liste mit der jeweils nötigen Berechtigung pro Tool steht in den MCP-Server-Docs.

Der Vergleich

Contentful, Sanity und Storyblok haben alle offizielle MCP-Server, und die sind gut in dem, was diese Produkte speichern: Einträge und Dokumente, Assets, Content-Typen und Schemas, Releases. Wenn du nur einen Agenten brauchst, der Inhalte schreibt und veröffentlicht, genügt jeder von ihnen, und wir auch.

Der Unterschied zeigt sich, sobald die Aufgabe Geld berührt. Diese Plattformen halten deine Bestellungen nicht; ein darauf gebauter Shop führt Bestellungen in einem separaten Commerce-System. Die Schritte 1 und 2 oben laufen dann über die API eines anderen Anbieters, mit einem weiteren MCP-Server oder einer Integration, die du selbst pflegst. In cmssy liegen Bestellung, Rabatt und Banner im selben Workspace, unter denselben Rollen, hinter demselben Server.

Und damit die Grenzen klar sind: cmssy ist kein Zahlungsdienstleister und will auch keiner sein. Dein Checkout spricht mit Stripe oder einem anderen Anbieter, dein Backend prüft den Webhook des Anbieters, und erst dann wird die Zahlung in cmssy erfasst.

Leitplanken

Ein Agent, der eine Bestellung erstatten kann, verdient mehr Sorgfalt als einer, der eine Überschrift bearbeitet. Was ihn tatsächlich begrenzt:

  • Rollen. Ein Token oder eine gehostete Verbindung handelt als die Person, die sie erstellt hat, mit deren Rolle im Workspace. Eine Erstattung braucht die Berechtigung orders-manage. Ein Mitglied ohne sie bekommt einen Fehler statt einer Erstattung.
  • Schreibgeschützte Verbindungen. Wenn du Claude über den gehosteten Server verbindest, kannst du nur Lesezugriff erteilen. Jeder Schreibvorgang wird dann auf dem Server abgelehnt, egal was im Prompt steht.
  • Freigabe im Client. Der Server markiert jedes Tool, das löscht, veröffentlicht, erstattet oder storniert, als destruktiv. Claude Code fragt vor jedem Tool nach, das du nicht erlaubt hast. Halte also refund_order, cancel_order, publish_page und delete_page von deiner Allowlist fern, dann gibst du jedes einzeln frei.
  • Der Assistent im Admin fragt ebenfalls. Laufen dieselben Tools im Assistenten des Admins, hält der Server selbst die destruktiven zurück, bis du sie per Button freigibst.

Ausprobieren

Das Setup besteht aus einem API-Token, einer .mcp.json und zwei Umgebungsvariablen. Das Claude-Code-Tutorial führt dich mit einer Next.js-App durch. Content funktioniert in jedem Plan; Warenkorb und Checkout brauchen Pro.