Dla deweloperów · MCP
Serwer MCP Loyalz
Jedno połączenie Model Context Protocol, które daje agentowi AI Twoje wydatki reklamowe i przychód sklepu ze wszystkich kanałów, program lojalnościowy i Creative Studio — w zakresie jednego konta merchanta, z pełnym dziennikiem działań.
Ostatnia aktualizacja 23 września 2026
Endpoint
https://api.loyalz.io/api/mcp/sse
Transport
MCP przez SSE (JSON-RPC 2.0); Streamable HTTP w przygotowaniu
Authentication
Token Bearer z Ustawienia → Agents API
Scope
Jedno konto merchanta na token
Tools
77 (43 Creative Studio, 11 Insights, 22 lojalność)
Hosting
Loyalz, infrastruktura w UE
Co serwer daje agentowi
Większość marketingowych serwerów MCP daje asystentowi jedno konto reklamowe. Loyalz to warstwa, która już trzyma każdą podpiętą platformę reklamową obok rozliczonych zamówień sklepu, program lojalnościowy prowadzony przez sklep i pipeline kreacji zasilający reklamy. Serwer MCP wystawia wszystkie trzy przez jedno połączenie, w zakresie jednego konta merchanta:
- Insights — zapytania o wydatki, kliknięcia, konwersje, przychód, zamówienia, POAS/ROAS i każdą metrykę wyliczaną w Meta, Google, TikTok, LinkedIn, WooCommerce, Shopify, Sellasist i e-mailu; budowanie i edycja dashboardów; własne metryki z formuł.
- Lojalność — odczyt i kształtowanie programu (poziomy, questy, zadania, kolekcje benefitów, rankingi), przyznawanie punktów, cashbacku lub benefitów wskazanemu klientowi, odczyt ksiąg.
- Creative Studio — profil marki i referencje, runy konceptów dla statyków i wideo z ludzką bramką przeglądu promptów, teksty reklam, akceptacje oraz publikacja zatwierdzonych kreacji do istniejącego zestawu reklam Meta jako reklamy wstrzymane.
Prompty, które działają od pierwszego dnia
- "Compare Meta and Google spend against store revenue for the last 30 days, by week, and tell me which channel has the better POAS."
- "Add a KPI card with blended CAC to the Weekly dashboard."
- "Create a quest worth 200 points for customers who follow us on Instagram."
- "Show the three best-performing ads in our summer campaign and draft a static concept run from the winner."
Connect
Potrzebujesz konta merchanta Loyalz i tokena MCP. Tokeny tworzy się w panelu merchanta w Ustawienia → Agents API; każdy token jest przypisany do jednego merchanta i można go tam w każdej chwili unieważnić. Wysyłaj go jako nagłówek Bearer przy żądaniu SSE i przy każdej wiadomości. Tokeny w adresie URL nie są akceptowane.
Claude Code
claude mcp add --transport sse loyalz https://api.loyalz.io/api/mcp/sse --header "Authorization: Bearer <token>"
Claude Desktop, Cursor, Windsurf i inne klienty z mcpServers clients
{
"mcpServers": {
"loyalz": {
"type": "sse",
"url": "https://api.loyalz.io/api/mcp/sse",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
Dowolny klient lub SDK MCP
GET https://api.loyalz.io/api/mcp/sse
Authorization: Bearer <token>
Accept: text/event-stream
# the server advertises the messages URL in the first event;
# POST every JSON-RPC message there with the same Authorization header
Po połączeniu wywołaj raz tools/list . Katalog poniżej to dokładnie to, co zwraca. Każde narzędzie przyjmuje obiekt input , także odczyty bez pól ({"input": {}}).
Katalogi konektorów Claude.ai i ChatGPT
Hostowane katalogi Claude i ChatGPT logują użytkowników przez OAuth 2.1 i oczekują transportu Streamable HTTP; statyczny token w nagłówku akceptują Claude Code, Claude Desktop, Cursor, Windsurf, SDK i własne agenty, ale nie te dwa katalogi. Logowanie OAuth i Streamable HTTP dla serwera Loyalz są w przygotowaniu. Do tego czasu łącz się przez klienta obsługującego nagłówki, jak wyżej; ta strona wskaże wpisy w katalogach w dniu ich uruchomienia.
Uwierzytelnianie, zakres i dziennik
- Jeden token, jeden merchant. Kontekstem połączenia jest merchant, do którego należy token. Żadne narzędzie nie przyjmuje id merchanta, id użytkownika ani argumentu „przełącz konto”; żeby pracować na innym koncie, połącz się tokenem tego konta.
- Tylko Bearer. Token podróżuje w nagłówku
Authorizationżądania SSE i każdego POST do endpointu wiadomości. Adresy sesji nie są poświadczeniami, a sesja nie przeżyje swojego tokena: unieważnienie jest sprawdzane ponownie przed każdym wywołaniem narzędzia. - Bramki planów działają jak w aplikacji. Narzędzia Insights wymagają włączonego Insights na koncie; narzędzia Creative Studio wymagają planu Shark lub wyższego. Zablokowane wywołanie zwraca jasną odmowę z nazwą wymaganego planu, nigdy częściowe dane.
- Zapisy są idempotentne. Narzędzia zmieniające stan lub wydające kredyty przyjmują
idempotency_key; ponowione wywołanie z tym samym kluczem zwraca pierwotny wynik zamiast działać dwa razy. - Dziennik. Działania wykonane przez serwer są logowane per merchant i dostępne przez
get_mcp_history. Studio i publikacja prowadzą własne rejestry operacji.
Katalog narzędzi
77 narzędzi · 43 w Creative Studio · wygenerowane z rejestru serwera 23 września 2026
read bez zmiany stanu writes zmienia dane na Twoim koncie wydaje kredyty pobiera lub rezerwuje kredyty Studio
Lojalność · struktura programu 13 narzędzi
Poziomy, questy, zadania, kolekcje benefitów i rankingi — obiekty, z których składa się program lojalnościowy.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| list_gamification_levels | Lista aktywnych poziomów (tierów) grywalizacji merchanta. | read | — |
| create_gamification_level | Tworzy nowy poziom doświadczenia (Level) dla merchanta. | writes | name*, required_points* |
| list_quests | Lista aktywnych questów merchanta. | read | — |
| create_quest | Tworzy nowy Quest dla merchanta. | writes | name*, description, reward_type, reward_points, status |
| list_gamification_tasks | Lista zadań skonfigurowanych w danym queście. | read | quest_id* |
| create_gamification_task | Tworzy zadanie w istniejącym queście. | writes | quest_id*, platform*, engagement*, description*, reward_points* |
| list_collections | Lista aktywnych kolekcji merchanta. | read | — |
| create_collection | Tworzy nową Kolekcję Benefitów dla merchanta. | writes | name*, description, items_amount, items_price, status |
| add_benefit_to_collection | Dodaje lub aktualizuje konfigurację Benefitu w Kolekcji. | writes | collection_id*, benefit_type*, discount_type, discount_value, others |
| add_asset_to_collection | Dodaje graficzny Asset (URL obrazu/wideo) do Kolekcji. | writes | collection_id*, url* |
| list_boards | Lista aktywnych rankingów (leaderboardów) merchanta. | read | — |
| create_board | Tworzy nowy Ranking (Leaderboard) dla merchanta. | writes | name*, description, start_date, end_date, assignment_type, status |
| assign_quests_to_board | Łączy wskazane questy z rankingiem. | writes | board_id*, quest_ids* |
Lojalność · klienci i księgi 9 narzędzi
Punkty, cashback i benefity dla wskazanych klientów oraz księgi transakcji i punktów.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| grant_points_to_user | Przyznaje punkty użytkownikowi po adresie e-mail. | writes | user_email*, amount*, reason, idempotency_key |
| grant_cashback_to_user | Przyznaje cashback (Coins) użytkownikowi po adresie e-mail. | writes | user_email*, amount*, reason, idempotency_key |
| assign_benefit_to_user | Przypisuje użytkownikowi benefit (Asset) z wybranej Kolekcji. | writes | user_email*, collection_id*, reason, idempotency_key |
| list_transactions | Lista transakcji (np. PAYMENT, PURCHASE, AFTERMARKET, REDEEM) powiązanych z merchantem. | read | limit, transaction_type |
| get_purchase_history | Historia zakupów klientów w kolekcjach merchanta. | read | limit, status |
| get_point_history | Księga/historia punktów lojalnościowych merchanta. | read | limit, user_id |
| get_merchant_metrics | Zagregowane analityki i metryki uwierzytelnionego merchanta. | read | — |
| get_collection_analytics | Szczegółowe analityki wybranej kolekcji merchanta. | read | collection_id* |
| get_mcp_history | Historia działań wykonanych przez agenta MCP dla uwierzytelnionego merchanta. | read | limit |
Insights · dane marketingowe i przychodowe 11 narzędzi
Platformy reklamowe (Meta, Google, TikTok, LinkedIn), sklep (WooCommerce, Shopify, Sellasist), e-mail, first-party touchpointy i metryki wyliczane, jak POAS, w jednym silniku zapytań. Dashboardy są edytowalne.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| list_metric_catalog | Pokazuje, co można wykreślić dla merchanta: podpięte źródła danych, klucze metryk bazowych z zsynchronizowanymi danymi, wbudowane wskaźniki pochodne (roas, cpl, cpc, ctr, ...), własne metryki wyliczane (formuły) i nazwy akcji konwersji. | read | — |
| query_metrics | Agreguje zsynchronizowane dane marketingowo-przychodowe merchanta (platformy reklamowe, sklep, CRM) — silnik stojący za każdym widgetem Insights. | read | metrics*, date_from*, date_to*, sources, granularity, dimension, compare_mode, campaign_filter, conversion_action |
| list_dashboards | Lista dashboardów Insights merchanta i globalnych szablonów, które można sklonować przez create_dashboard(from_template_id=...). | read | — |
| get_dashboard | Pełna definicja jednego dashboardu z każdym widgetem (typ, tytuł, metryki, źródła, wymiar, konfiguracja). | read | dashboard_id* |
| create_dashboard | Tworzy dashboard Insights: pusty (podaj nazwę, potem dodaj widgety przez add_widget) albo sklonowany z globalnego szablonu (podaj from_template_id z list_dashboards; nazwa opcjonalnie zmienia nazwę klonu). | writes | name, description, from_template_id |
| update_dashboard | Zmienia nazwę dashboardu i/lub jego opis. | writes | dashboard_id*, name, description |
| add_widget | Dodaje widget do dashboardu. | writes | dashboard_id*, type*, title*, metrics*, sources, dimension, campaign_filter, conversion_action, sort_by, sort_dir, row_limit |
| update_widget | Modyfikuje istniejący widget. | writes | dashboard_id*, widget_id*, type, title, metrics, sources, dimension, campaign_filter, conversion_action |
| remove_widget | Usuwa jeden widget z dashboardu (dashboard zostaje). | writes | dashboard_id*, widget_id* |
| create_calculated_metric | Tworzy (lub nadpisuje) własną metrykę wyliczaną z formuły na danych merchanta, używalną w query_metrics i widgetach jak każda wbudowana. | writes | key*, name*, formula*, unit, campaign_filter |
| delete_calculated_metric | Usuwa własną metrykę wyliczaną merchanta po kluczu. | writes | key* |
Creative Studio · konto, marka i biblioteka 21 narzędzi
Katalog modeli i ceny, profil marki, media referencyjne, kredyty, storage i biblioteka kreacji z akceptacjami.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| studio_get_config | Katalog modeli Studio, ceny, typy wideo, obsługiwane długości i limity promptów. | read | — |
| studio_get_brand | Profil marki merchanta oraz biblioteki talentów i referencji. | read | — |
| studio_update_brand | Aktualizuje podane pola marki; pominięte pola zachowują wartości. | writes | idempotency_key*, name, description, tone, language, colors, typography, product_description, logo, packshots, references, talent |
| studio_upload_brand_asset | Wgrywa media marki JPEG/PNG/WebP, do 10 MiB, z bajtów base64. | writeswydaje kredyty | idempotency_key*, filename*, content_type*, content_base64* |
| studio_list_reference_videos | Lista wgranych klipów referencyjnych z ID i zweryfikowanymi długościami dla obsługiwanych modeli wideo. | read | — |
| studio_upload_reference_video | Wgrywa klip referencyjny MP4 z bajtów base64: 2–15 sekund, do 50 MiB. | writeswydaje kredyty | idempotency_key*, filename*, content_type*, content_base64* |
| studio_get_credits | Dostępne kredyty Studio i pięćdziesiąt ostatnich wpisów księgi. | read | — |
| studio_list_credit_packs | Lista dostępnych pakietów kredytów i adresów checkoutu. | read | — |
| studio_get_storage | Zużyty storage, limit, dodatkowe bloki i ceny bloków. | read | — |
| studio_set_storage_blocks | Ustawia dodatkowe bloki storage (0–100). | writeswydaje kredyty | idempotency_key*, blocks* |
| studio_list_assets | Stronicuje/filtruje kreacje po runie, ID modelu dostawcy, rodzaju, datach włącznie i approved=1. | read | limit, offset, run, model, kind, approved, date_from, date_to |
| studio_get_asset | Szczegóły jednej kreacji: teksty, akceptacje, run/koncept źródłowy i historia edycji. | read | asset_id* |
| studio_upload_asset | Wgrywa własną kreację do biblioteki z base64: JPEG/PNG/WebP do 10 MiB lub MP4 do 200 MiB. | writes | idempotency_key*, filename*, content_type*, content_base64* |
| studio_delete_assets | Usuwa do 100 własnych kreacji i ich edytowane pochodne, wraz z zapisanymi mediami, jeśli nie są współdzielone. | writes | idempotency_key*, ids* |
| studio_label_asset | Nanosi podany tekst oznaczenia na obraz jako nową zapisaną wersję. | writes | asset_id*, idempotency_key*, color*, position*, orientation*, size*, text* |
| studio_approve_assets | Zatwierdza własne kreacje do użycia albo cofa zatwierdzenie. | writes | idempotency_key*, ids*, revoke |
| studio_approve_ad_texts | Zatwierdza lub cofa zatwierdzenie istniejącego wariantu tekstu po indeksie, albo wszystkich przez all=true. | writes | asset_id*, idempotency_key*, index, all, revoke |
| studio_generate_ad_texts | Kupuje synchronicznie trzy warianty tekstu reklamy, tylko dla IMAGE. | writeswydaje kredyty | asset_id*, idempotency_key* |
| studio_update_ad_texts | Zastępuje cały pakiet tekstów IMAGE (1–5 wariantów) i indeksy akceptacji, bez opłat AI. | writeswydaje kredyty | asset_id*, idempotency_key*, variants*, approved_ad_texts |
| studio_list_products | Wyszukuje/stronicuje zmirrorowane produkty i odczytuje URL feedu oraz czas ostatniej synchronizacji. | read | limit, offset, search |
| studio_sync_products | Synchronicznie pobiera skonfigurowany feed produktów merchanta i aktualizuje jego mirror. | writes | idempotency_key* |
Creative Studio · runy generowania 15 narzędzi
Runy konceptów dla statyków i wideo, bramki przeglądu promptów, storyboardy, rendery i edycje. Płatne kroki są oznaczone w tabeli.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| studio_get_winner_context | Teksty zwycięskiej reklamy, analiza i proponowany brief. | readwydaje kredyty | idempotency_key*, ad_id*, image |
| studio_list_runs | Stronicuje historię runów Studio. | read | limit, offset |
| studio_get_run | Odpytuje bieżący stan runu, błędy, prompty, kroki, storyboardy i wyniki. | read | run_id* |
| studio_create_run | Tworzy run konceptów statyk/wideo, pobiera opłatę za konceptowanie i kolejkuje pracę CONCEPTS_PENDING. | writeswydaje kredyty | idempotency_key*, pipeline, brief, language, brand_fidelity, winner, products, talent, packshots, references, video_type, duration_s, aspect_ratio, persona, provided_frames |
| studio_prepare_prompts | Przygotowuje wybrane prompty konceptów statycznych do przeglądu; może zakolejkować pracę LLM. | writeswydaje kredyty | run_id*, idempotency_key*, selected*, talent |
| studio_approve_prompts | Zatwierdza run statyczny w stanie PROMPTS_READY i kolejkuje płatne obrazy. | writeswydaje kredyty | run_id*, idempotency_key*, prompts, input_urls, model_key, variants, aspect_ratio |
| studio_start_run | Rezerwuje kredyty i uruchamia wybrane koncepty STATIC, asynchronicznie przygotowując prompty do przeglądu przed renderem. | writeswydaje kredyty | run_id*, idempotency_key*, selected, quality, model_key, variants, aspect_ratio, talent |
| studio_create_own_prompt_run | Rezerwuje kredyty na generowanie obrazów i tworzy run statyczny z Twojego promptu i własnych referencji, zaparkowany w PROMPTS_READY. | writeswydaje kredyty | reference_url, reference_product_id, reference_urls, reference_product_ids, idempotency_key*, prompt*, model_key, variants, aspect_ratio |
| studio_generate_concept | Kupuje 1–2 nowe obrazy jednego wcześniejszego konceptu STATIC w nowym runie, dziedzicząc jego model i referencje. | writeswydaje kredyty | run_id*, idempotency_key*, concept_index*, variants |
| studio_edit_asset | Kupuje edycję obrazu/storyboardu jako nowy run/wersję, z użyciem do sześciu różnych własnych referencji. | writeswydaje kredyty | reference_url, reference_product_id, reference_urls, reference_product_ids, asset_id*, idempotency_key*, instruction*, model_key |
| studio_create_storyboard | Kupuje rundę storyboardu wideo dla jednego konceptu. | writeswydaje kredyty | run_id*, idempotency_key*, selected*, model_key, shot_list, mode, scene_count |
| studio_approve_storyboard | Zatwierdza klatkę czekającą na przegląd one_by_one; wznawia już opłaconą rundę albo kończy jej ostateczną akceptację. | writes | run_id*, idempotency_key* |
| studio_replace_frame | Zastępuje pierwszą/ostatnią klatkę wideo własnym obrazem z biblioteki lub URL-em uploadu, za zero kredytów. | writes | asset_id, url, run_id*, idempotency_key*, frame* |
| studio_create_storyboard_montage | Kolejkuje numerowany arkusz storyboardu z ukończonej rundy scen, bez kredytów AI. | writes | run_id*, idempotency_key* |
| studio_render_video | Kupuje asynchroniczny render wideo ze storyboardu lub ukończonych scen. | writeswydaje kredyty | run_id*, idempotency_key*, storyboard_asset_id, from_scenes, model_key, reference_video_id, reference_image_urls, animation_prompt |
Creative Studio · publikacja do Meta 7 narzędzi
Odczyt podpiętego konta reklamowego i kolejkowanie zatwierdzonych kreacji do istniejącego zestawu reklam. Każda reklama powstaje wstrzymana.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| studio_list_meta_campaigns | Przegląda istniejące kampanie Meta i metryki dostarczania w podpiętym koncie. | read | preset |
| studio_list_meta_adsets | Przegląda istniejące zestawy reklam i metryki jednej kampanii. | read | preset, campaign_id* |
| studio_list_meta_ads | Przegląda reklamy i metryki w jednym zestawie reklam. | read | preset, adset_id* |
| studio_prepare_meta_adset | Odczytuje tożsamości Strony/Instagrama, link, opcje CTA i już opublikowane ID zasobów dla istniejącego zestawu reklam. | writes | adset_id* |
| studio_publish | Kolejkuje zatwierdzone zasoby z zatwierdzonymi tekstami do istniejącego zestawu reklam Meta. | writestworzy reklamy (wstrzymane) | idempotency_key*, adset_id*, items*, link_url, cta, page_id, instagram_user_id, campaign_id, campaign_name, adset_name, dry_run |
| studio_get_publish_batch | Odpytuje partię publikacji i asynchroniczne stany/błędy poszczególnych pozycji. | read | batch_id* |
| studio_list_publish_batches | Lista dwudziestu ostatnich partii publikacji i stanów ich pozycji. | read | — |
Session 1 narzędzie
Tylko dla uruchomień serwera przez stdio; połączenie SSE jest uwierzytelniane nagłówkiem Authorization.
| Narzędzie | Co robi | Efekt | Argumenty (* wymagane) |
|---|---|---|---|
| authenticate | Uwierzytelnia tę sesję stdio. | writes | token* |
Co może pójść nie tak, a co nie może
- Pieniądze. Żadne narzędzie nie przelewa pieniędzy ani nie zmienia subskrypcji. Kroki Studio oznaczone „wydaje kredyty” korzystają z prepaidowych kredytów;
studio_list_credit_packszwraca tylko linki do checkoutu, nigdy nie kupuje. - Reklamy.
studio_publishtworzy reklamy w istniejącym zestawie reklam Meta w stanie paused ; nic nie idzie na żywo, dopóki człowiek nie włączy tego w Ads Managerze. Narzędzia odczytu nigdy nie dotykają konta reklamowego. - Klienci. Przyznanie punktów, cashbacku lub benefitów zmienia saldo prawdziwego klienta i jest logowane z podanym przez Ciebie powodem. Używaj kluczy idempotencji.
- Dane. Odpowiedzi narzędzi zawierają dane marketingowe Twojego konta, agregaty zamówień, e-maile klientów z ksiąg lojalnościowych i zasoby kreacji. To, co Twój klient AI zrobi z odpowiedzią narzędzia, regulują zasady tego klienta; Loyalz nie wysyła Twoich danych do żadnego dostawcy modeli jako efekt uboczny wywołania.
- Limity. Wywołania Studio uruchamiające pracę wizyjną lub generowanie są ograniczane per konto; ograniczone wywołanie zwraca wskazówkę o ponowieniu zamiast cicho zawodzić.
Dla recenzentów katalogów i integratorów
- First-party API. Serwer działa na
api.loyalz.io, tym samym backendzie, który obsługuje panel merchanta Loyalz. Żadne dane zewnętrzne nie są proxowane; każde narzędzie czyta lub zapisuje własne konto Loyalz merchanta. - Konta i plany. Wymagane jest konto merchanta (umów demo , żeby je dostać). Narzędzia Insights wymagają włączonego Insights na koncie; narzędzia Creative Studio wymagają planu Shark. W pełni przygotowane konto testowe do przeglądu wydajemy na prośbę wysłaną na majewski@loyalz.io.
- Odczyt i zapis to osobne narzędzia. Nie ma narzędzia „do wszystkiego”; każde robi jedną rzecz i jest oznaczone powyżej jako odczyt, zapis lub wydaje kredyty. Zapisy przyjmują klucz idempotencji.
- Efekty uboczne z pieniędzmi lub zasięgiem. Narzędzia generowania Studio wydają prepaidowe kredyty.
studio_publishtworzy wyłącznie wstrzymane reklamy. Nic nie przelewa pieniędzy, nie zmienia subskrypcji ani nie wysyła wiadomości do klientów. - Znane ograniczenia. Jeden merchant na token; brak przełączania kont w sesji. Wywołania wizyjne i generujące Studio są ograniczane per konto. Dane z platform reklamowych są tak świeże, jak ostatnia synchronizacja (dobowa, ze śróddziennymi synchronizacjami sklepu).
- Kategorie. Analityka marketingowa · Reklama · E-commerce · Lojalność i CRM · Produkcja kreacji.
Prywatność, regulamin i wsparcie
- Polityka prywatności: loyalz.io/legal/privacy/
- Regulamin: loyalz.io/legal/terms/ i Terms for Brands
- Usuwanie Twoich danych, w tym danych Meta: loyalz.io/legal/data-deletion/
- Wsparcie i pytania o katalogi: majewski@loyalz.io; sprawy prywatności: privacy@loyalz.io
- Stan serwera: ta strona jest aktualizowana przy zmianie katalogu; bieżący build odpowiada na
tools/list77 narzędziami.
Changelog
- 2026-09-23 — dodano Creative Studio (43 narzędzia); uwierzytelnianie tylko nagłówkiem, parametr zapytania
?token=został wycofany; katalog liczy 77 narzędzi. - 2026-07-17 — narzędzia Insights: katalog metryk, silnik zapytań, dashboardy i metryki wyliczane.
- 2026-06 — pierwsza publiczna wersja: narzędzia programu lojalnościowego.
Załóż konto merchanta Przeczytaj: dlaczego jeden MCP dla reklam i sklepu