Przejdź do głównej treści

Google Keyword Planner i MCP: jak podłączyłem planer do AI

We wrześniu 2026 podłączyłem Google Keyword Planner do Claude przez serwer MCP: wybór serwera, OAuth, rejestracja w asystencie — i odmowa 403 przez nowe zasady dostępu Google.

Karta planera słów kluczowych z liczbą wyszukiwań, okno terminala i znak AI: podłączenie Google Keyword Planner do asystenta

Co daje planer i po co go w czacie

Keyword Planner to standardowe narzędzie Google Ads: na podstawie kilku fraz wyjściowych zwraca listę powiązanych zapytań, średnią liczbę wyszukiwań miesięcznie z ostatniego roku, poziom konkurencji w reklamie i widełki stawek za kliknięcie, a do tego liczy prognozę wyświetleń i kliknięć przy zadanym budżecie. To dane u źródła — te same, na których Google opiera swoje decyzje.

Problemem nie są dane, tylko rutyna. Żeby sprawdzić jeden pomysł na stronę, trzeba otworzyć panel, wybrać region i język, wpisać frazy, odfiltrować śmieci, wyeksportować tabelę — a wszystko to dla jednej odpowiedzi: czy w ogóle warto pisać ten tekst. Skoro asystent i tak pomaga przy treściach, niech sprawdzanie popytu też należy do niego.

MCP (Model Context Protocol) to otwarty protokół, przez który asystent wywołuje zewnętrzne narzędzia. Rozbierałem go na części w tekście o podłączaniu Search Console. Tutaj wystarczy jedno: serwer MCP to niewielki program pośredniczący na Twoim komputerze, który z jednej strony odpowiada asystentowi, a z drugiej chodzi do API Google.

Jaki serwer wybrałem

Do wyboru były trzy rodzaje rozwiązań. Oficjalny serwer MCP Google do Ads API jest ogólnego przeznaczenia: zapytania do konta, metadane, dowolne wybory danych — narzędzi planera w nim nie znalazłem. Zewnętrzne zestawy „wszystko w jednym” mają po trzydzieści kilka narzędzi, łącznie z zarządzaniem kampaniami, stawkami i budżetami. I są jeszcze kompaktowe utility na kilka komend.

Wziąłem wariant kompaktowy, google-keyword-planner-mcp: dokładnie trzy narzędzia — pomysły na słowa kluczowe, dane historyczne, prognoza kliknięć. Natywny plik wykonywalny o rozmiarze 28 MB, bez Pythona i Node.js, z otwartym kodem na licencji MIT, który da się przeczytać w jeden wieczór.

Logika wyboru jest prosta i jest zarazem główną myślą całej mojej zabawy z narzędziami AI: asystent dostaje dokładnie tę powierzchnię, której wymaga zadanie. Serwer zarządzający kampaniami potrafi wydawać pieniądze — czyli kiedyś wyda je bez pytania. Serwer z trzema funkcjami odczytu nie potrafi nic poza podaniem liczb. Ta sama zasada stoi za usługą bezpiecznego wdrażania agentów AI.

Najważniejsze: od 9 września 2026 developer token zniknął

Tu straciłem najwięcej czasu, więc wynoszę to na początek. Kiedyś schemat wyglądał tak: zakładasz konto menedżera Google Ads (MCC, czyli manager account), w sekcji „Centrum API” dostajesz developer token — ciąg 22 znaków — i wysyłasz go w nagłówku każdego zapytania. Niemal wszystkie poradniki z wyszukiwarki opisują właśnie to.

Przeszedłem tę drogę w całości: założyłem konto menedżera, dostałem token, wpisałem go w ustawienia serwera. I dopiero potem dotarłem do dokumentacji, gdzie stoi jak byk: developer token został wycofany 9 września 2026 roku. Token w nagłówku jest teraz ignorowany, a poziom dostępu wyznacza projekt Google Cloud, z którego pochodzą dane OAuth. Wnioski składane przez „Centrum API” nie są rozpatrywane, a te, które czekały w kolejce, Google zamknął i poprosił o złożenie ich ponownie — już w Cloud Console.

Nowa drabina dostępu wygląda tak:

  • Test — przyznawany automatycznie, gdy tylko włączysz Google Ads API w swoim projekcie Cloud. Działa wyłącznie na kontach testowych.
  • Explorer — pierwszy poziom widzący żywe konta: 2 880 operacji na dobę. Istotny szczegół: narzędzia planera są na nim niedostępne, Google zalicza je do funkcji ograniczonych.
  • Basic — 15 000 operacji na dobę i to właśnie on otwiera Keyword Planner. Wymaga weryfikacji marki dla projektu Cloud; po niej wniosek rozpatrywany jest automatycznie, w minutach.
  • Standard — bez limitu dobowego, dla dużych serwisów; rozpatrywanie do dziesięciu dni roboczych.

Wniosek, który warto przeczytać na początku: jeśli potrzebujesz właśnie planera, droga jest jedna — projekt w Google Cloud, włączone Ads API, weryfikacja marki i wniosek o Basic. Konto menedżera nie jest do tego potrzebne w ogóle.

Krok po kroku: co robiłem ręcznie

  1. Projekt w Google Cloud. Włączyłem Google Ads API — projekt od razu dostaje poziom Test.
  2. Klient OAuth typu Desktop app. Daje parę „identyfikator klienta — sekret”. Dla programu desktopowego to standardowy scenariusz: sekretu takiego klienta Google nie traktuje jako poufnego.
  3. Jednorazowa autoryzacja. Krótki skrypt podnosi nasłuch na lokalnym porcie, otwiera okno zgody Google z zakresem dostępu do Ads, łapie kod powrotny i wymienia go na token odświeżania. Kluczowe parametry zapytania to dostęp offline i wymuszona zgoda — bez nich tokenu odświeżania po prostu nie dostaniesz.
  4. Identyfikator konta. Dziesięć cyfr bez myślników — to konto reklamowe, z którego pobierane są dane.
  5. Serwer na dysk. Pobrałem wersję pod swój system i włożyłem do osobnego katalogu. Żadnego środowiska uruchomieniowego instalować nie trzeba: to jeden plik. U mnie wylądował na dysku D — na systemowym brakowało miejsca.
  6. Rejestracja w asystencie. Jedną komendą, z zasięgiem „użytkownik”, żeby serwer był dostępny we wszystkich projektach, a nie w jednym katalogu.
claude mcp add keyword-planner \
  --scope user \
  -e GOOGLE_ADS_CLIENT_ID=... \
  -e GOOGLE_ADS_REFRESH_TOKEN=... \
  -e GOOGLE_ADS_CUSTOMER_ID=... \
  -- D:\mcp\kwp-mcp.exe

Szczegół, na którym potykają się wszyscy: listę narzędzi klient czyta przy starcie. Po rejestracji serwera w już otwartej sesji nie zobaczysz go — potrzebny jest nowy czat albo restart aplikacji. To nie jest błąd instalacji.

Test protokołu bez asystenta

Zanim zaczniesz szukać problemu w asystencie, warto upewnić się, że serwer w ogóle żyje. MCP działa po JSON-RPC przez standardowe wejście i wyjście, więc można odpytać go ręcznie: uruchomić plik wykonywalny, wysłać mu na wejście trzy linie i odczytać odpowiedzi.

  1. initialize — uzgodnienie wersji protokołu;
  2. notifications/initialized — potwierdzenie;
  3. tools/list — lista narzędzi.

Jeśli w odpowiedzi przyszła lista trzech narzędzi, serwer i dane dostępowe są w porządku — dalej można wołać tools/call z prawdziwym zapytaniem. Ten test oszczędza godziny, bo od razu dzieli problem na „serwer nie odpowiada” i „klient go nie widzi”.

Gdzie wszystko stanęło: odmowa 403 od Google

Protokół ożył, narzędzia na miejscu, a pierwsze prawdziwe zapytanie wróciło z odmową:

PERMISSION_DENIED
ACTION_NOT_PERMITTED
The Google Cloud project is only
approved for use with test accounts.

Komunikat jest uczciwy: projekt ma poziom Test, żywego konta reklamowego mu nie udostępnią. Z doborem słów, frazami wyjściowymi i regionami nie ma to nic wspólnego.

I tu pułapka, w którą jednak wpadłem: po odmowie pierwszym odruchem jest przeformułowanie zapytania — zmienić język, usunąć część fraz, spróbować innego kraju. Bez sensu. Błąd dotyczy poziomu dostępu całego projektu, a nie konkretnego wywołania. Lekarstwo jest jedno: weryfikacja marki i wniosek o Basic.

Jeszcze drobiazg dla tych, którzy będą szukać treści błędu: w starszych wersjach API odmowa przychodzi jako ACTION_NOT_PERMITTED, w najnowszej — pod innym kodem. Ta sama przyczyna wygląda inaczej i potrafi zmylić.

Ile to zajęło czasu

Część techniczna to około godziny: pobrać plik, utworzyć klienta OAuth, zdobyć token odświeżania, zarejestrować serwer, sprawdzić protokół. Całą resztę pochłonęła strona administracyjna Google: najpierw droga według nieaktualnego poradnika z kontem menedżera, potem rozbiór nowego schematu, potem weryfikacja marki, która wymaga potwierdzonej domeny i wypełnionego ekranu zgody.

Jeśli planujesz taką integrację — zarezerwuj dzień na formalności i godzinę na instalację, a nie odwrotnie.

Bezpieczeństwo: co zrobiłbym inaczej

  • Sekrety nie w skryptach. U mnie na czas debugowania leżały wprost w pliku testowym i to zła nawyczka: ich miejsce jest w zmiennych środowiskowych albo w magazynie sekretów, a sam plik — w wykluczeniach repozytorium.
  • Mniej narzędzi, mniejsza powierzchnia. Trzy funkcje odczytu nie utworzą kampanii ani nie zmienią stawki. Serwer, który to potrafi, wymaga zupełnie innego poziomu zaufania.
  • Osobny projekt Cloud na integrację. Łatwiej odciąć dostęp w całości, nie ruszając pozostałych usług.
  • Kod przeczytać przed uruchomieniem. Dwadzieścia osiem megabajtów to zbudowany plik binarny, ale źródła są otwarte: pół godziny czytania jest tańsze niż jeden incydent.

Co to daje w pracy

Gdy dostęp jest otwarty, scenariusz wygląda tak: piszesz tekst strony i pytasz, ilu ludzi w Polsce szuka danej frazy i które sformułowania są popularniejsze — liczby przychodzą w tym samym oknie, bez eksportów. Tą samą drogą sprawdza się pomysły na nowe usługi, listę słów wykluczających i sezonowość popytu.

Uczciwie o moim statusie w dniu publikacji: projekt wciąż jest na poziomie Test, wniosek o Basic czeka w kolejce. Dlatego w tym tekście nie ma liczb z żywego konta — jest działający schemat i grabie, na które nadepnąłem. Gdy dostęp zostanie otwarty, wrócę i uzupełnię artykuł o prawdziwe pomiary.

Czy warto powtarzać

Jeśli regularnie piszesz teksty, prowadzisz reklamy albo odpowiadasz za stronę, na której decyzje zapadają na podstawie popytu — tak. Integracja zdejmuje przełączanie kontekstu, a to największa strata czasu w takiej pracy. Jeśli planer otwierasz raz na kwartał, prościej wejść do panelu ręcznie.

I na koniec: wrześniowa reforma dostępu oznacza, że większość poradników o Google Ads API jest dziś nieaktualna. Zanim powtórzysz cudzy przewodnik, sprawdź oficjalną dokumentację — jej data znaczy więcej niż liczba gwiazdek repozytorium.

Podłączymy Keyword Planner do asystenta AI za Ciebie — na Twoim komputerze albo w Twojej chmurze, razem z załatwieniem dostępu w Google.