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:
- Zwrócić pieniądze u operatora płatności.
- Zarejestrować zwrot w backendzie commerce, żeby stany magazynowe i raporty się zgadzały.
- Utworzyć kod rabatowy, żeby klient wrócił.
- 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_pageidelete_pagepoza 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.