Serwer MCP dla e-commerce: co Twój agent może prowadzić w cmssy
Każdy CMS ma dziś serwer MCP. Oto, do czego sięga serwer cmssy - zamówienie hurtowe od cennika do faktury, obsłużone w jednej rozmowie, wraz z zabezpieczeniami.
Serwer MCP to dziś standard w CMS-ie. Contentful, Sanity, Storyblok i Payload mają go wszystkie, a agent może pisać i publikować treść na każdym z nich. Pytanie poszło dalej: do czego agent ma dostęp, gdy już się połączy? W przypadku sklepu od odpowiedzi zależy, czy agent jest copywriterem, czy operatorem.
Ten wpis pokazuje, co udostępnia serwer MCP cmssy, jak się z nim połączyć, jak w jednej rozmowie od początku do końca obsłużyć zamówienie hurtowe i co jeszcze wymaga pracy.

Co zmienia MCP, a czego nie
MCP standaryzuje to, jak agent odkrywa narzędzia i je wywołuje. Nie sprawia, że Twoje dane stają się czystsze. Agent podłączony do sklepu, którego zamówienia żyją w jednym systemie, ceny w arkuszu, a teksty w CMS-ie, spędzi swoje tury na zszywaniu trzech API i pomyli się na szwach.
cmssy trzyma te elementy w jednym workspace: strony i bloki, własne modele danych, produkty i stany magazynowe, cenniki i kanały sprzedaży, klientów i ich firmy, koszyki, zamówienia, zwroty, paczki i faktury. Jeden serwer udostępnia to wszystko, pod jednym zestawem ról. To cała teza tego wpisu, a wszystko poniżej pokazuje, jak wygląda w praktyce.
Połączenie
Są dwie drogi wejścia.
- Hostowany, dla Claude. Claude w przeglądarce, Claude Desktop i Claude Code łączą się z
https://api.cmssy.io/mcp. Logujesz się do cmssy (OAuth 2.1 z PKCE), zaznaczasz workspace'y, z których Claude może korzystać, i wybierasz Tylko odczyt lub Odczyt i zapis. Nie ma tokena do kopiowania ani niczego do instalowania. W Claude Code to jedno polecenie:claude mcp add --transport http cmssy https://api.cmssy.io/mcp, a potem/mcp, żeby się zalogować. - stdio, dla całej reszty. Zadania CI, skrypty i dowolny klient MCP uruchamiają
npx @cmssy/mcp-serverz tokenem API (cs_…) i id workspace. Te same narzędzia, te same uprawnienia.
Tak czy inaczej agent działa jako osoba, która go podłączyła, z rolą tej osoby w każdym workspace, a każda zmiana trafia do logu audytu workspace pod jej nazwiskiem. Jedno połączenie może obejmować kilka workspace'ów: każde narzędzie przyjmuje argument workspace, a list_workspaces zwraca te, do których dałeś dostęp.
Co udostępnia serwer
Na październik 2026 serwer ma 132 narzędzia. Wszystkie mają jeden wzorzec nazw - list_* i get_* do odczytu, create_*, update_* i delete_* do zapisu, plus czasowniki dla zmian stanu - i dzielą się na kilka grup:
- Treść - strony, bloki, regiony layoutu, typy stron, publikacja, media, formularze i ich zgłoszenia, własne modele i rekordy.
list_block_typeszwraca typy bloków, które Twoja witryna faktycznie rejestruje, więc agent wypełnia pola renderowane przez Twoje komponenty, zamiast zgadywać. - Katalog - produkty, warianty, progi ilościowe, ceny w poszczególnych walutach, aktualizacje zbiorcze.
- Ceny B2B - cenniki z rabatem procentowym lub stałymi cenami na produkt i wariant, okna czasowe z datami, kanały sprzedaży oraz przypisanie do firmy lub klienta.
- Klienci i firmy - konta, które logują się do Twojej witryny, ich firmy, unijne numery VAT i ich weryfikacja, zwolnienia z podatku, zawieszenia i resety haseł.
- Zamówienia - zamówienia ręczne, edycje, zarejestrowane płatności, zwroty środków, anulowania, pipeline zamówień, paczki i śledzenie, zwroty towaru, faktury i faktury korygujące, anonimizacja.
- Webhooki - endpointy, logi dostaw, ponowne dostarczenie i rotacja sekretów.
Pełna lista, z uprawnieniem wymaganym przez każde narzędzie, jest generowana z serwera przy każdym wydaniu i publikowana jako katalog narzędzi MCP.
Dwóch rzeczy celowo brakuje. Żadne narzędzie nie dotyka Twojego kodu: nic nie zapisuje pliku, nie edytuje komponentu ani nie otwiera pull requesta, bo schematy bloków żyją w Twoim repozytorium, pod review. I żadne narzędzie nie przesuwa pieniędzy: cmssy rejestruje płatności i zwroty, które wykonał Twój operator, nigdy nie obciąża karty.
Zamówienie hurtowe, od oferty do faktury
Oto przypadek B2B, który zwykle rozciąga się na ERP, arkusz z cenami i dwa panele administracyjne. Hurtownia z artykułami technicznymi podpisuje umowę z nowym klientem handlowym, uzgadnia ceny kontraktowe na trzy produkty, przyjmuje pierwsze zamówienie mailem i je wysyła. Każdy krok poniżej to prompt do Claude i narzędzia, które wywołuje.

1. Cennik dla klienta
Utwórz cennik "Trade - Nordbau" z rabatem 12% od katalogu
i stałymi cenami na trzy złączki z załączonego arkusza.create_price_list z percentOff: 12, a potem set_price_list_entries ze stałymi cenami w jednostkach podstawowych. Stała cena nadpisuje procent dla swojego produktu lub wariantu; wszystko inne dostaje cenę katalogową minus 12%. Wywołanie działa na zasadzie wszystko albo nic: jeden błędny wiersz odrzuca cały import i wskazuje ten wiersz.
2. Firma
Numer VAT Nordbau GmbH to DE123456789 - sprawdziłem go w VIES.
Przypisz ich do nowego cennika.set_company_vat_id normalizuje numer i sprawdza jego format, set_company_vat_verified zapisuje, że ktoś go sprawdził, a set_company_price_list przypina cennik. Każdy członek firmy płaci teraz według niego. Zweryfikowany numer VAT z innego państwa członkowskiego niż państwo sprzedawcy daje ich zamówieniom stawkę zero jako odwrotne obciążenie, chyba że zamówienie jest wysyłane do kraju sprzedawcy.
Zwróć uwagę na podział: weryfikacja numeru VAT zmienia sposób opodatkowania zamówień, więc wymaga mocniejszej pary uprawnień niż samo ustawienie numeru. Agent podłączony przez kogoś, kto jej nie ma, dostaje błąd.
3. Zamówienie
Nordbau przysłał zamówienie mailem: 40 x złączka NW7.2, 25 x NW10,
wysyłka do ich magazynu w Hamburgu. Wprowadź je.create_manual_order z klientem i pozycjami. Ponieważ kupujący należy do Nordbau, pozycje są wyceniane z cennika firmy, a adres wysyłki decyduje o sposobie opodatkowania, który zamówienie zamraża. get_order pokazuje dokładnie, co zostało zastosowane: cennik, który wycenił każdą pozycję, sposób rozliczenia VAT i adnotację prawną do wydruku.
4. Płatność
Przelew za to zamówienie dotarł, tytuł NB-2026-118.record_order_payment z kwotą i tytułem przelewu. Płatności częściowe są w porządku; kwota jest ograniczona do salda do zapłaty, a zamówienie przechodzi w stan opłacone, gdy zostanie pokryte.
5. Paczka
Poszło przez DHL, numer przesyłki 00340434...create_shipment z przewoźnikiem i numerem przesyłki. Pominięcie pozycji wysyła wszystkie jeszcze niewysłane sztuki, a zamówienie zostaje oznaczone jako zrealizowane.
6. Faktura
Nasz system księgowy wystawił do niego FV/2026/1042 - tu link do PDF.record_order_invoice zapisuje numer, link i dostawcę w zamówieniu i wysyła order.invoiced. Ponowne zapisanie tego samego numeru niczego nie zmienia, więc agent, który ponawia wywołanie, nie wyrządza szkody. Późniejszy zwrot dostaje fakturę korygującą przez record_order_invoice_correction; wpis o fakturowaniu opisuje zautomatyzowaną wersję tego kroku.
Nic z tego nie jest benchmarkiem. To kształt pracy: każdy krok to narzędzie z wąskim wejściem, każdy krok jest sprawdzany względem roli osoby, która podłączyła agenta, a agent nigdy nie potrzebuje API drugiego dostawcy, żeby dokończyć zadanie.
Zabezpieczenia
Agent, który może zweryfikować numer VAT albo zwrócić pieniądze za zamówienie, zasługuje na więcej ostrożności niż ten, który edytuje nagłówek. Ograniczają go cztery warstwy, od zewnątrz do środka.

- Zatwierdzenie w kliencie. Każde narzędzie ma adnotacje MCP:
readOnlyHintna narzędziach, które tylko czytają,destructiveHintna narzędziach, które zmieniają lub usuwają dane. Claude Code pyta przed każdym narzędziem spoza Twojej listy dozwolonych, więc trzymajrefund_order,cancel_order,publish_pagei narzędzia usuwające poza nią i zatwierdzaj każde z osobna. - Dostęp tylko do odczytu. Hostowane połączenie z dostępem tylko do odczytu odrzuca na serwerze każdy zapis, niezależnie od tego, co zatwierdzi klient.
- Twoja rola. Agent ma dokładnie te uprawnienia, które Ty masz w danym workspace. Rozłączenie w Konto → Połączone aplikacje odcina go wszędzie naraz; admin workspace może usunąć jeden workspace z połączenia członka.
- Log audytu. Każda zmiana jest zapisywana pod nazwiskiem osoby, która podłączyła agenta, tak jak zmiana wykonana w panelu admina.
Jedna uczciwa uwaga: sam serwer MCP nie ma kroku potwierdzenia. Narzędzie destrukcyjne uruchamia się przy pierwszym wywołaniu, a zabezpieczeniem jest zatwierdzenie w Twoim kliencie. Wyjątkiem jest wbudowany asystent w panelu admina - tam serwer wstrzymuje narzędzie destrukcyjne, dopóki nie zatwierdzisz go przyciskiem.
Co jeszcze wymaga pracy
- Inne kreatory aplikacji. Hostowany serwer rejestruje klientów przez Client ID Metadata Documents, które Claude obsługuje. Kreatory, które znają tylko Dynamic Client Registration albo statyczny token bearer, jak v0, Lovable i Bolt, nie mogą jeszcze połączyć się z hostowanym endpointem, a jako narzędzia hostowane nie mogą też uruchomić pakietu stdio. Wygenerowane przez nie aplikacje bez problemu czytają treść przez SDK; następną luką do zamknięcia jest połączenie agenta na etapie budowania.
- Wyszukiwanie. Wyszukiwanie pełnotekstowe w treści jest dostępne w asystencie panelu admina, ale nie jest podpięte w serwerze MCP.
- Nowe workspace'y. Workspace, do którego dołączysz po połączeniu, nie jest dodawany do połączenia. Połącz się ponownie, żeby go uwzględnić.
Wypróbuj
Dodaj hostowany serwer do Claude, zaloguj się i poproś o listę Twoich zamówień. Dokumentacja serwera MCP opisuje obie metody połączenia, poradnik Claude Code buduje z nim stronę, a przykład z obsługi klienta załatwia zwrot, rabat i baner w jednej rozmowie. Treść działa w każdym planie; koszyk i checkout wymagają Pro.
