Interfejs MCP
Zweryfikowane
W skrócie
Dział zatytułowany „W skrócie”MitoOps udostępnia standardowy zdalny serwer MCP (Model Context Protocol) pod adresem /api/mcp, przez który zgodna aplikacja AI sama pobiera dane. Stoi na tych samych możliwościach co REST: nie jest to drugi interfejs z własnymi zapytaniami, lecz inny sposób zadania tego samego pytania.
MCP nie jest cechą modelu, lecz aplikacji, w której model działa (klienta). Podłączy się każda aplikacja, która obsługuje zdalne MCP przez HTTP z OAuth lub z kluczem dostępu. Claude.ai to produkcyjnie sprawdzony klient: jego dokładna procedura jest poniżej; dla innej aplikacji obowiązuje ogólna procedura w kolejnej części. Klientów, których nie przetestowaliśmy, nie ogłaszamy jako sprawdzonych.
Uwierzytelnić się można na dwa sposoby:
- kluczem dostępu wydanym w aplikacji: dla własnego programu lub serwera, który wywołuje serwer;
- przez OAuth, gdy łączy się aplikacja AI, która to potrafi: wtedy loguje się użytkownik i na ekranie zgody wybiera, co aplikacja może odczytywać.
W obu przypadkach token jest przesyłany w nagłówku Authorization: Bearer i w obu obowiązuje ten sam zakres uprawnień: czego klucz lub zgoda nie obejmuje, tego narzędzie nie zwróci.
Jak podłączyć Claude.ai: sprawdzone połączenie krok po kroku
Dział zatytułowany „Jak podłączyć Claude.ai: sprawdzone połączenie krok po kroku”Claude.ai nie łączy się z poszczególnymi e-shopami, lecz z MitoOps, czyli z warstwą, która już łączy dane wszystkich e-shopów. Nie potrzeba żadnego klucza, Client ID ani tajnego klucza. Claude.ai wszystko ustala sam z adresu interfejsu.
- W Claude.ai otworzyć Settings (Ustawienia) → Customize → Connectors (w planie zespołowym najpierw Organization settings → Connectors jako administrator).
- Nacisnąć Add custom connector (Dodaj własny konektor).
- W polu Name wpisać
MitoOps. - W polu URL wkleić adres interfejsu MCP z ekranu Ustawienia → API & MCP, w postaci
https://<adres aplikacji>/api/mcp, na przykładhttps://app.mitoops.com/api/mcp. - Advanced settings pozostawić puste: Claude.ai użyje własnych hostowanych metadanych klienta (OAuth). Nacisnąć Add.
- Przy konektorze nacisnąć Connect (Połącz).
- Otworzy się logowanie do MitoOps (także z drugim czynnikiem, jeśli jest włączony). Należy się zalogować.
- Pojawi się ekran zgody: która aplikacja, który klient, co może odczytywać i których e-shopów to dotyczy. Uprawnienia są pogrupowane według obszarów aplikacji (sprzedaż, magazyn, wysyłka, marketing, program partnerski, automatyzacje). Odczyt jest wstępnie zaznaczony, dane wrażliwe i przygotowanie szkiców nie; zmiany o bezpośrednim skutku (na przykład usuwanie kuponów lub zatwierdzenie wysyłki) są pojedynczo w zwiniętej sekcji Uprawnienia zaawansowane. Przy każdej grupie jest lista tego, co dokładnie obejmuje.
- Sprawdzić zakresy. Wrażliwe (na przykład Zestawienia, Ceny zakupu i marże, Dane osobowe klientów, Dostawcy i zakupy, Automatyzacje: szkice, Dostępności: propozycje zmian i Reklamacje: propozycje zmian ustawień) nie są zaznaczone. Jeśli Claude ma widzieć marżę, dane osobowe, proponować szkice i zmiany automatyzacji albo zmiany dostępności czy ustawień reklamacji, należy zaznaczyć je świadomie. Szablony i ustawienia reklamacji odczytuje zakres Reklamacje: ustawienia i szablony. Wybrać e-shopy.
- Nacisnąć Zezwól. Claude.ai wraca na swoją stronę, a konektor jest podłączony.
- W rozmowie nacisnąć + → Connectors i włączyć konektor MitoOps.
To, co zostanie zaznaczone na ekranie zgody, obowiązuje, i nigdy nie więcej, niż może sam użytkownik. Kto nie ma w aplikacji prawa do cen zakupu, nie może go przekazać dalej. Token, który otrzymuje Claude.ai, niesie tylko dozwolone zakresy.
Inny klient MCP lub aplikacja AI przez OAuth
Dział zatytułowany „Inny klient MCP lub aplikacja AI przez OAuth”Aplikacji podaje się ten sam adres /api/mcp i nic więcej, żadnego klucza. Dalej odbywa się to samo:
- Aplikacja pyta nas, dokąd skierować logowanie (metadane chronionego zasobu według RFC 9728).
- Otwiera się logowanie do MitoOps.
- Pojawia się ekran zgody, na którym wybiera się zakresy i e-shopy.
- Po zezwoleniu połączenie jest gotowe, a aplikacja widzi narzędzia.
Aplikacja, która sama wybiera zakresy, musi podać je w żądaniu: ekran zgody zaoferuje tylko to, o co aplikacja poprosiła (i do czego użytkownik ma prawo). Interfejs ogłasza wszystkie zakresy, w tym wrażliwe, zarówno w wyzwaniu WWW-Authenticate, jak i w scopes_supported. Wrażliwe mimo to nigdy nie są przyznawane same: na ekranie zgody są oznaczone i niezaznaczone, a token jest wydawany zawężony do tego, na co zezwolono (scope w odpowiedzi tokenu).
Jak połączyć się kluczem dostępu
Dział zatytułowany „Jak połączyć się kluczem dostępu”Asystent lub program potrzebuje adresu /api/mcp w domenie aplikacji i klucza dostępu z MCP wśród interfejsów. Dokładny adres wypisuje ekran Ustawienia → API & MCP w bloku „Gdzie to podłączyć”. Klucz wydany tylko dla REST nie działa w MCP i odwrotnie.
Narzędzia
Dział zatytułowany „Narzędzia”Lista narzędzi zależy od zakresów klucza lub zgody: asystent zobaczy dokładnie to, na co mu zezwolono, i nic więcej. Narzędzie spoza zakresu dla niego nie istnieje.
| Narzędzie MCP | Zakres | REST | Co zwraca |
|---|---|---|---|
account_connection |
stores:read |
GET /account/connection |
Diagnostyka tego połączenia: aplikacja, kto i kiedy udzielił dostępu, przyznane i brakujące uprawnienia według obszarów, e-sklepy i tryb zapisu przez AI. |
account_entitlements |
account:read |
GET /account/entitlements |
Taryfa klienta, funkcje i limity z aktualnym wykorzystaniem. |
affiliate_articles_create |
affiliate:write |
— | zapis: Założenie własnego artykułu pomocy we wszystkich językach naraz (tytuł i treść w podanym języku); HTML zostaje oczyszczony. |
affiliate_articles_get |
affiliate:read |
GET /affiliate/articles/:key |
Jeden artykuł pomocy z treścią (HTML) we wszystkich językach lub w jednym; zmienne niepodstawione. |
affiliate_articles_list |
affiliate:read |
GET /affiliate/articles |
Artykuły pomocy portalu partnerskiego: klucz, domyślny/własny, włączenie, kolejność, stan według języków (tytuł, adres, wypełnione, zgodne z domyślnym). |
affiliate_articles_set_state |
affiliate:write |
— | zapis: Włączenie lub wyłączenie artykułu pomocy dla wszystkich języków naraz; domyślny nie jest usuwany, tylko wyłączany. |
affiliate_articles_update |
affiliate:write |
— | zapis: Edycja artykułu pomocy w jednym języku (tytuł, adres, treść; HTML zostaje oczyszczony) lub przywrócenie domyślnej treści; zwraca nieznane zmienne. |
affiliate_campaigns_create |
affiliate:write |
— | zapis: Założenie kampanii w e-shopie: nazwa, wynagrodzenie (nie wymyślać), ważność przypisania, dostępność, zatwierdzanie konwersji. |
affiliate_campaigns_get |
affiliate:read |
GET /affiliate/campaigns/:campaignId |
Jedna kampania programu partnerskiego. |
affiliate_campaigns_list |
affiliate:read |
GET /affiliate/campaigns |
Kampanie programu partnerskiego e-shopu z wynagrodzeniem, dostępnością i liczbami. |
affiliate_campaigns_update |
affiliate:write |
— | zapis: Edycja kampanii: nazwa, wynagrodzenie, ważność, dostępność, zatwierdzanie, włączenie/wyłączenie, opis dla partnerów według języków. |
affiliate_code_requests_decide |
affiliate:write |
— | zapis: Obsługa wniosku partnera o własny kod: zatwierdzenie od razu zakłada kod w e-shopach kampanii z rabatem dla klienta (wymaga także coupons:write), retry powtarza zakładanie, odrzucenie wymaga powodu; partner otrzymuje e-mail. |
affiliate_code_requests_list |
affiliate:read |
GET /affiliate/code-requests |
Wnioski partnerów o własny kod rabatowy ze stanem i powodem; oczekujące najpierw. |
affiliate_conversions_decide |
affiliate:approve |
— | zapis: Decyzja o jednej prowizji według id: approve (nowa → zatwierdzona), reject (nowa → odrzucona, powód obowiązkowy), cancel (zatwierdzona → anulowana, powód obowiązkowy); wypłacona nie jest cofana, ta sama decyzja drugi raz niczego nie zmienia; partner otrzymuje e-mail. |
affiliate_conversions_get |
affiliate:read |
GET /affiliate/conversions/:conversionId |
Szczegóły jednej konwersji: kwoty, prowizja, stan prowizji z powodem, status zamówienia w e-shopie, korekta, wypłata. |
affiliate_conversions_list |
affiliate:read |
GET /affiliate/conversions |
Konwersje programu partnerskiego e-shopu: podstawa prowizji i całe zamówienie z VAT, prowizja, stan prowizji z powodem, status zamówienia w e-shopie, powiązanie z wypłatą. |
affiliate_discount_codes_ensure |
coupons:write |
— | zapis: Aby partner miał w e-shopie kod rabatowy: kupon zostaje założony przez kanoniczne kupony (lub użyty istniejący) i przypisany partnerowi; notatka w e-shopie powstaje automatycznie. |
affiliate_discount_codes_list |
affiliate:read |
GET /affiliate/discount-codes |
Kody rabatowe partnerów w e-shopie z liczbą użyć i obrotem. |
affiliate_documents_draft_create |
affiliate:write |
— | zapis: Propozycja nowej treści dokumentu prawnego jako projekt; obowiązującej treści nie zmienia, publikuje ją człowiek w aplikacji z różnicami i audytem. |
affiliate_documents_get |
affiliate:read |
GET /affiliate/documents/:key/content |
Jeden dokument prawny programu z treścią według języków (zapisany tekst, treść publiczna, wersja, odciski, źródło, metadane PDF) i otwartymi projektami. |
affiliate_documents_list |
affiliate:read |
GET /affiliate/documents |
Dokumenty programu (warunki, umowy): polityka potwierdzania, podpisana kopia, załącznik e-maila, wersje według języków, gotowość i liczby potwierdzeń. |
affiliate_documents_update |
affiliate:write |
— | zapis: Polityka dokumentu programu (kogo dotyczy, kiedy jest potwierdzany, podpisana kopia, załącznik e-maila, włączenie); treść przesyła się w aplikacji. |
affiliate_email_templates_list |
affiliate:read |
GET /affiliate/email-templates |
Szablony e-maili do partnerów według języków (temat, włączenie, ze zdarzeniem także treść) i automatyczne załączniki e-maila Konto zatwierdzone. |
affiliate_email_templates_update |
affiliate:write |
— | zapis: Edycja szablonu e-maila do partnerów w jednym języku (temat, treść) lub włączenie/wyłączenie zdarzenia. |
affiliate_links_generate |
affiliate:read |
GET /affiliate/links/generate |
Śledzony link partnerski do strony głównej, produktu lub kategorii e-shopu kampanii; po kliknięciu zachowuje przypisanie do partnera. |
affiliate_partners_get |
affiliate:read |
GET /affiliate/partners/:partnerId |
Jeden partner programu z kampaniami, które ma do dyspozycji. |
affiliate_partners_list |
affiliate:read |
GET /affiliate/partners |
Partnerzy programu ze stanem, wynikami i prowizjami; kontakt tylko z danymi osobowymi. |
affiliate_partners_set_market |
affiliate:write |
— | zapis: Członkostwo partnera w e-shopie: udostępnić (active, zatwierdza też wniosek z portalu) lub odebrać (revoked); kampanie, kupony i dokumenty e-shopu dotyczą partnera tylko przy aktywnym członkostwie. |
affiliate_partners_set_state |
affiliate:write |
— | zapis: Decyzja o koncie partnera (zatwierdzić, odrzucić, zawiesić, przywrócić do oczekujących); zatwierdzenie wysyła e-mail z umową. |
affiliate_payouts_list |
affiliate:read |
GET /affiliate/payouts |
Wypłaty prowizji partnerom ze stanem; bez danych bankowych i rozliczeniowych. |
affiliate_portal_get |
affiliate:read |
GET /affiliate/portal |
Publiczny portal partnera: adresy według e-shopów, otwartość rejestracji z powodem, własne domeny, osoba kontaktowa, wygląd i stan tekstów według języków. |
affiliate_portal_pages_update |
affiliate:write |
— | zapis: Własne teksty publicznego portalu w jednym języku (strony logowania/rejestracji/przeglądu, informacja, opis programu); HTML zostaje oczyszczony. |
affiliate_settings |
affiliate:read |
GET /affiliate/settings |
Ustawienia programu partnerskiego: prowizje, kliknięcia, minimum wypłaty, polecenia. |
affiliate_settings_update |
affiliate:write |
— | zapis: Ustawienia programu poza pieniędzmi: nazwa, rejestracja, automatyczne zatwierdzanie, osoba kontaktowa, kolory, link do zasad. |
affiliate_signatures_get |
affiliate:read |
GET /affiliate/signatures/:signatureId |
Jeden podpis elektroniczny z podpisaną treścią i migawką wartości; niezmienny rekord, PDF składa się w aplikacji. |
affiliate_signatures_list |
affiliate:read |
GET /affiliate/signatures |
Dokumenty partnerów podpisane elektronicznie (kto, dokument, wersja, język, e-shop, czas, sposób, weryfikacja, odciski, stan) oraz partnerzy, którym brakuje podpisu; tylko odczyt, podpis powstaje wyłącznie w portalu. |
affiliate_statistics |
affiliate:read |
GET /affiliate/statistics |
Statystyka programu partnerskiego: przebieg według dni, źródła przypisania, ranking partnerów. |
affiliate_summary |
affiliate:read |
GET /affiliate/summary |
Przegląd programu partnerskiego e-shopu za okres: kliknięcia, konwersje, prowizje, partnerzy. |
affiliate_variables_list |
affiliate:read |
GET /affiliate/variables |
Rejestr zmiennych treści i e-maili programu partnerskiego: nazwy kanoniczne, aliasy, typ, miejsca użycia, przykład; opcjonalna kontrola tekstu pod kątem nieznanych zmiennych. |
analytics_advertising |
reports:read |
GET /analytics/advertising |
Reklama: wydatki, budżet, ROAS, udział wydatków w obrocie, CPA, średnia wartość zamówienia i MER z porównaniem; Google Ads i Meta Ads, kliknięcia z GA4, 6 miesięcy. |
analytics_channels |
analytics:read |
GET /analytics/channels |
Rozkład wizyt, zamówień i obrotu według kanałów marketingowych. |
analytics_comparison |
reports:read |
GET /analytics/comparison |
Obrót z porównaniem: obrót, zamówienia, AOV, wizyty, CR i AI/LLM wobec poprzedniego okresu lub roku. |
analytics_monthly |
reports:read |
GET /analytics/monthly |
Obrót, zamówienia i wizyty według miesięcy (maksymalnie 24), na przykład rok do roku. |
analytics_order_coverage |
analytics:read |
GET /analytics/order-coverage |
Pokrycie zamówień i obrotu pomiarem w analityce. |
analytics_order_heatmap |
reports:read |
GET /analytics/order-heatmap |
Kiedy przychodzą zamówienia: dzień tygodnia × godzina, najsilniejszy dzień i godzina. |
analytics_overview |
analytics:read |
GET /analytics/overview |
Wizyty, zamówienia, obrót, współczynnik konwersji i udział AI/LLM za okres. |
analytics_revenue_sources |
reports:read |
GET /analytics/revenue-sources |
Skąd pochodzi obrót: kanały, sumy AI/LLM, MitoOps i Affiliate, pozyskanie według GA4. |
analytics_seo |
analytics:read |
GET /analytics/seo |
Search Console: kliknięcia, wyświetlenia, CTR i pozycja według zapytań lub stron. |
automations_catalog |
automations:read |
GET /automations/catalog |
Katalog automatyzacji: wyzwalacze, warunki, operatory, akcje, szablony; catalogVersion dla propozycji. |
automations_create_draft |
automations:write |
— | zapis: Tworzy WYŁĄCZONY szkic automatyzacji. Nie włącza go ani nie uruchamia. |
automations_get |
automations:read |
GET /automations/:workflowId |
Jedna automatyzacja z DSL i wynikiem walidacji. |
automations_list |
automations:read |
GET /automations |
Automatyzacje klienta ze stanem i zakresem e-shopów. |
automations_options |
automations:read |
GET /automations/options |
Słownik dla pola automatyzacji (statusy, metody dostawy, płatności, szablony, reklamacje…): value do DSL i nazwa. |
automations_revision_create_draft |
automations:write |
— | zapis: Proponuje zmianę opublikowanej automatyzacji jako rewizję do zatwierdzenia przez człowieka. Działająca wersja się nie zmienia. |
automations_revision_discard_draft |
automations:write |
— | zapis: Wycofuje otwartą rewizję opublikowanej automatyzacji. |
automations_revision_update_draft |
automations:write |
— | zapis: Edytuje otwartą rewizję opublikowanej automatyzacji. |
automations_runs |
automations:read |
GET /automations/:workflowId/runs |
Historia przebiegów jednej automatyzacji. |
automations_templates |
automations:read |
GET /automations/templates |
Gotowe wzory automatyzacji z DSL. |
automations_update_draft |
automations:write |
— | zapis: Edytuje nieopublikowany szkic automatyzacji z optymistyczną współbieżnością. |
automations_validate_draft |
automations:read |
— | Sprawdza propozycję automatyzacji bez zapisu. |
chatbot_conversations_get |
chatbot-conversations:read |
GET /chatbot/conversations/:sessionId |
Zapis jednej rozmowy z chatbotem internetowym wraz ze źródłami odpowiedzi bota. |
chatbot_conversations_list |
chatbot-conversations:read |
GET /chatbot/conversations |
Rozmowy klientów z chatbotem internetowym od ostatnio aktywnej, z pierwszym pytaniem; kursor. |
chatbot_outcomes |
chatbot:read |
GET /chatbot/outcomes |
How web chatbot conversations ended: since when the outcome is measured, measured and unmeasured conversations, known and unknown outcome, resolved, unresolved, bot error and resolution rate with its denominator; N/A with a reason when the denominator is zero. Totals only. |
chatbot_stats |
chatbot:read |
GET /chatbot/stats |
Statystyka chatbota internetowego za okres: lejek dymka, otwarcia, rozmowy, wyniki, oceny. |
chatbot_topics |
chatbot:read |
GET /chatbot/topics |
O czym były rozmowy: udziały tematów, produkty, typ strony początkowej i kandydaci na lukę w wiedzy. |
claims_config_change_draft |
claims-settings:draft |
— | zapis: Proponuje zmianę procesów, stanów, etykiet, szablonów, tekstów formularza i ustawień modułu reklamacji; zapisze ją dopiero człowiek po zatwierdzeniu w aplikacji. |
claims_config_draft_get |
claims-settings:read |
GET /claims/config-drafts/:draftId |
Stan propozycji zmiany ustawień reklamacji (czeka, zapisana, odrzucona). |
claims_configuration |
claims-settings:read |
GET /claims/configuration |
Ustawienia reklamacji: etykiety, pola, transport zwrotny, formularz w e-shopie, typy formularza. |
claims_get |
claims:read |
GET /claims/:code |
Jedno zgłoszenie z pozycjami i powiązaniami: zamówienie, korekta, przesyłka zwrotna, ruch magazynowy. |
claims_list |
claims:read |
GET /claims |
Reklamacje i zwroty jednego e-shopu od najnowszego. |
claims_refund_options |
claims-settings:read |
GET /claims/refund-options |
Refunds: variable symbol source, refund coupon validity, coupon in the form, when the form asks for an account number. |
claims_refund_readiness |
claims:read |
GET /claims/:code/refund-readiness |
Claim before a refund: what the customer requests, masked account, variable symbol, mode and whether the claim can be deleted. |
claims_refund_settings |
claims-settings:read |
GET /claims/refund-settings |
Zwroty reklamacji: tryb, konta bankowe z przydatnością do poleceń przelewu (zamaskowane), konto domyślne i ręczne. |
claims_routes |
claims-settings:read |
GET /claims/routes |
Transport zwrotny reklamacji: trasy, adresy, profile przewoźników z ID i obsługą zwrotów, typy zgłoszeń. |
claims_routes_change_draft |
claims-routes:draft |
— | zapis: Proponuje trasę zwrotu (także dla całej UE lub świata) i adres odbiorcy; zapisze je człowiek po zatwierdzeniu (lub autonomiczny zapis, jeśli klient go włączył). |
claims_settings |
claims:read |
GET /claims/settings |
Procesy reklamacji z ID i nazwami (typy, kroki, statusy, terminy), etykiety; ustawienia modułu z zakresem claims-settings:read. |
claims_statistics |
claims:read |
GET /claims/statistics |
Statystyka reklamacji i zwrotów za okres: liczby, czasy obsługi, typy, oceny, powody. |
claims_templates |
claims-settings:read |
GET /claims/templates |
Szablony e-maili (temat, tekst, kiedy i czy są wysyłane automatycznie) oraz protokołów reklamacji. |
content_articles_search |
products:read |
GET /content/articles |
Artykuły bloga e-shopu z adresem na stronie i obrazkiem podglądu. |
coupons_activation_link |
coupons:read |
GET /coupons/activation-link |
Link, który zastosuje klientowi ISTNIEJĄCY kupon w koszyku. Kuponu nie tworzy. |
coupons_activation_status |
coupons:read |
GET /coupons/activation-status |
Czy kupon w e-shopie można użyć przez link aktywacyjny: lustro kuponu + stan kodu na stronie. |
coupons_capabilities |
coupons:read |
GET /coupons/capabilities |
Co o kuponach potrafi platforma danego e-shopu. Warto odczytać przed zakładaniem. |
coupons_ensure |
coupons:write |
— | zapis: Aby kupon w wybranych e-shopach istniał. Przy innej wysokości rabatu NIE ZOSTANIE NADPISANY. |
coupons_get |
coupons:read |
GET /coupons/:code |
Jeden kupon z ewidencji MitoOps. Gdy go w niej nie ma, odpowiedź to „nie znaleziono”. |
coupons_list |
coupons:read |
GET /coupons |
Kupony rabatowe e-shopu z typem i wysokością rabatu, ważnością i wyprowadzonym stanem. |
coupons_remove |
coupons:delete |
— | zapis: Wyraźne usunięcie kuponu: zależności, podgląd, potwierdzenie; z aktywną zależnością nie jest usuwany. |
coupons_update |
coupons:write |
— | zapis: Wyraźna edycja istniejącego kuponu łącznie z ograniczeniami do produktów i kategorii; podgląd, potem potwierdzenie. |
customers_get |
customers:read |
GET /customers/:customerKey |
Jeden klient z katalogu: tożsamość, e-shopy, kwoty LIFETIME i opcjonalnie PERIOD, rozbicie według e-shopów. |
customers_list |
customers:read |
GET /customers |
Katalog klientów: tożsamość (z maskowaniem PII), e-shopy, język, liczby LIFETIME i obrót według walut; opcjonalny filtr aktywności zakupowej w okresie. |
customers_performance |
reports:read |
GET /customers/performance |
Klienci jako pseudonimy: liczba zamówień, obrót, pierwsze i ostatnie zamówienie, ponowny zakup, LTV. |
credit_notes_search |
invoices:read |
GET /credit-notes |
Wyszukiwanie w korektach. |
documents_list |
invoices:read |
GET /documents |
Dokumenty księgowe jednego rodzaju (faktury, faktury zaliczkowe, korekty) stronami z cyklem życia, stanem w źródle, filtrem ważności i dostępnością PDF. |
documents_pdf_link |
invoices:read |
— | Krótkotrwały link (10 minut) do PDF faktury, faktury zaliczkowej lub korekty do otwarcia w przeglądarce. |
invoices_get |
invoices:read |
GET /invoices/:invoiceCode |
Jedna faktura z pozycjami, kwotami, korektami i fakturami zaliczkowymi do niej. |
invoices_search |
invoices:read |
GET /invoices |
Wyszukiwanie w fakturach. |
inventory_movements |
inventory:read |
GET /inventory/movements |
Historia ruchów magazynowych: kiedy, co, o ile, dlaczego i z jakiego źródła. |
inventory_product_availability |
inventory:read |
GET /inventory/availability |
Stan zapasu dla wielu pozycji naraz. |
inventory_stock |
inventory:read |
GET /inventory/stock |
Stan zapasu jednej pozycji wraz ze źródłem wartości. |
orders_get |
orders:read |
GET /orders/:orderCode |
Jedno zapisane zamówienie łącznie z pozycjami. |
orders_list |
orders:read |
GET /orders |
Zapisane zamówienia jednego e-shopu, od najnowszego. |
availabilities_change_draft |
availabilities:draft |
— | zapis: PROPOZYCJA zmiany słownika dostępności (założyć, edytować, usunąć). Do e-shopu zapisuje ją dopiero człowiek, zatwierdzając w MitoOps. |
availabilities_draft_get |
products:read |
GET /availabilities/drafts/:draftId |
Stan propozycji zmiany słownika dostępności: czeka na zatwierdzenie, zapisana z wynikiem, odrzucona, wygasła. |
availabilities_list |
products:read |
GET /availabilities |
Słownik dostępności e-shopu: nazwa, opis, zaopatrzenie, dostawa, znaczenie dla Google, kolor, rola domyślna. |
categories_content_change_draft |
category-content:draft |
— | zapis: PROPOZYCJA nowych tekstów kategorii (do 30 naraz); do sklepu zapisuje je dopiero człowiek, zatwierdzając w MitoOps. |
categories_content_draft_get |
category-content:read |
GET /catalog/category-content-drafts/:draftId |
Stan propozycji tekstów kategorii: czeka na zatwierdzenie, zapisana, odrzucona, wygasła. |
categories_content_get |
category-content:read |
GET /categories/:guid/content |
Teksty kategorii (górny i dolny opis, tytuł i opis SEO) z odciskiem i możliwością zapisu pola. |
categories_list |
products:read |
GET /categories |
Kategorie e-shopu z liczbą produktów. |
products_content_change_draft |
product-content:draft |
— | zapis: PROPOZYCJA nowych tekstów produktów (do 30 naraz); do sklepu zapisuje je dopiero człowiek, zatwierdzając w MitoOps. |
products_content_draft_get |
product-content:read |
GET /catalog/product-content-drafts/:draftId |
Stan propozycji tekstów produktów: czeka na zatwierdzenie, zapisana z uwagami sklepu, odrzucona, wygasła. |
products_content_get |
product-content:read |
GET /products/:code/content |
Teksty produktu ze sklepu (opis, krótki opis, tytuł i opis SEO) z odciskiem i możliwością zapisu pola. |
products_content_policy |
product-content:read |
GET /product-content/policy |
Zasady treści sklepu bez odpytywania sklepu: co ten dostęp może czytać i proponować, które pola platforma zapisze, tryb zatwierdzania i zapis autonomiczny, limity i odciski. |
products_get |
products:read |
GET /products/:code |
Jeden produkt według kodu łącznie z klasyfikacją i ceną z karty. |
products_search |
products:read |
GET /products |
Wyszukiwanie produktów według nazwy, kodu, EAN lub PLU. |
reports_financial_summary |
reports:read |
GET /reports/financial-summary |
Podsumowanie finansowe okresu: obrót, VAT, zamówienia, AOV; z uprawnieniami także zakup, zysk brutto, koszty i wynik. |
sales_order_performance |
reports:read |
GET /sales/order-performance |
Obrót według zamówień w EUR z sumami za cały okres; z uprawnieniem także zakup, zysk brutto i marża na zamówienie. |
sales_product_performance |
reports:read |
GET /sales/product-performance |
Sprzedaż według produktów z dokumentów; z uprawnieniem także cena zakupu w czasie sprzedaży i marża. |
search_console_query |
search-console:read |
GET /search-console/query |
Search Console według dni, zapytań, stron, krajów i urządzeń, ze stronicowaniem i skrótem zawartości. |
search_console_status |
search-console:read |
GET /search-console/status |
Stan Search Console sklepu: połączenie, właściwość, uprawnienia, synchronizacja i zakres archiwum. |
shipping_carriers |
shipping:read |
GET /shipping/carriers |
Podłączeni przewoźnicy i ich profile, bez danych dostępowych. |
shipping_shipment_detail |
shipping:read |
GET /shipping/shipments/:shipmentId |
Jedna przesyłka ze wszystkimi zdarzeniami śledzenia. |
shipping_shipments |
shipping:read |
GET /shipping/shipments |
Przesyłki jednego e-shopu z przewoźnikiem, krajem oraz czasami przekazania i doręczenia. |
shipping_stats |
shipping:read |
GET /shipping/stats |
Statystyki doręczeń według przewoźników: liczby, skuteczność, mediana i p90 czasu doręczenia, kraje. |
stores_integration_status |
stores:read |
GET /stores/integration-status |
Stan kodu MitoOps na stronie według e-shopów: zainstalowany, wersja, moduły, gotowość kuponu z adresu. |
stores_list |
stores:read |
GET /stores |
Lista e-shopów klienta wraz z ich kodem. |
suppliers_get |
purchasing:read |
GET /suppliers/:supplierId |
Jeden dostawca z ofertami produktów i składnikami kosztów. |
suppliers_list |
purchasing:read |
GET /suppliers |
Dostawcy klienta z liczbą ofert i powiązanych produktów. |
webhooks_deliveries |
webhooks:read |
GET /webhooks/endpoints/:endpointId/deliveries |
Dziennik doręczeń jednego endpointu bez treści. |
webhooks_endpoint |
webhooks:read |
GET /webhooks/endpoints/:endpointId |
Jeden endpoint webhooka z liczbą oczekujących doręczeń. |
webhooks_endpoints |
webhooks:read |
GET /webhooks/endpoints |
Endpointy webhooków klienta bez tajnych kluczy i stan kolejki. |
webhooks_events |
webhooks:read |
GET /webhooks/events |
Katalog zdarzeń webhooków wychodzących, koperta i podpis. |
Imię i nazwisko, e-mail, telefon i ulica klienta są w orders_list, orders_get, claims_list i claims_get tylko z zakresem personal-data:read; bez niego odpowiedź zawiera kraj i miasto. To samo dotyczy kontaktu dostawcy i partnera programu (affiliate_partners_*). Zakres nie ma własnego narzędzia.
W katalogu klientów (customers_list, customers_get) ten sam zakres decyduje o imieniu i nazwisku, firmie, e-mailu, telefonie i płci marketingowej; bez niego zostaje pseudonim, e-shopy, kraj, język, liczby i daty. Obrót i LTV wymagają dodatkowo reports:read. Płeć marketingowa to szacunek na podstawie imienia (genderSource: "name_inference"), a nie dana podana przez klienta; asystent powinien ją tak przedstawiać. Dane bankowe i podatkowe partnerów nigdy nie są wydawane.
Chatbot internetowy: tematy rozmów. chatbot_topics (ten sam zakres chatbot:read) odpowiada jednym wywołaniem na pytanie „o czym to było”: udział rozmów według tematów z zamkniętej taksonomii (transport, płatność, zwrot, wybór produktu, parametry, użytkowanie, pytania edukacyjne…), wskaźnik rozwiązania i liczba kandydatów na lukę w wiedzy według tematu, najczęstsze produkty (o które pytali klienci i które polecił bot), z jakiego typu strony zaczynają się rozmowy i przebieg według dni. Ocena jest deterministyczna: opiera się na źródłach odpowiedzi, polecanych produktach i słowniku słów kluczowych, więc dwa wywołania dla tego samego okresu dają tę samą liczbę. Zwraca tylko sumy: tekst klienta nie trafia do niej żadną drogą, nawet jako „najczęstsze pytanie”. Udział jest zawsze podawany z liczbą: przy małej liczbie rozmów procent jest niewiarygodny. chatbot_conversations_list ma filtry topic i knowledgeGapCandidate; zapis konkretnej rozmowy nadal wymaga wrażliwego zakresu i jest dostępny tylko w ramach retencji.
Chatbot internetowy. Statystyka (chatbot_stats, zakres chatbot:read) zwraca tylko sumy: ilu wizytom na stronie pokazał się dymek i ile z nich w niego kliknęło, otwarcia okna, liczbę rozmów i wiadomości, co bot załatwił, oceny klientów i lejek zapisu na newsletter. Rozmowy klientów (chatbot_conversations_list, chatbot_conversations_get) wymagają własnego wrażliwego zakresu chatbot-conversations:read, który na ekranie zgody zaznacza się świadomie: klient jest w ewidencji tylko losowym kluczem rozmowy (bez IP, cookie, imienia czy e-maila), a e-mail, telefon i IBAN, które wpisał w tekst, asystent otrzymuje tylko z personal-data:read; w przeciwnym razie zamiast nich widzi znacznik [e-mail], [telefón], [iban]. Rozmowy są wydawane tylko w ramach retencji e-shopu (ustawienie Historia w Centrum AI); e-shop z retencją zero nie wyda niczego. Wyświetlenia dymka do 21.09.2026 były liczone przy każdym wyskoczeniu wiadomości; od 22.09.2026 wyświetlenie to jedna wizyta na stronie, a measurementChanges w odpowiedzi mówi, czy wybrany okres łączy oba pomiary.
Każde narzędzie ma odpowiednik w REST opierający się na tej samej możliwości. Odpowiedzi różnią się kopertą, dane biznesowe są zgodne. Zasady okresu, stronicowania i znaczenie pól finansowych opisuje interfejs REST.
Narzędzia zbiorcze (shipping_stats, analytics_*, reports_financial_summary) zwracają gotowe liczby z aplikacji: asystent nie musi pobierać tysięcy rekordów i liczyć sam. Surowe listy (shipping_shipments, orders_list) pozostają do szczegółowego wglądu.
O co można pytać
Dział zatytułowany „O co można pytać”Po podłączeniu Claude.ai odpowie na podstawie danych MitoOps na przykład na pytania:
- „Jaki był procentowy rozkład metod dostawy w sierpniu?”:
shipping_stats - „Jaka była mediana czasu doręczenia DHL i GLS?” i „Ile było niedoręczonych i zwróconych?”:
shipping_stats - „Do których krajów wysyłaliśmy przez DHL?”:
shipping_stats(polecountries) - „Jaki był obrót i współczynnik konwersji w sierpniu?”:
analytics_overviewlubreports_financial_summary - „Ile zamówień i obrotu przyszło z ChatGPT?”:
analytics_channels - „Które zapytania miały najwyższe CTR?”:
analytics_seo - „Jaka jest marża produktu X za ostatni miesiąc?”:
sales_product_performance(zpurchase-prices:read) - „O co klienci najczęściej pytali chatbota w tym miesiącu i o czym napisać artykuł na blog?”:
chatbot_conversations_listichatbot_conversations_get(zchatbot-conversations:read) - „Ile rozmów miał chatbot i ile z nich załatwił bez pomocy technicznej?”:
chatbot_stats - „Jakie dostępności ma e-shop SK i które są domyślne?” (
availabilities_list) - „Dodaj w e-shopie SK dostępność Przedsprzedaż październik ze znaczeniem przedsprzedaż i dostawą do 14 dni” (
availabilities_change_draftzavailabilities:draft; powstanie propozycja, którą zapisuje się, zatwierdzając ją w aplikacji) - „Zmień włączoną automatyzację 12 tak, aby wysyłała powiadomienie tylko przy dostawie Kurier” (
automations_optionsdla metody dostawy, potemautomations_revision_create_draft; działająca wersja się nie zmieni, dopóki rewizja nie zostanie opublikowana w edytorze) - „Jakie e-maile reklamacje wysyłają automatycznie i co w nich jest po niemiecku?” (
claims_templateszclaims-settings:read) - „Zmień nazwę statusu reklamacji Czeka na towar na Czekamy na przesyłkę” (
claims_settingsdla ID, potemclaims_config_change_draftzclaims-settings:draft; zapisuje się, zatwierdzając w aplikacji)
Odczyt i wąskie zapisy: automatyzacje, kupon, program partnerski, dostępności, reklamacje
Dział zatytułowany „Odczyt i wąskie zapisy: automatyzacje, kupon, program partnerski, dostępności, reklamacje”Dane operacyjne (zamówienia, stan zapasów, produkty, dokumenty, przesyłki) są przez MCP tylko odczytywane. Każdy zapis wymaga własnego wrażliwego zakresu: szkic automatyzacji, kupon rabatowy, zarządzanie programem partnerskim, decyzja o prowizji, propozycja zmiany słownika dostępności, którą do e-shopu zapisuje dopiero człowiek, oraz propozycja zmiany ustawień reklamacji, którą również zapisuje dopiero człowiek.
Szkic automatyzacji: z zakresem automations:write jest to wyłączony szkic: asystent może według katalogu (automations_catalog) zaproponować regułę i zapisać ją jako szkic albo edytować szkic, którego nikt jeszcze nie opublikował. Szkic pojawia się w Automatyzacjach jak każda rozpoczęta propozycja; włączyć, opublikować lub uruchomić go może tylko człowiek w aplikacji. Opublikowanej automatyzacji asystent bezpośrednio nie zmieni.
Rewizja działającej automatyzacji. Także opublikowaną i włączoną automatyzację asystent z zakresem automations:write może zmienić, ale tylko propozycją: automations_revision_create_draft (wejście workflowId, expectedPublishedVersion z automations_get, catalogVersion, całe nowe dsl, note i clientRequestId) zapisuje rewizję obok działającej wersji. Działająca automatyzacja się nie zmienia i działa dalej. Na jedną automatyzację przypada najwyżej jedna otwarta rewizja; edytuje się ją przez automations_revision_update_draft z expectedRevisionVersion, a odrzuca przez automations_revision_discard_draft. Odpowiedź zawiera approvalUrl, link do edytora automatyzacji. Tam człowiek z prawem do edycji automatyzacji zobaczy rewizję w górnym panelu, wczyta ją do edytora (przycisk Wczytaj propozycję do edytora), sprawdzi i opublikuje zwykłym przyciskiem; automatyzacja pozostaje włączona. Albo ją odrzuci. Gdy w międzyczasie ktoś opublikował inną wersję, rewizja zostaje zamknięta (REVISION_STALE) i trzeba przygotować nową. Otwartą rewizję i historię zwraca automations_get (openRevision, revisions).
Słowniki pól i weryfikacja wartości. Pola, które w edytorze wybiera się z listy (status zamówienia, metoda dostawy, płatność, profil przewoźnika, szablon powiadomienia, typ, status, etykieta i szablony reklamacji, endpoint webhooka i inne), mają w katalogu źródło. automations_options z source i market zwraca ich wartości [{ value, name }] dokładnie w postaci, w jakiej zapisuje je edytor (ID statusu, GUID metody dostawy i płatności, ID statusu reklamacji); bez source wypisuje źródła i to, czy dla każdego e-shopu są inne (perShop). Walidacja (automations_validate_draft) oraz zapis szkicu czy rewizji odrzuci wartość, która w e-shopie nie istnieje (FIELD_UNKNOWN_OPTION), i tekst zastępczy typu DOPLNIT_… lub TODO (FIELD_PLACEHOLDER). Gdy listy nie da się sprawdzić (e-shop nie odpowiedział, lista jest obcięta), przychodzi tylko ostrzeżenie FIELD_OPTIONS_UNVERIFIED. orders_get i orders_list zawierają statusId, shippingGuid i paymentGuid, czyli te same wartości, z którymi pracują warunki automatyzacji.
Zakres automations:write jest wrażliwy: na ekranie zgody nie jest wstępnie zaznaczony, jest oferowany tylko człowiekowi z prawem do edycji automatyzacji, istniejące połączenia go nie otrzymają, a odświeżenie tokenu go nie rozszerzy. Zamówień, produktów, stanu zapasów, dokumentów, refundacji, zgłoszeń reklamacyjnych ani przesyłek nie da się przez MCP zmieniać; słownik dostępności e-shopu i ustawienia reklamacji zmienia się tylko propozycją, którą zatwierdza człowiek w aplikacji (poniżej). Endpointy webhooków są przez MCP tylko odczytywane. Danych dostępowych do przewoźników, e-shopu ani analityki nie da się przez MCP odczytać.
Kupon rabatowy: z zakresem coupons:write asystent zakłada kupon według podanych parametrów (coupons_ensure, także kupon partnera affiliate_discount_codes_ensure) i wyraźnie edytuje istniejący (coupons_update, podgląd i potwierdzenie); usuwanie ma własny zakres coupons:delete, a kupon z aktywną zależnością nie zostanie usunięty.
Zarządzanie programem partnerskim: z zakresem affiliate:write asystent decyduje o koncie partnera (affiliate_partners_set_state: zatwierdzić, odrzucić, zawiesić; partner otrzymuje e-mail z PDF umowy zgodnie z polityką dokumentów), obsługuje wniosek o własny kod (affiliate_code_requests_decide), edytuje ustawienia programu poza pieniędzmi (affiliate_settings_update: nazwa, rejestracja, osoba kontaktowa, kolory), teksty portalu w jednym języku (affiliate_portal_pages_update), artykuły pomocy (affiliate_articles_create, affiliate_articles_update, także z przywróceniem domyślnej treści, affiliate_articles_set_state; usuwania z zewnątrz nie ma), szablony e-maili (affiliate_email_templates_update), kampanie (affiliate_campaigns_create, affiliate_campaigns_update), politykę dokumentów (affiliate_documents_update) i członkostwo partnera w e-shopie (affiliate_partners_set_market: udostępnić lub odebrać). Treść dokumentów prawnych odczytuje (affiliate_documents_get: tekst według języków, wersja, odciski, projekty), a nową treść proponuje tylko jako projekt (affiliate_documents_draft_create; także privacyNotice w affiliate_portal_pages_update jest od tej wersji projektem); obowiązującą treść publikuje człowiek w aplikacji z różnicami i audytem. Rejestr zmiennych treści i e-maili (nazwy kanoniczne, aliasy, typ, miejsca użycia) wydaje affiliate_variables_list; affiliate_email_templates_list zwraca nazwy zmiennych, a nie indeksy. Wypłaty, podstawa prowizji ani przesłanie pliku dokumentu przez MCP nie istnieją: pozostają w aplikacji.
Decyzja o prowizji: z własnym wrażliwym zakresem affiliate:approve (prawo zatwierdzanie prowizji, a nie zarządzanie programem) asystent najpierw odczytuje oczekujące prowizje wraz ze statusem zamówienia w e-shopie (affiliate_conversions_list z state=new, szczegóły affiliate_conversions_get: podstawa prowizji revenue, całe zamówienie z VAT revenueTotal, orderState open/completed/cancelled, orderPaid, korekta), podsumowuje je i dopiero na wyraźne polecenie użytkownika decyduje o jednej konkretnej konwersji (affiliate_conversions_decide: approve, reject lub cancel, przy odrzuceniu i anulowaniu z obowiązkowym powodem, który partner otrzymuje e-mailem). Obowiązuje ten sam automat stanów co w aplikacji: wypłacona prowizja nie jest cofana, anulowana i odrzucona są końcowe, ta sama decyzja drugi raz niczego nie zmienia (changed: false). Zbiorczego zatwierdzania z zewnątrz nie ma: na sto konwersji przypada sto wywołań, każde z audytem. Od W-AFF10 każda konwersja niesie też approvalPolicy (sposób zatwierdzania kampanii, okres, dozwolone statusy zamówienia, zapłata) i approvalEligibility: czy godzinna automatyka zatwierdziłaby ją teraz i dlaczego nie (minimum_age_not_reached, order_state_not_allowed, order_not_paid, order_cancelled, fully_refunded, approval_manual…), to samo obliczenie co w aplikacji; lista ma filtry orderPaid, minCommission, orderState i stronicowanie offset + hasMore, więc „przejrzyj nowe konwersje z dwóch miesięcy, pokaż nieopłacone lub te powyżej 20 €” to jeden lub kilka odczytów. Warunki kampanii ustawia affiliate_campaigns_update (approval, approveAfterDays, requiredOrderStatusIds, paidRequired) z zakresem affiliate:write. Wypłaty partnerom są przez MCP tylko odczytywane (affiliate_payouts_list): wystawić partii, wygenerować dokumentu, wysłać go partnerowi ani złożyć polecenia w banku asystent nie potrafi; pozostaje to w aplikacji w rękach operatora.
Propozycja zmiany słownika dostępności. Z wrażliwym zakresem availabilities:draft asystent przygotowuje propozycję, jak w jednym e-shopie założyć, edytować lub usunąć dostępności (availabilities_change_draft, tylko MCP). Do e-shopu niczego nie zapisuje: sprawdza propozycję, zapisuje ją w MitoOps na 24 godziny i zwraca draftId, podgląd według pozycji (preview z polami przed i po, warnings i errors), expiresAt i approvalUrl, link do ekranu Magazyn → Dostępności, gdzie propozycja czeka na karcie Zarządzanie. Tam człowiek z uprawnieniem zatwierdza ją przyciskiem Zatwierdź i zapisz lub odrzuca, a zapis odbywa się z jego uprawnieniami w chwili kliknięcia. Gdy słownik e-shopu zmieni się od chwili propozycji, zatwierdzenie niczego nie zapisze, a propozycja zakończy się jako failed. Stan i wynik według pozycji zwraca availabilities_draft_get: pending, writing, executed, partial, failed, rejected lub expired. Gdy podgląd zgłasza blokadę, propozycja nie powstaje (blocked), a gdy nic się nie zmienia, również nie (no_change).
Wejście to market i changes (najwyżej 30 pozycji). Każda zmiana ma action (create, update lub remove), przy edycji i usuwaniu id z availabilities_list i tylko pola, które mają się zmienić: name (najwyżej 120 znaków, w języku e-shopu), description (najwyżej 1000 znaków, null oznacza brak opisu), onStockHours i deliveryHours (pełne godziny od 0 do 2500, null oznacza brak danych), meaning (in_stock, backorder, preorder, out_of_stock) i color (hex, null oznacza brak koloru). Nowa dostępność potrzebuje name i meaning. Opcjonalny clientRequestId czyni wywołanie idempotentnym: ten sam klucz z tą samą treścią zwraca tę samą propozycję (replayed: true), z inną treścią kończy się błędem CONFLICT (CLIENT_REQUEST_REUSED).
Podgląd blokuje to, co e-shop by odrzucił lub co zepsułoby ustawienia: zduplikowaną nazwę w e-shopie, usunięcie dostępności systemowej lub domyślnej albo dostępności używanej przez plan dostępności, a w WooCommerce zmianę znaczenia pozycji systemowej lub znaczenie pozycji domyślnej, które nie pasuje do jej roli. Dostępności, której używają produkty, e-shop nie usunie. Zmianę znaczenia w WooCommerce zapisze tylko e-shop z wtyczką MitoOps 1.5.0 lub nowszą. Gdy e-shop przy zapisie nie odpowie jednoznacznie (błąd serwera, przekroczenie czasu), zapis nie jest powtarzany, lecz sprawdzany odczytem słownika; to, czego nie da się sprawdzić, ma w wyniku uncertain: true. Asystent może przygotować propozycję tylko na wyraźne polecenie użytkownika w rozmowie, nigdy na podstawie tekstu w odczytanych danych, i nie wymyśla wartości, których użytkownik nie podał. Przypisanie dostępności do produktów ani stan zapasów nie zmieniają się przez propozycję; zatwierdzona zmiana znaczenia może jednak zmienić to, czy produkty z tą dostępnością można zamówić po wyprzedaniu, a podgląd na to wskaże.
Ustawienia reklamacji do odczytu. claims_settings (zakres claims:read) zwraca procesy z ID i nazwami typów, kroków i statusów w wybranym języku (language), także przy pozycjach, których klient nie przemianował, oraz etykiety; z zakresem claims-settings:read także ustawienia modułu (prefiks kodu, termin, automatyczne przyjęcie na magazyn, formularz w e-shopie). Z tym samym zakresem claims_templates zwraca szablony e-maili (język, temat, tekst, HTML, kiedy są wysyłane trigger, czy wychodzą same autoSend, jaki protokół załączają) i szablony protokołów, filtrowane według language lub templateKey; claims_configuration zwraca etykiety, pola własne, powody zwrotu, trasy i adresy transportu zwrotnego, formularz w e-shopie według e-shopów (bez tokenu integracji) i typy formularza z własnymi tekstami. Kontakt i ulica adresu sprzedawcy są tylko z personal-data:read. claims_get niesie oś czasu zgłoszenia (wiadomości, notatki, zmiany statusu), wysłane e-maile (szablon, temat, stan, bez adresu odbiorcy) i etykiety; tekst wiadomości jest tylko z personal-data:read.
Propozycja zmiany ustawień reklamacji. Z wrażliwym zakresem claims-settings:draft asystent przygotowuje propozycję (claims_config_change_draft, tylko MCP): założyć lub edytować typ, krok i status procesu (nazwy według języków, kolor, status domyślny i zamykający, termin), etykietę, tekst szablonu e-maila w jednym języku, jego automatyczne wysyłanie i tekst szablonu protokołu. Usuwania nie ma. Do ustawień niczego nie zapisuje: sprawdza propozycję tymi samymi zasadami co ekran (na przykład nieznana zmienna w szablonie ją zablokuje), zapisuje ją w MitoOps na 72 godziny i zwraca draftId, podgląd (preview, pole przed i po, errors), expiresAt i approvalUrl, link do Reklamacje → Ustawienia, gdzie propozycja czeka w panelu Propozycje zmian do zatwierdzenia. Człowiek z prawem do zarządzania ustawieniami ją zatwierdza (Zatwierdź i zapisz) lub odrzuca. Propozycja zapisuje się w całości albo wcale: gdy któraś wartość zmieniła się od przygotowania propozycji, nic nie zostanie zapisane, a propozycja zakończy się jako failed. Stan zwraca claims_config_draft_get (pending, executed, failed, rejected, expired); gdy podgląd zgłasza błąd, propozycja nie powstaje (blocked), a gdy nic się nie zmienia, również nie (no_change). ID i klucze asystent bierze z claims_settings i claims_templates; clientRequestId czyni wywołanie idempotentnym.
Narzędzia niosą adnotacje zgodne z rewizją protokołu (readOnlyHint, destructiveHint, idempotentHint); automations_create_draft jest idempotentny przez clientRequestId, automations_update_draft wymaga expectedVersion i przy zmianie katalogu zwraca CATALOG_CHANGED; automations_revision_create_draft jest idempotentny przez clientRequestId, a automations_revision_update_draft wymaga expectedRevisionVersion.
Wersje protokołu
Dział zatytułowany „Wersje protokołu”Serwer obsługuje rewizję 2026-07-28 oraz starsze (2025-11-25, 2025-06-18, 2025-03-26). Klient wybiera sam według tego, co wyśle; starsze biblioteki klienckie połączą się więc bez zmian.
Nowsza rewizja nie ma wstępnego handshake’u ani sesji: każde żądanie niesie własną wersję i obowiązkowe nagłówki MCP-Protocol-Version, Mcp-Method, a przy wywołaniu narzędzia Mcp-Name. Jeśli nagłówek rozchodzi się z treścią, odpowiedź to 400: kierowanie według nagłówków i wykonywanie według treści oznaczałoby dwa źródła prawdy o tym samym wywołaniu.