Model Context Protocol (MCP) to otwarty standard, który umożliwia dużym modelom językowym (LLM) bezpieczną interakcję z zewnętrznymi danymi i aplikacjami. Serwer MCP Google Ads zapewnia ustandaryzowane połączenie z interfejsem Google Ads API. Umożliwia agentom AI pobieranie i analizowanie danych na koncie, tworzenie komponentów, przesyłanie filmów i zarządzanie etykietami za pomocą języka naturalnego.
Zasoby i pomoc społeczności
Repozytorium GitHub: w repozytorium google-ads-mcp znajdziesz wersje demonstracyjne i przykłady, a także możesz zgłaszać błędy i proponować funkcje.
Aby zgłosić błąd lub poprosić o dodanie funkcji, użyj karty Problemy.
Społeczność: dołącz do kanału
#ads-api-ai-toolsna serwerze Discord społeczności Google Advertising.
Informacje techniczne
Integracja serwera MCP Google Ads eliminuje konieczność pisania niestandardowego kodu do uwierzytelniania interfejsu Google Ads API, pobierania zasobów, analizowania danych oraz obsługiwanych mutacji komponentów lub etykiet. Serwer udostępnia wywoływalne narzędzia i zasoby referencyjne (patrz Podstawowe funkcje), które LLM może sprawdzać i wywoływać.
Najważniejsze dane techniczne
- Protokół: MCP (Model Context Protocol)
- Tryb: odczyt i częściowa zmiana (tworzenie zasobów, przesyłanie filmów i zarządzanie etykietami z weryfikacją typu „proponuj i potwierdź” lub konfigurowalny tryb tylko do odczytu)
- Język: Python 3.10 lub nowszy
- Transport: standardowy strumień wejścia/wyjścia (
stdio) lub strumieniowy protokół HTTP (streamable-httpw Cloud Run) - Uwierzytelnianie: domyślne uwierzytelnianie aplikacji (dane logowania użytkownika OAuth 2.0 lub konto usługi) w przypadku lokalnego
stdiolub dane logowania aplikacji internetowej OAuth 2.0 w przypadku zdalnego protokołu HTTP
Jak działa pętla interakcji
- Prośba: przesyłasz prompta, np. „Jaką skuteczność ma moja kampania w tym tygodniu?” lub „Utwórz komponent z objaśnieniem dotyczący naszej letniej wyprzedaży”.
- Wykrywanie: LLM sprawdza dostępne narzędzia i zasoby, a następnie wybiera pasujące narzędzie
google-ads-mcp. - Weryfikacja wykonania lub uruchomienia próbnego: narzędzia do odczytu wysyłają zapytania bezpośrednio do interfejsu Google Ads API.
Narzędzia do mutacji są najpierw uruchamiane w trybie propozycji (
validate_only=True), aby zweryfikować dane wejściowe bez wprowadzania zmian (patrz Proces bezpieczeństwa „proponuj i potwierdź”). - Wstrzykiwanie kontekstu: serwer MCP zwraca ustrukturyzowane wyniki zapytania lub proponowane wpisy
change_itemsi podsumowanie weryfikacjichecksumdo okna kontekstu LLM. - Odpowiedź i potwierdzenie: LLM wyświetla odpowiedź lub prosi o potwierdzenie proponowanych zmian. Po zatwierdzeniu LLM ponownie wywołuje narzędzie do mutacji z parametrem
validate_only=Falsei odpowiadającą mu wartościąchecksum, aby zatwierdzić zmianę.
Rozpocznij
Aby skonfigurować i uruchomić serwer MCP Google Ads lokalnie, wykonaj te czynności. Aby wdrożyć udostępnioną usługę zdalną, zapoznaj się z artykułem Wdrażanie w Google Cloud.
Wymagania wstępne
Zanim skonfigurujesz serwer, wykonaj te czynności w środowisku lokalnym i w konsoli Google Cloud:
- Projekt Google Cloud: utwórz lub wybierz projekt Google Cloud z włączonym interfejsem Google Ads API. Włączenie interfejsu API zapewnia dostęp testowy, który umożliwia testowanie przepływów pracy związanych z odczytem i modyfikacją na kontach testowych. Aby uzyskać dostęp do kont produkcyjnych, sprawdź na stronie Przegląd interfejsu Google Ads API, czy masz dostęp Explorer, podstawowy lub standardowy, albo poproś o jeden z tych poziomów dostępu. W przeciwnym razie wywołania produkcyjne zakończą się błędem
AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION. 9 września 2026 r. Google wycofa tokeny programisty (GOOGLE_ADS_DEVELOPER_TOKEN). Poziom dostępu do interfejsu API zależy od projektu w chmurze Google Cloud, który jest właścicielem klienta OAuth lub konta usługi. - Dane logowania: tryb lokalny
stdiouwierzytelnia się za pomocą domyślnego uwierzytelniania aplikacji (ADC) z pliku JSON tajnego klucza klienta OAuth 2.0 lub konta usługi w projekcie w chmurze. W razie potrzeby ustaw zmienną środowiskowąGOOGLE_CLOUD_PROJECT, aby określić domyślny projekt limitu lub ADC. Zdalne wdrożeniastreamable-httpwymagają identyfikatora klienta i tajnego klucza klienta aplikacji internetowej OAuth 2.0 (patrz Wdrażanie w Google Cloud Run). - Oprogramowanie lokalne (w trybie
stdio): zainstaluj Pythona w wersji 3.10 lub nowszej,pipxi narzędzie wiersza poleceńgcloud(używane do generowania plików ADC użytkownika).
Konfiguracja
Wygeneruj domyślne uwierzytelnianie aplikacji (ADC) za pomocą klienta OAuth z projektu Google Cloud z włączonym interfejsem API i uwzględnij zakres interfejsu Google Ads API:
gcloud auth application-default login \ --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=PATH_TO_CLIENT_SECRET_JSONZastąp te elementy:
PATH_TO_CLIENT_SECRET_JSON: ścieżka do pliku JSON tajnego klucza klienta OAuth 2.0.
To polecenie wyświetla
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON](np.~/.config/gcloud/application_default_credentials.jsonw systemach Linux i macOS). Aby uwierzytelnić się za pomocą konta usługi, pomiń ten krok i wskaż wGOOGLE_APPLICATION_CREDENTIALSplik JSON klucza konta usługi lub przekaż--impersonate-service-accountdogcloud auth application-default login.Dodaj serwer do pliku konfiguracji MCP hosta (np.
~/.gemini/config/mcp_config.json,~/.gemini/settings.jsonlub~/.claude/settings.json):{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": [ "run", "--spec", "google-ads-mcp==0.0.6", "google-ads-mcp" ], "env": { "GOOGLE_CLOUD_PROJECT": "PROJECT_ID", "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON" } } } }Zastąp te elementy:
PROJECT_ID: identyfikator Twojego projektu Google Cloud;PATH_TO_CREDENTIALS_JSON: ścieżka do pliku JSON domyślnych danych uwierzytelniających aplikacji wyświetlonego w kroku 1 lub do pliku JSON klucza konta usługi. Jeśli używasz domyślnej lokalizacji pliku ADCgcloud, możesz pominąćGOOGLE_APPLICATION_CREDENTIALS.
Aby uzyskać dostęp do kont klientów przez konto menedżera, ustaw
GOOGLE_ADS_LOGIN_CUSTOMER_ID(10 cyfr bez łączników) wenvlub przekaż parametrlogin_customer_idw poszczególnych wywołaniach narzędzia.
Opcjonalnie: wyposaż agenta w umiejętności i asystenta programisty
Serwer MCP Google Ads zapewnia klientowi AI dostęp na żywo do danych raportowania konta oraz narzędzi do tworzenia komponentów, przesyłania filmów i zarządzania etykietami. Połącz serwer MCP z poniższymi narzędziami towarzyszącymi, aby pomóc agentowi w tworzeniu prawidłowych zapytań w języku Google Ads Query Language (GAQL) i diagnozowaniu zmian skuteczności konta. Narzędzia te generują też kod biblioteki klienta, np. skrypty do łączenia utworzonych komponentów z kampaniami lub wykonywania innych nieobsługiwanych mutacji:
Umiejętności agenta interfejsu Google Ads API: przenośne moduły przepływu pracy (w tym
google-ads-api-mcp-setup,google-ads-api-account-diagnosticsigoogle-ads-api-quickstart), które pomagają agentowi korzystać z serwera MCP Google Ads przy mniejszym wykorzystaniu tokenów. Uruchom podane niżej polecenie, aby je zainstalować (wymaga to Node.js), lub zapoznaj się z przewodnikiem po umiejętnościach agenta interfejsu Google Ads API, aby dowiedzieć się, jak skonfigurować Antigravity, Claude Code, Codex i Cursor:npx skills add google/skills/skills/adsAsystent programisty interfejsu Google Ads API: modułowa wtyczka do Google Antigravity i Claude Code, która umożliwia lokalną kontrolę schematu Protobuf, weryfikację GAQL, generowanie kodu biblioteki klienta i rozwiązywanie problemów z konwersjami offline. Przeczytaj artykuł Czym jest asystent interfejsu Google Ads API Developer Assistant? lub postępuj zgodnie z przewodnikiem instalacji.
Najważniejsze funkcje
W sekcjach poniżej opisano narzędzia serwera do odczytu, narzędzia do częściowej mutacji i zasoby referencyjne. Od wersji v0.0.6 narzędzia są domyślnie rejestrowane z prefiksem przestrzeni nazw kategorii (np. search_search). Podczas uaktualniania promptów lub list dozwolonych z wersji bez prefiksu zaktualizuj nazwy narzędzi lub ustaw pusty prefiks ("") w tools_config.yaml (patrz Konfigurowanie przestrzeni nazw narzędzi i trybu tylko do odczytu).
Narzędzia do czytania
customers_list_accessible_customers(narzędzielist_accessible_customers): zwraca identyfikatory klienta Google Ads, do których uwierzytelniony użytkownik ma bezpośredni dostęp.search_search(narzędziesearch): tworzy i wykonuje zapytania GAQLSearchStreamna podstawie uporządkowanych parametrów (customer_id,resourceifieldsoraz opcjonalnych parametrówconditions,orderings,limitilogin_customer_id), a nie nieprzetworzonego ciągu GAQL. Każde zapytanie dołączaPARAMETERS omit_unselected_resource_names=true, aby pobrać atrybuty, dane, segmenty, budżety i stan zasobu.metadata_get_resource_metadata(narzędzieget_resource_metadata): pobiera atrybuty, dane i segmenty, które można wybierać, filtrować i sortować, dla typu zasobu interfejsu Google Ads API (np."campaign"). Użyj tych metadanych, aby przed wywołaniem narzędziasearch_searchwykryć prawidłowe pola zapytania, w tym dane i segmenty dodane w mniejszych wersjach, takich jak v26.2.
Narzędzia do modyfikowania danych (częściowa obsługa)
assets_create_asset(narzędziecreate_asset): tworzy samodzielne komponenty Google Ads z oddzielnymi parametrami dla komponentów typuTEXT,IMAGE,YOUTUBE_VIDEO,SITELINK,CALLOUTiSTRUCTURED_SNIPPET. Przekaż słownikextra_paramsdla innych zmiennych typówAssetService(takich jakPRICE,PROMOTION,CALLlubBUSINESS_MESSAGE) i uwzględnijfinal_urlsna poziomie głównym oboksitelink_link_textdla zasobówSITELINK. Ścieżki plików lokalnych (image_asset_path) działają tylko w trybie lokalnymstdio. W przypadku zdalnych wdrożeń HTTP przekaż parametrimage_asset_datazakodowany w formacie base64 z parametremimage_asset_mime_typeustawionym naIMAGE_PNG,IMAGE_JPEGlubIMAGE_GIF(do 20 MB).assets_upload_video_asset(narzędzieupload_video_asset): przesyła lokalny plik wideo (.3gp,.avi,.flv,.mkv,.mov,.mp4,.mpeg,.mpg,.ogg,.webmlub.wmv) do YouTube za pomocą interfejsu Google Ads API tylko w trybie lokalnymstdio. Parametryvideo_titleivideo_descriptionsą wymagane, a domyślne ustawienie prywatności toUNLISTED(lubPUBLICna kanałach firmowych należących do reklamodawcy z protokołem OAuth użytkownika). To narzędzie zwraca wartośćvideo_upload_id(i nazwę zasobu) Google Ads, a nie 11-znakowy identyfikatorvideo_idYouTube. Wysyłaj zapytania doyou_tube_video_uploadza pomocą narzędziasearch_search(filtrując wedługyou_tube_video_upload.video_upload_id) doyou_tube_video_upload.state = 'PROCESSED'. Następnie przekażyou_tube_video_upload.video_idjako parametryoutube_video_iddoassets_create_asset(asset_type="YOUTUBE_VIDEO").labels_manage_labels(narzędziemanage_labels): tworzy, aktualizuje i usuwa etykiety kont, w tym nazwę, opis i szesnastkowy kolor tła.labels_manage_label_associations(narzędziemanage_label_associations): obsługuje operacje powiązania etykietCREATEiREMOVE(UPDATEnie jest obsługiwane) w zasobachCAMPAIGN,CUSTOMER,AD_GROUPiAD_GROUP_CRITERION. W przypadku zasobówCUSTOMERparametrresource_idjest opcjonalny i domyślnie ma wartośćcustomer_id. Przekaż złożony identyfikator{ad_group_id}~{criterion_id}zasobówAD_GROUP_CRITERIONi usuń powiązania, przekazującresource_idilabel_idlubassociation_resource_name. EtykietyAD_GROUP_ADna poziomie reklamy nie są obsługiwane.
Zasoby referencyjne
Serwer udostępnia 4 zasoby MCP tylko do odczytu, które pozostają podłączone niezależnie od ustawień tools_config.yaml:
resource://discovery-document: przegląd zasobów, metod usług i schematów interfejsu Google Ads API w formacie JSON REST. Uzupełnia narzędziemetadata_get_resource_metadata, które zwraca pola zapytania GAQL, które można wybierać, filtrować i sortować.resource://metrics: dokumentacja referencyjna HTML dotycząca danych interfejsu Google Ads API.resource://segments: dokumentacja referencyjna HTML dotycząca segmentów interfejsu Google Ads API.resource://release-notes: informacje o wersji interfejsu Google Ads API w formacie HTML, które zawierają zmiany w wersjach i nowe funkcje.
Przepływ pracy dotyczący bezpieczeństwa oparty na propozycji i potwierdzeniu
Każde narzędzie do modyfikacji (assets_create_asset, assets_upload_video_asset, labels_manage_labels i labels_manage_label_associations) wymusza dwuetapowy proces proponowania i potwierdzania, aby zapobiec niezamierzonym zmianom na koncie:
- Proponowanie (
validate_only=True, domyślne): sprawdza dane wejściowe bez zatwierdzania zmian. Narzędzia do obsługi komponentów i etykiet wykonują uruchomienie próbne interfejsu Google Ads APIvalidate_only. PonieważYouTubeVideoUploadServicenie ma trybu próbnego,assets_upload_video_assetsprawdza poprawność pliku lokalnego i wiąże jego rozmiar oraz sygnaturę czasową modyfikacji. Każde narzędzie zwraca zrozumiałe dla człowieka wpisychange_itemsi bezstanowy skrót SHA-256checksumpowiązany z parametremcustomer_idi ładunkiem żądania. - Potwierdzenie (
validate_only=False): po przedstawieniu listychange_itemsi otrzymaniu Twojej zgody agent ponownie wywołuje narzędzie zvalidate_only=False, identycznym parametrem i argumentamicustomer_idoraz wartościąchecksumz kroku 1. Przed wprowadzeniem zmian na koncie serwer odrzuca brakujące lub niezgodne sumy kontrolne.
Konfigurowanie przestrzeni nazw narzędzi i trybu tylko do odczytu
Serwer zawiera domyślny plik tools_config.yaml ze wszystkimi 5 włączonymi kategoriami narzędzi (customers, search, metadata, labels i assets).
Dostosuj tools_config.yaml, aby selektywnie włączać lub wyłączać poszczególne narzędzia lub przestrzenie nazw, zmieniać lub usuwać prefiksy przestrzeni nazw albo wymuszać wdrożenie wyłącznie do odczytu.
Podczas uruchamiania serwer rozpoznaje tools_config.yaml w następującej kolejności:
- jawna ścieżka w zmiennej środowiskowej
GOOGLE_ADS_MCP_TOOLS_CONFIG(zalecane w przypadku lokalnych hostówstdio, których katalog roboczy może się różnić od folderu projektu). - Plik
tools_config.yamlw bieżącym katalogu roboczym serwera. - Domyślny plik
tools_config.yamldołączony do pakietu.
Jeśli GOOGLE_ADS_MCP_TOOLS_CONFIG wskazuje brakujący plik lub jeśli którykolwiek z rozwiązanych plików konfiguracji jest nieprawidłowy, serwer zgłasza błąd podczas uruchamiania, zamiast przywracać ustawienia domyślne.
Ten minimalny plik tools_config.yaml wymusza wdrożenie tylko do odczytu:
namespaces:
customers: true
search: true
metadata: true
labels: false
assets: false
Ten plik tools_config.yaml dostosowuje prefiksy i filtruje poszczególne narzędzia (np. udostępnia narzędzie base64 create_asset w Cloud Run, wyłączając jednocześnie narzędzie upload_video_asset, które działa tylko lokalnie):
namespaces:
# Default prefix ("customers_list_accessible_customers")
customers: true
# Empty prefix mounts unprefixed tool names ("search")
search: ""
# Custom prefix ("schema_get_resource_metadata")
metadata: "schema"
# Enable only specific tools in a multi-tool category
assets:
enabled_tools:
- create_asset
Przykładowe prompty na początek
Po połączeniu się z serwerem wypróbuj te prompty w kliencie MCP.
Pytanie o możliwości serwera
What can the google-ads-mcp server do?
Pytanie o klientów
What customers do I have access to?
Pytanie o kampanie
How many active campaigns do I have?
How is my campaign performance this week?
Give me a report of the top spending campaigns split by device category over the last 7 days for account 1234567890
Tworzenie zasobów, przesyłanie filmów i zarządzanie etykietami
Create a callout asset with the text "Free Shipping" for account 1234567890
Upload /path/to/promo.mp4 with title "Summer Sale" and description "Summer promo video" for account 1234567890
Create a label named "Q4 Promo" with background color #34A853 and apply it to campaign 9876543210 in account 1234567890
Wdrożenie w Google Cloud
Aby udostępnić serwer MCP wielu agentom lub uruchomić go jako usługę internetową, hostuj go w Google Cloud Run lub u innego dostawcy infrastruktury w chmurze, zamiast uruchamiać go lokalnie.
Wymagania wstępne
- projekt Google Cloud z włączonym interfejsem Google Ads API (wymagania dotyczące dostępu do wersji produkcyjnej znajdziesz w sekcji Wymagania wstępne);
Zainstalowane i uwierzytelnione narzędzie wiersza poleceń
gcloud, które jest skonfigurowane z aktywnym projektem:gcloud config set project PROJECT_IDZastąp te elementy:
PROJECT_ID: identyfikator Twojego projektu Google Cloud;
Tworzenie i przekazywanie obrazu Dockera
Użyj Cloud Build, aby utworzyć obraz kontenera i przesłać go do Artifact Registry bez lokalnego instalowania Dockera:
Utwórz repozytorium w Artifact Registry:
gcloud artifacts repositories create mcp-servers \ --repository-format=docker --location=us-central1Utwórz i prześlij obraz z tagu wersji w repozytorium GitHub (lub z
.w lokalnym procesie płatności, jeśli dostosowanoDockerfilelubtools_config.yaml):gcloud builds submit https://github.com/googleads/google-ads-mcp \ --git-source-revision=v0.0.6 \ --tag=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6Zastąp te elementy:
PROJECT_ID: identyfikator Twojego projektu Google Cloud;
Za każdym razem, gdy aktualizujesz
google-ads-mcplub uaktualniasz dołączoną bibliotekę klientagoogle-adsw języku Python do nowych wersji interfejsu Google Ads API (np. v26.2), musisz ponownie utworzyć i wdrożyć obraz.
Wdróż w Google Cloud Run
Skonfiguruj te zmienne środowiskowe i obiekty tajne dla usługi Cloud Run:
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: identyfikator klienta aplikacji internetowej OAuth 2.0 z projektu Google Cloud z włączonym interfejsem API na potrzeby uwierzytelniania OAuth na poziomie aplikacji. Wykonaj te czynności, aby skonfigurować protokół OAuth:- Dodaj autoryzowane identyfikatory URI przekierowania dla wszystkich klientów AI, których chcesz połączyć (np.
https://claude.ai/api/mcp/auth_callback,https://chatgpt.com/connector_platform_oauth_redirectlubhttps://antigravity.google/oauth-callback). - Dodaj zakres
https://www.googleapis.com/auth/adwordsdo ekranu zgody OAuth w sekcji Interfejsy API i usługi > Ekran zgody OAuth > Dostęp do danych (Dodaj lub usuń zakresy). - Jeśli stan publikacji ekranu zgody OAuth jest ustawiony na Testowanie (domyślnie), dodaj konta Google łączące się z serwerem MCP jako Użytkownicy testowi w sekcji Interfejsy API i usługi > Ekran zgody OAuth > Odbiorcy (Użytkownicy testowi > + Dodaj użytkowników).
- Dodaj autoryzowane identyfikatory URI przekierowania dla wszystkich klientów AI, których chcesz połączyć (np.
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: tajny klucz klienta OAuth odpowiadający identyfikatorowi klienta OAuth.GOOGLE_ADS_MCP_BASE_URL: publiczny podstawowy adres URL serwera MCP (np.https://google-ads-mcp-xyz-uc.a.run.app). Cloud Run przypisuje ten adres URL podczas początkowego wdrażania, więc najpierw przeprowadź wdrożenie bez tej zmiennej, a potem zaktualizuj usługę.GOOGLE_ADS_MCP_JWT_SIGNING_KEY(zalecane w przypadku Cloud Run z wieloma instancjami): trwały obiekt tajny, który podpisuje tokeny JWT FastMCP podczas ponownego uruchamiania kontenerów i skalowania poziomego.GOOGLE_ADS_MCP_STORAGE_TYPE(zalecane w przypadku Cloud Run z wieloma instancjami): trwały backend do rejestracji i tokenów klienta OAuth (rediszGOOGLE_ADS_MCP_STORAGE_REDIS_URLlubfirestore). Ponieważ standardowyv0.0.6Dockerfileinstaluje tylko backend w pamięci, najpierw zainstalujpy-key-value-aio[redis]lub.[firestore]w niestandardowymDockerfile. Korzystanie zfirestorewymaga też bazy danych Firestore i roli uprawnieńroles/datastore.userna koncie usługi Cloud Run. W przypadku testowania pojedynczej instancji z pamięcią masową w pamięci przekaż--max-instances=1.GOOGLE_ADS_LOGIN_CUSTOMER_ID(opcjonalnie): domyślny 10-cyfrowy identyfikator klienta konta menedżera (bez łączników) używany, gdy wywołania narzędzia pomijają parametrlogin_customer_id.GOOGLE_ADS_MCP_TOOLS_CONFIG(opcjonalnie): ścieżka kontenera do niestandardowego plikutools_config.yaml(np. zamontowanego z Secret Managera w/etc/mcp/tools_config.yaml, aby wymusić tryb tylko do odczytu bez ponownego tworzenia obrazu). Zobacz Konfigurowanie przestrzeni nazw narzędzi i trybu tylko do odczytu.
Przechowaj GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET i GOOGLE_ADS_MCP_JWT_SIGNING_KEY w Secret Managerze i wdróż usługę w Google Cloud Run:
gcloud run deploy google-ads-mcp \
--image=us-central1-docker.pkg.dev/PROJECT_ID/mcp-servers/google-ads-mcp:v0.0.6 \
--platform=managed \
--region=us-central1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=CLIENT_ID" \
--set-secrets="GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=MCP_OAUTH_CLIENT_SECRET:latest,GOOGLE_ADS_MCP_JWT_SIGNING_KEY=MCP_JWT_SIGNING_KEY:latest"
Gdy Cloud Run zakończy wdrażanie, pobierz przypisany adres URL usługi i zaktualizuj usługę za pomocą zmiennej środowiskowej GOOGLE_ADS_MCP_BASE_URL:
gcloud run services update google-ads-mcp \
--region=us-central1 \
--update-env-vars="GOOGLE_ADS_MCP_BASE_URL=https://CLOUD_RUN_SERVICE_URL"
Zastąp te elementy:
PROJECT_ID: identyfikator Twojego projektu Google Cloud;CLIENT_ID: identyfikator klienta aplikacji internetowej OAuth 2.0.MCP_OAUTH_CLIENT_SECRET: nazwa obiektu tajnego w usłudze Secret Manager, w którym przechowywany jest tajny klucz klienta OAuth 2.0.MCP_JWT_SIGNING_KEY: nazwa obiektu tajnego w Secret Managerze, w którym przechowywany jest klucz podpisywania JWT.CLOUD_RUN_SERVICE_URL: nazwa hosta przypisana do usługi Cloud Run (np.google-ads-mcp-xyz-uc.a.run.app).
Model uwierzytelniania i zabezpieczeń
Wdrożenie za pomocą --allow-unauthenticated wyłącza sprawdzanie uprawnień infrastruktury Cloud Run (roles/run.invoker), dzięki czemu zewnętrzne klienty AI mogą łączyć się bez tokenów kont usługi Google Cloud. Uwierzytelnianie jest przekazywane do warstwy aplikacji:
- Gdy ustawione są parametry
GOOGLE_ADS_MCP_OAUTH_CLIENT_IDiGOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET, serwer wymusza Google OAuth 2.0 przy każdym żądaniu i zwraca kod stanu HTTP401 Unauthorizednieuwierzytelnionym rozmówcom. Każde wywołanie narzędzia jest wykonywane w ramach uwierzytelnionej tożsamości OAuth elementu wywołującego. - Pominięcie
--allow-unauthenticatedwymaga od wywołujących przekazywania tokenów tożsamości OIDC Google Cloud przy każdym żądaniu. Standardowi klienci AI (tacy jak Claude i ChatGPT) używają protokołu OAuth użytkownika, a nie tokenów Google Cloud IAM, więc połączenia bezpośrednie wymagają--allow-unauthenticatedpołączonego z protokołem OAuth na poziomie aplikacji.
Konfigurowanie klienta MCP
Po wdrożeniu skonfiguruj klienta MCP za pomocą adresu URL usługi Cloud Run. Ponieważ serwer wymusza protokół OAuth 2.0, klient musi obsługiwać przepływ OAuth MCP lub podać autoryzowany token okaziciela:
- Klienty z obsługą protokołu OAuth: w klientach, które obsługują wykrywanie protokołu OAuth MCP (takich jak Antigravity), połączenie powoduje wyświetlenie potwierdzenia od Google w celu przyznania zakresu
https://www.googleapis.com/auth/adwords(wyświetlanego jako.../auth/adwordsw konsoli Google Cloud). - Platformy AI innych firm (Claude, ChatGPT): w ustawieniach oprogramowania sprzęgającego klienta dodaj niestandardowe oprogramowanie sprzęgające wskazujące adres URL usługi ze ścieżką
/mcp(np.https://google-ads-mcp-xyz-uc.a.run.app/mcp). Wybierz uwierzytelnianie OAuth 2.0 za pomocą identyfikatora klienta OAuth i tajnego klucza klienta, a następnie potwierdź, że identyfikator URI wywołania zwrotnego klienta znajduje się w autoryzowanych identyfikatorach URI przekierowania klienta OAuth. - Klienty bez obsługi protokołu OAuth: klienty, które nie obsługują przepływów HTTP OAuth, otrzymują kod stanu HTTP
401 Unauthorized. W przypadku tych klientów użyj lokalnej konfiguracji stdio.
W tym przykładzie skonfigurowano narzędzie wiersza poleceń gemini w ~/.gemini/settings.json (w przypadku Google Antigravity w ~/.gemini/config/mcp_config.json zastąp "httpUrl" wartością "serverUrl" lub "url"):
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://CLOUD_RUN_SERVICE_URL/mcp"
}
}
}
Zastąp te elementy:
CLOUD_RUN_SERVICE_URL: nazwa hosta przypisana do usługi Cloud Run (np.google-ads-mcp-xyz-uc.a.run.app).
Dalsze kroki
- Instalowanie umiejętności agenta interfejsu Google Ads API
- Więcej informacji o asystencie dla deweloperów korzystających z interfejsu Google Ads API
- Instalowanie i używanie asystenta dewelopera interfejsu Google Ads API