Porównanie CMS

Twój agent może prowadzić sklep, nie tylko teksty

Zarejestruj zwrot, utwórz kod przeprosinowy, zaktualizuj baner promocyjny i opublikuj - jedna rozmowa z Claude, jeden serwer MCP, jeden workspace. Oraz to, co cmssy celowo zostawia Twojemu operatorowi płatności.

Z
Zespół Cmssy
7 min read

Twój agent może prowadzić sklep, nie tylko teksty

Większość serwerów MCP dla CMS kończy się na treści. Oto sprawa z obsługi klienta - zwrot, rabat, baner, publikacja - załatwiona przez agenta w jednej rozmowie, wraz z zabezpieczeniami.

Wtorkowe popołudnie

Klient pisze: kubek dotarł rozbity. Oto, czego zwykle wymaga naprawa takiej sprawy w headless:

  1. Zwrócić pieniądze u operatora płatności.
  2. Zarejestrować zwrot w backendzie commerce, żeby stany magazynowe i raporty się zgadzały.
  3. Utworzyć kod rabatowy, żeby klient wrócił.
  4. Przy okazji baner na stronie głównej wciąż reklamuje promocję sprzed tygodnia. Zmienić go w CMS i opublikować.

To trzy lub cztery panele administracyjne, a w większości headless CMS-ów co najmniej dwóch dostawców, bo CMS trzyma treść, a zamówienia trzyma coś innego.

W cmssy zamówienia, rabaty i strony żyją w jednym workspace, a serwer MCP udostępnia je wszystkie. Każdy krok po pierwszym mieści się w jednej rozmowie z agentem.

To samo popołudnie, w jednej rozmowie

To Claude Code połączony z workspace cmssy przez MCP. Prompty to to, co wpisujesz; nazwy narzędzi to to, co wywołuje Claude.

1. Znajdź zamówienie

Znajdź ostatnie zamówienie od anna@example.com i pokaż mi jego pozycje.

Claude wywołuje list_orders z search (dopasowuje e-mail klienta), a potem get_order, by pobrać pozycje, płatności, paczki i sumy.

2. Zarejestruj zwrot

Zwróciłem pieniądze za kubek w Stripe, id zwrotu re_3Q... na 24.00 EUR.
Zapisz to w zamówieniu.

Claude wywołuje refund_order z id zamówienia, amount: 2400 (kwoty są w jednostkach podstawowych) oraz id zwrotu ze Stripe jako reference.

Zwróć uwagę, co to robi, a czego nie. cmssy nie przesuwa pieniędzy. Płatności przyjmuje i zwraca Twój własny operator. cmssy rejestruje wynik. Id zwrotu jest wymagane, a wysłanie tego samego id dwa razy nie zarejestruje niczego dwa razy. Pełny zwrot zwraca też do magazynu sztuki, które jeszcze nie wyjechały, i anuluje paczki, które wciąż czekały na wysyłkę. W obu przypadkach cmssy wysyła webhook order.refunded lub order.partially_refunded, więc Twoja księgowość lub usługa e-mail się o tym dowiaduje.

3. Utwórz kod przeprosinowy

Utwórz kod 15% SORRY-ANNA, jedno użycie, ważny 30 dni.

create_discount z type: "percentage", value: 15, maxUses: 1 i endsAt. Sklep stosuje go przy zamówieniu przez delivery API, jak każdy inny kod.

4. Zaktualizuj blok promocyjny

Na stronie głównej zmień baner promocyjny, żeby ogłaszał darmową dostawę
w ten weekend, w każdym języku, który mamy.

Claude czyta stronę przez get_page, znajduje blok banera i zmienia go przez update_block_content. Nazwy pól Claude bierze z manifestu bloków Twojej witryny (list_block_types), a serwer ostrzega, gdy treść go nie spełnia, więc baner dostaje pola, które renderuje Twój komponent. Zmiana trafia do wersji roboczej.

5. Opublikuj

Opublikuj stronę główną.

publish_page. Jeśli Twoja witryna ma trasę revalidate zasubskrybowaną na content.changed, nowy baner jest na żywo kilka sekund później. cmssy nie renderuje strony; robi to Twoja aplikacja, na Twoim hostingu.

Co obejmuje serwer

Ten sam serwer, z tym samym tokenem:

  • Treść: strony, bloki, regiony layoutu, typy stron, media, formularze i ich zgłoszenia, własne modele danych i rekordy.
  • Commerce: zamówienia (zamówienia ręczne, edycje, zarejestrowane płatności, zwroty środków, anulowania, faktury, pipeline zamówień), zwroty towaru, przesyłki, koszyki, rabaty, produkty i stany, cenniki i kanały sprzedaży.
  • Klienci: konta, które logują się do Twojej witryny. Claude może je wylistować, zawiesić lub odblokować konto albo wysłać reset hasła.
  • Webhooki: tworzenie, aktualizacja i rotacja endpointów oraz odczyt ich logu dostaw.

Pełna lista, z uprawnieniem wymaganym przez każde narzędzie, jest w dokumentacji serwera MCP.

Jak to wypada w porównaniu

Contentful, Sanity i Storyblok mają oficjalne serwery MCP i dobrze radzą sobie z tym, co te produkty przechowują: wpisami i dokumentami, zasobami, typami treści i schematami, wydaniami. Jeśli potrzebujesz tylko agenta, który pisze i publikuje treść, wystarczy każdy z nich, i my też.

Różnica pojawia się, gdy zadanie dotyka pieniędzy. Te platformy nie przechowują Twoich zamówień; sklep zbudowany na nich trzyma zamówienia w osobnym systemie commerce. Kroki 1 i 2 powyżej idą wtedy przez API innego dostawcy, z innym serwerem MCP lub integracją, którą utrzymujesz. W cmssy zamówienie, rabat i baner są w tym samym workspace, pod tymi samymi rolami, za tym samym serwerem.

I żeby było jasne, gdzie są granice: cmssy nie jest operatorem płatności i nie chce nim być. Twój checkout rozmawia ze Stripe lub innym operatorem, Twój backend weryfikuje webhook operatora i dopiero wtedy płatność jest rejestrowana w cmssy.

Zabezpieczenia

Agent, który może zwrócić pieniądze za zamówienie, zasługuje na więcej ostrożności niż ten, który edytuje nagłówek. Co faktycznie go ogranicza:

  • Role. Token lub hostowane połączenie działa jako osoba, która je utworzyła, z jej rolą w workspace. Zwrot środków wymaga uprawnienia orders-manage. Członek bez niego dostaje błąd, nie zwrot.
  • Połączenia tylko do odczytu. Gdy łączysz Claude przez serwer hostowany, możesz nadać tylko odczyt. Każdy zapis jest wtedy odrzucany na serwerze, niezależnie od promptu.
  • Zatwierdzanie w kliencie. Serwer oznacza jako destrukcyjne każde narzędzie, które usuwa, publikuje, zwraca środki lub anuluje. Claude Code pyta przed uruchomieniem każdego narzędzia, na które nie pozwoliłeś, więc trzymaj refund_order, cancel_order, publish_page i delete_page poza listą dozwolonych, a każde zatwierdzisz osobno.
  • Asystent w panelu też pyta. Gdy te same narzędzia działają w asystencie w panelu admina, sam serwer wstrzymuje destrukcyjne, dopóki nie zatwierdzisz ich przyciskiem.

Wypróbuj

Konfiguracja to token API, plik .mcp.json i dwie zmienne środowiskowe. Poradnik Claude Code przeprowadza przez nią na przykładzie aplikacji Next.js. Treść działa w każdym planie; koszyk i checkout wymagają Pro.