Das Model Context Protocol (MCP) ist ein offener Standard, der es Large Language Models (LLMs) ermöglicht, sicher mit externen Daten und Anwendungen zu interagieren. Der Google Ads-MCP-Server bietet eine standardisierte Brücke zur Google Ads API. KI-Agenten können damit Kontodaten abrufen und analysieren, Assets erstellen, Videos hochladen und Labels verwalten, indem sie natürliche Sprache verwenden.
Community-Ressourcen und Support
GitHub-Repository: Im google-ads-mcp-Repository finden Sie Demos und Beispiele, können Fehler melden oder Funktionen vorschlagen.
Verwenden Sie den Tab „Issues“ für Fehlerberichte und Feature Requests.
Community: Treten Sie dem Kanal
#ads-api-ai-toolsin der Google Advertising Community auf Discord bei.
Technische Übersicht
Durch die Einbindung des Google Ads-MCP-Servers ist es nicht mehr erforderlich, benutzerdefinierten Code für die Google Ads API-Authentifizierung, das Abrufen von Ressourcen, das Parsen von Daten und unterstützte Asset- oder Label-Änderungen zu schreiben. Der Server stellt aufrufbare Tools und Referenz-Ressourcen (siehe Kernfunktionen) bereit, die ein LLM prüfen und aufrufen kann.
Wichtige Spezifikationen
- Protokoll: MCP (Model Context Protocol)
- Modus: Lesen und teilweise ändern (Asset-Erstellung, Video-Uploads und Label-Verwaltung mit Vorschlags- und Bestätigungsvalidierung oder konfigurierbarem Lesemodus)
- Sprache: Python 3.10 oder höher
- Transport: Standardeingabe/-ausgabe (
stdio) oder streamfähiges HTTP (streamable-httpin Cloud Run) - Authentifizierung: Standardanmeldedaten für Anwendungen (OAuth 2.0-Nutzeranmeldedaten oder Dienstkonto) für lokale
stdiooder OAuth 2.0-Webanwendungsanmeldedaten für Remote-HTTP
Funktionsweise der Interaktionsschleife
- Anfrage: Sie senden einen Prompt wie „Wie ist die Kampagnenleistung in dieser Woche?“ oder „Erstelle ein Asset mit Zusatzinformationen für unseren Sommerschlussverkauf“.
- Erkennung: Das LLM prüft die verfügbaren Tools und Ressourcen und wählt ein passendes
google-ads-mcp-Tool aus. - Ausführung oder Probelaufvalidierung: Lesetools fragen die Google Ads API direkt ab.
Mutate-Tools werden zuerst im Vorschlagsmodus (
validate_only=True) ausgeführt, um Eingaben zu validieren, ohne Änderungen zu übernehmen (siehe Sicherheitsworkflow für Vorschläge und Bestätigungen). - Kontextinjektion: Der MCP-Server gibt strukturierte Abfrageergebnisse oder vorgeschlagene
change_items-Einträge und einen Prüf-checksum-Digest an das Kontextfenster des LLM zurück. - Antwort und Bestätigung: Das LLM präsentiert eine Antwort oder bittet Sie, die vorgeschlagenen Änderungen zu bestätigen. Nachdem Sie die Änderung genehmigt haben, ruft das LLM das Mutationstool noch einmal mit
validate_only=Falseund dem entsprechendenchecksum-Wert auf, um die Änderung zu übernehmen.
Jetzt starten
So konfigurieren Sie den Google Ads-MCP-Server und führen ihn lokal aus: Wenn Sie stattdessen einen freigegebenen Remotedienst bereitstellen möchten, finden Sie weitere Informationen unter Bereitstellung in Google Cloud.
Vorbereitung
Bevor Sie den Server konfigurieren, müssen Sie die folgenden Voraussetzungen in Ihrer lokalen Umgebung und in der Google Cloud Console erfüllen:
- Google Cloud-Projekt: Erstellen oder wählen Sie ein Google Cloud-Projekt mit aktivierter Google Ads API aus. Wenn Sie die API aktivieren, erhalten Sie Testzugriff, um Lese- und Änderungs-Workflows für Testkonten zu testen. Wenn Sie auf Produktionskonten zugreifen möchten, prüfen Sie auf der Übersichtsseite der Google Ads API, ob Sie Explorer-, Basic- oder Standardzugriff haben, oder beantragen Sie eine dieser Zugriffsebenen. Andernfalls schlagen Produktionsaufrufe mit dem Fehler
AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTIONfehl. Google stellt Entwicklertokens (GOOGLE_ADS_DEVELOPER_TOKEN) am 9. September 2026 ein. Das Google Cloud-Projekt, zu dem Ihr OAuth-Client oder Ihr Dienstkonto gehört, bestimmt Ihre API-Zugriffsebene. - Anmeldedaten: Der lokale
stdio-Modus authentifiziert sich mit Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) aus einer JSON-Datei mit einem OAuth 2.0-Clientschlüssel oder einem Dienstkonto in Ihrem Cloud-Projekt. Legen Sie die UmgebungsvariableGOOGLE_CLOUD_PROJECTfest, wenn Sie Ihr Standardkontingent oder ADC-Projekt angeben müssen. Für Remote-streamable-http-Bereitstellungen sind stattdessen eine Client-ID und ein Clientschlüssel für die OAuth 2.0-Webanwendung erforderlich (siehe In Google Cloud Run bereitstellen). - Lokale Software (für den
stdio-Modus): Installieren Sie Python 3.10 oder höher,pipxund dasgcloud-Befehlszeilentool (zum Generieren von ADC-Dateien für Nutzer).
Konfiguration
Generieren Sie Standardanmeldedaten für Anwendungen (ADC) mit einem OAuth-Client aus Ihrem API-fähigen Google Cloud-Projekt und fügen Sie den Google Ads API-Bereich hinzu:
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_JSONErsetzen Sie Folgendes:
PATH_TO_CLIENT_SECRET_JSON: der Pfad zur JSON-Datei mit Ihrem OAuth 2.0-Clientschlüssel.
Dieser Befehl gibt
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]aus (z. B.~/.config/gcloud/application_default_credentials.jsonunter Linux und macOS). Wenn Sie sich stattdessen mit einem Dienstkonto authentifizieren möchten, überspringen Sie diesen Schritt und verweisen Sie mitGOOGLE_APPLICATION_CREDENTIALSauf die JSON-Datei Ihres Dienstkontoschlüssels oder übergeben Sie--impersonate-service-accountangcloud auth application-default login.Fügen Sie den Server der MCP-Konfigurationsdatei Ihres Hosts hinzu (z. B.
~/.gemini/config/mcp_config.json,~/.gemini/settings.jsonoder~/.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" } } } }Ersetzen Sie Folgendes:
PROJECT_IDist Ihre Google Cloud-Projekt-ID.PATH_TO_CREDENTIALS_JSON: der Pfad zur JSON-Datei mit den Standardanmeldedaten für Anwendungen, die in Schritt 1 ausgegeben wurde, oder zur JSON-Datei mit dem Dienstkontoschlüssel. Sie könnenGOOGLE_APPLICATION_CREDENTIALSweglassen, wenn Sie den Standardspeicherort für die ADC-Dateigcloudverwenden.
Wenn Sie über ein Verwaltungskonto auf Kundenkonten zugreifen möchten, legen Sie
GOOGLE_ADS_LOGIN_CUSTOMER_ID(10 Ziffern, ohne Bindestriche) inenvfest oder übergeben Sie den Parameterlogin_customer_idbei einzelnen Toolaufrufen.
Optional: Agenten mit Skills und dem Developer Assistant ausstatten
Der Google Ads-MCP-Server bietet Ihrem KI-Client Live-Zugriff auf Berichtsdaten zum Konto sowie Managementtools zur Asset-Erstellung, zum Hochladen von Videos und zur Labelverwaltung. Kombinieren Sie den MCP-Server mit den folgenden Begleittools, um Ihren KI-Agenten beim Erstellen gültiger Google Ads Query Language (GAQL)-Abfragen und beim Diagnostizieren von Leistungsänderungen im Konto zu unterstützen. Mit diesen Tools wird auch Clientbibliotheks-Code generiert, z. B. Scripts, um erstellte Assets mit Kampagnen zu verknüpfen oder andere nicht unterstützte Änderungen vorzunehmen:
Google Ads API-Agent-Skills: Übertragbare Workflow-Module (einschließlich
google-ads-api-mcp-setup,google-ads-api-account-diagnosticsundgoogle-ads-api-quickstart), mit denen Ihr Agent den Google Ads-MCP-Server mit geringerem Token-Overhead verwenden kann. Führen Sie den folgenden Befehl aus, um sie zu installieren (erfordert Node.js), oder lesen Sie den Leitfaden zu Google Ads API-Agent-Skills für die Einrichtung von Antigravity, Claude Code, Codex und Cursor:npx skills add google/skills/skills/adsGoogle Ads API Developer Assistant: Ein modulares Plug-in für Google Antigravity und Claude Code, das lokale Protobuf-Schemaprüfung, GAQL-Validierung, Codegenerierung für Clientbibliotheken und Fehlerbehebung bei Offline-Conversions bietet. Lesen Sie den Artikel Was ist der Google Ads API Developer Assistant? oder folgen Sie der Installationsanleitung.
Hauptfunktionen
In den folgenden Abschnitten werden die Lesetools, die Tools für partielle Mutationen und die Referenzressourcen des Servers beschrieben. Ab v0.0.6 werden Tools standardmäßig mit dem Namespace-Präfix ihrer Kategorie (z. B. search_search) registriert. Wenn Sie Prompts oder Zulassungslisten von Releases ohne Präfix aktualisieren, müssen Sie die Toolnamen aktualisieren oder ein leeres Präfix ("") in tools_config.yaml festlegen (siehe Tool-Namespaces und Lesemodus konfigurieren).
Lesetools
customers_list_accessible_customers(Toollist_accessible_customers): Gibt die Google Ads-Kundennummern zurück, auf die der authentifizierte Nutzer direkt zugreifen kann.search_search(Toolsearch): Erstellt und führt GAQL-SearchStream-Abfragen aus strukturierten Parametern (customer_id,resourceundfieldssowie optionalconditions,orderings,limitundlogin_customer_id) anstelle eines unbearbeiteten GAQL-Strings aus. An jede Abfrage wirdPARAMETERS omit_unselected_resource_names=trueangehängt, um Ressourcenattribute, Messwerte, Segmente, Budgets und Status sauber abzurufen.metadata_get_resource_metadata(Toolget_resource_metadata): Ruft auswählbare, filterbare und sortierbare Attribute, Messwerte und Segmente für einen Google Ads API-Ressourcentyp ab (z. B."campaign"). Verwenden Sie diese Metadaten, um gültige Abfragefelder zu ermitteln, einschließlich Messwerten und Segmenten, die in Nebenversionen wie v26.2 hinzugefügt wurden, bevor Sie das Toolsearch_searchaufrufen.
Mutate-Tools (teilweise Unterstützung)
assets_create_asset(Toolcreate_asset): Erstellt eigenständige Google Ads-Assets mit dedizierten Parametern für die Asset-TypenTEXT,IMAGE,YOUTUBE_VIDEO,SITELINK,CALLOUTundSTRUCTURED_SNIPPET. Übergeben Sie dasextra_params-Wörterbuch für andere änderbareAssetService-Typen (z. B.PRICE,PROMOTION,CALLoderBUSINESS_MESSAGE) und fügen Siefinal_urlsauf Stammebene nebensitelink_link_textfürSITELINK-Assets hinzu. Lokale Dateipfade (image_asset_path) funktionieren nur im lokalenstdio-Modus. Übergeben Sie bei Remote-HTTP-Bereitstellungen den base64-codierten Parameterimage_asset_data, wobeiimage_asset_mime_typeaufIMAGE_PNG,IMAGE_JPEGoderIMAGE_GIF(bis zu 20 MB) festgelegt ist.assets_upload_video_asset(Toolupload_video_asset): Lädt eine lokale Videodatei (.3gp,.avi,.flv,.mkv,.mov,.mp4,.mpeg,.mpg,.ogg,.webmoder.wmv) über die Google Ads API nur im lokalenstdio-Modus auf YouTube hoch. Sowohlvideo_titleals auchvideo_descriptionsind erforderliche Parameter. Die Datenschutzeinstellung ist standardmäßig aufUNLISTEDfestgelegt (oder aufPUBLICbei Markenkanälen, die dem Werbetreibenden gehören, mit Nutzer-OAuth). Dieses Tool gibt einen Google Ads-video_upload_id-Wert (und Ressourcennamen) zurück, nicht die 11-stellige YouTube-video_id. Fragen Sieyou_tube_video_uploadmit dem Toolsearch_searchab (Filtern nachyou_tube_video_upload.video_upload_id), bisyou_tube_video_upload.state = 'PROCESSED'. Übergeben Sie dannyou_tube_video_upload.video_idals Parameteryoutube_video_idanassets_create_asset(asset_type="YOUTUBE_VIDEO").labels_manage_labels(Toolmanage_labels): Erstellt, aktualisiert und entfernt Kontolabels, einschließlich Name, Beschreibung und Hex-Hintergrundfarbe.labels_manage_label_associations(Toolmanage_label_associations): Unterstützt die LabelzuordnungsvorgängeCREATEundREMOVE(UPDATEwird nicht unterstützt) für die RessourcenCAMPAIGN,CUSTOMER,AD_GROUPundAD_GROUP_CRITERION. FürCUSTOMER-Ressourcen istresource_idoptional und standardmäßig aufcustomer_idfestgelegt. Übergeben Sie eine zusammengesetzte{ad_group_id}~{criterion_id}-ID fürAD_GROUP_CRITERION-Ressourcen und entfernen Sie Verknüpfungen, indem Sie entwederresource_idundlabel_idoderassociation_resource_nameübergeben.AD_GROUP_AD-Labels auf Anzeigenebene werden nicht unterstützt.
Referenzressourcen
Der Server stellt vier schreibgeschützte MCP-Ressourcen bereit, die unabhängig von Ihren tools_config.yaml-Einstellungen bereitgestellt bleiben:
resource://discovery-document: JSON-REST-Discovery-Übersicht über Google Ads API-Ressourcen, -Dienstmethoden und -Schemas. Es ergänzt dasmetadata_get_resource_metadata-Tool, das auswählbare, filterbare und sortierbare GAQL-Abfragefelder zurückgibt.resource://metrics: HTML-Referenzdokumentation für Google Ads API-Messwerte.resource://segments: HTML-Referenzdokumentation für Google Ads API-Segmente.resource://release-notes: HTML-Versionshinweise zur Google Ads API mit Versionsänderungen und neuen Funktionen.
Workflow für Vorschläge und Bestätigungen zur Sicherheit
Bei jedem Änderungstool (assets_create_asset, assets_upload_video_asset, labels_manage_labels und labels_manage_label_associations) wird ein zweistufiger Vorschlags- und Bestätigungsworkflow erzwungen, um unbeabsichtigte Kontoänderungen zu verhindern:
- Vorschlagen (
validate_only=True, Standard): Validiert Eingaben, ohne Änderungen zu übernehmen. Die Asset- und Label-Tools führen einen Live-Probelauf der Google Ads API (validate_only) aus. DaYouTubeVideoUploadServicekeinen Probelaufmodus hat, validiertassets_upload_video_assetstattdessen die lokale Datei und bindet ihre Größe und den Änderungszeitstempel. Jedes Tool gibt menschenlesbarechange_items-Einträge und einen zustandslosen SHA-256-checksum-Digest zurück, der an dencustomer_id-Parameter und die Anfrage-Nutzlast gebunden ist. - Bestätigen (
validate_only=False): Nachdem der Agent die Listechange_itemspräsentiert und Ihre Genehmigung erhalten hat, ruft er das Tool noch einmal mitvalidate_only=False, dem identischen Parameter und den Argumentencustomer_idund dem Wertchecksumaus Schritt 1 auf. Der Server lehnt fehlende oder nicht übereinstimmende Prüfsummen ab, bevor das Konto geändert wird.
Tool-Namespaces und Lesemodus konfigurieren
Der Server enthält eine Standarddatei tools_config.yaml, in der alle fünf Toolkategorien (customers, search, metadata, labels und assets) aktiviert sind.
Sie können tools_config.yaml anpassen, um einzelne Tools oder Namespaces selektiv zu aktivieren oder zu deaktivieren, Namespace-Präfixe zu ändern oder zu entfernen oder eine rein schreibgeschützte Bereitstellung zu erzwingen.
Beim Start löst der Server tools_config.yaml in der folgenden Reihenfolge auf:
- Ein expliziter Pfad in der Umgebungsvariablen
GOOGLE_ADS_MCP_TOOLS_CONFIG(empfohlen für lokalestdio-Hosts, deren Arbeitsverzeichnis sich von Ihrem Projektordner unterscheiden kann). - Eine
tools_config.yaml-Datei im aktuellen Arbeitsverzeichnis des Servers. - Die Standarddatei
tools_config.yaml, die im Paket enthalten ist.
Wenn GOOGLE_ADS_MCP_TOOLS_CONFIG auf eine fehlende Datei verweist oder eine aufgelöste Konfigurationsdatei ungültig ist, gibt der Server beim Start einen Fehler aus, anstatt auf die Standardeinstellungen zurückzugreifen.
Die folgende minimale tools_config.yaml-Datei erzwingt ein Deployment, das nur Lesezugriff hat:
namespaces:
customers: true
search: true
metadata: true
labels: false
assets: false
In der folgenden tools_config.yaml-Datei werden Präfixe angepasst und einzelne Tools gefiltert. Beispielsweise wird das Base64-Tool create_asset in Cloud Run verfügbar gemacht, während das nur lokal verfügbare Tool upload_video_asset deaktiviert wird:
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
Beispiel-Prompts für den Einstieg
Probieren Sie die folgenden Prompts in Ihrem MCP-Client aus, nachdem Sie den Server verbunden haben.
Fragen, was der Server tun kann
What can the google-ads-mcp server do?
Nach Kunden fragen
What customers do I have access to?
Fragen zu Kampagnen stellen
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
Assets erstellen, Videos hochladen und Labels verwalten
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
Bereitstellung in Google Cloud
Wenn Sie den MCP-Server für mehrere Agenten freigeben oder als Webdienst ausführen möchten, hosten Sie ihn in Google Cloud Run oder bei einem anderen Cloud-Infrastrukturanbieter, anstatt ihn lokal auszuführen.
Vorbereitung
- Ein Google Cloud-Projekt mit aktivierter Google Ads API (Informationen zu den Anforderungen für den Produktionszugriff finden Sie unter Voraussetzungen).
Das
gcloud-Befehlszeilentool muss installiert, authentifiziert und mit einem aktiven Projekt konfiguriert sein:gcloud config set project PROJECT_IDErsetzen Sie Folgendes:
PROJECT_IDist Ihre Google Cloud-Projekt-ID.
Docker-Image erstellen und per Push übertragen
Verwenden Sie Cloud Build, um das Container-Image zu erstellen und in Artifact Registry zu übertragen, ohne Docker lokal zu installieren:
Erstellen Sie ein Repository in Artifact Registry:
gcloud artifacts repositories create mcp-servers \ --repository-format=docker --location=us-central1Erstellen Sie das Image und senden Sie es über ein Release-Tag im GitHub-Repository (oder über
.in einem lokalen Checkout, wenn SieDockerfileodertools_config.yamlangepasst haben):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.6Ersetzen Sie Folgendes:
PROJECT_IDist Ihre Google Cloud-Projekt-ID.
Erstellen Sie das Image neu und stellen Sie es erneut bereit, wenn Sie
google-ads-mcpaktualisieren oder die gebündelte Python-Clientbibliothekgoogle-adsfür neue Google Ads API-Releases (z. B. v26.2) aktualisieren.
In Google Cloud Run bereitstellen
Konfigurieren Sie die folgenden Umgebungsvariablen und Secrets für Ihren Cloud Run-Dienst:
GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: Die OAuth 2.0-Client-ID für Webanwendungen aus Ihrem API-fähigen Google Cloud-Projekt für die OAuth-Authentifizierung auf Anwendungsebene. Führen Sie die folgenden OAuth-Konfigurationsschritte aus:- Fügen Sie die autorisierten Weiterleitungs-URIs für alle KI-Clients hinzu, die Sie verbinden möchten (z. B.
https://claude.ai/api/mcp/auth_callback,https://chatgpt.com/connector_platform_oauth_redirectoderhttps://antigravity.google/oauth-callback). - Fügen Sie den Bereich
https://www.googleapis.com/auth/adwordsauf dem OAuth-Zustimmungsbildschirm unter APIs und Dienste > OAuth-Zustimmungsbildschirm > Datenzugriff (Bereiche hinzufügen oder entfernen) hinzu. - Wenn der Veröffentlichungsstatus Ihres OAuth-Zustimmungsbildschirms auf Test (Standard) festgelegt ist, fügen Sie die Google-Konten, die eine Verbindung zum MCP-Server herstellen, unter APIs und Dienste > OAuth-Zustimmungsbildschirm > Zielgruppe (Testnutzer > + Nutzer hinzufügen) als Testnutzer hinzu.
- Fügen Sie die autorisierten Weiterleitungs-URIs für alle KI-Clients hinzu, die Sie verbinden möchten (z. B.
GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: Der OAuth-Clientschlüssel, der Ihrer OAuth-Client-ID entspricht.GOOGLE_ADS_MCP_BASE_URL: Die öffentliche Basis-URL Ihres MCP-Servers (z. B.https://google-ads-mcp-xyz-uc.a.run.app). Cloud Run weist diese URL während der ersten Bereitstellung zu. Stellen Sie den Dienst daher zuerst ohne diese Variable bereit und aktualisieren Sie ihn anschließend.GOOGLE_ADS_MCP_JWT_SIGNING_KEY(empfohlen für Cloud Run mit mehreren Instanzen): Ein persistentes Secret, das FastMCP-JWTs über Containerneustarts und horizontales Skalieren hinweg signiert.GOOGLE_ADS_MCP_STORAGE_TYPE(empfohlen für Cloud Run mit mehreren Instanzen): Persistentes Backend für OAuth-Clientregistrierungen und -Tokens (redismitGOOGLE_ADS_MCP_STORAGE_REDIS_URLoderfirestore). Da die Standard-v0.0.6-Dockerfilenur das In-Memory-Backend installiert, installieren Sie zuerstpy-key-value-aio[redis]oder.[firestore]in einer benutzerdefiniertenDockerfile. Für die Verwendung vonfirestoresind außerdem eine Firestore-Datenbank und die IAM-Rolleroles/datastore.userfür das Cloud Run-Dienstkonto erforderlich. Übergeben Sie für Tests mit einer einzelnen Instanz mit speicherinternem Speicher--max-instances=1.GOOGLE_ADS_LOGIN_CUSTOMER_ID(optional): Standardmäßige 10-stellige Kundennummer des Verwaltungskontos (ohne Bindestriche), die verwendet wird, wenn der Parameterlogin_customer_idbei Toolaufrufen weggelassen wird.GOOGLE_ADS_MCP_TOOLS_CONFIG(optional): Containerpfad zu einer benutzerdefiniertentools_config.yaml-Datei (z. B. aus Secret Manager unter/etc/mcp/tools_config.yamlbereitgestellt, um den Lesemodus ohne Neuerstellung des Images zu erzwingen). Weitere Informationen finden Sie unter Tool-Namespaces und Lesemodus konfigurieren.
Speichern Sie GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET und GOOGLE_ADS_MCP_JWT_SIGNING_KEY in Secret Manager und stellen Sie den Dienst in Google Cloud Run bereit:
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"
Nachdem Cloud Run die Bereitstellung abgeschlossen hat, rufen Sie die zugewiesene Dienst-URL ab und aktualisieren Sie den Dienst mit der Umgebungsvariablen 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"
Ersetzen Sie Folgendes:
PROJECT_IDist Ihre Google Cloud-Projekt-ID.CLIENT_ID: Ihre OAuth 2.0-Client-ID für die Webanwendung.MCP_OAUTH_CLIENT_SECRET: der Secret Manager-Secret-Name, unter dem Ihr OAuth 2.0-Clientschlüssel gespeichert ist.MCP_JWT_SIGNING_KEY: der Secret Manager-Secret-Name, unter dem Ihr JWT-Signaturschlüssel gespeichert ist.CLOUD_RUN_SERVICE_URL: der Hostname, der Ihrem Cloud Run-Dienst zugewiesen ist (z. B.google-ads-mcp-xyz-uc.a.run.app).
Authentifizierungs- und Sicherheitsmodell
Bei der Bereitstellung mit --allow-unauthenticated wird die IAM-Prüfung der Cloud Run-Infrastruktur (roles/run.invoker) deaktiviert, sodass externe KI-Clients ohne Google Cloud-Dienstkontotokens eine Verbindung herstellen können. Die Authentifizierung wird stattdessen an die Anwendungsebene delegiert:
- Wenn
GOOGLE_ADS_MCP_OAUTH_CLIENT_IDundGOOGLE_ADS_MCP_OAUTH_CLIENT_SECRETfestgelegt sind, erzwingt der Server bei jeder Anfrage Google OAuth 2.0 und gibt den HTTP-Statuscode401 Unauthorizedan nicht authentifizierte Aufrufer zurück. Jeder Toolaufruf wird unter der OAuth-Identität des authentifizierten Aufrufers ausgeführt. - Wenn Sie
--allow-unauthenticatedweglassen, müssen Aufrufer bei jeder Anfrage Google Cloud-OIDC-Identitätstokens übergeben. Standard-KI-Clients (wie Claude und ChatGPT) verwenden OAuth für Endnutzer anstelle von Google Cloud IAM-Tokens. Daher sind für direkte Verbindungen--allow-unauthenticatedin Kombination mit OAuth auf Anwendungsebene erforderlich.
MCP-Client konfigurieren
Konfigurieren Sie nach der Bereitstellung Ihren MCP-Client mit der Cloud Run-Dienst-URL. Da der Server OAuth 2.0 erzwingt, muss Ihr Client den MCP-OAuth-Ablauf unterstützen oder ein autorisiertes Inhabertoken bereitstellen:
- OAuth-fähige Clients: Bei Clients, die die MCP-OAuth-Erkennung unterstützen (z. B. Antigravity), wird beim Herstellen einer Verbindung eine Aufforderung von Google zur Anmeldung ausgelöst, um den Zugriffsbereich
https://www.googleapis.com/auth/adwordszu gewähren (in der Google Cloud Console als.../auth/adwordsangezeigt). - KI-Plattformen von Drittanbietern (Claude, ChatGPT): Fügen Sie in den Connector-Einstellungen Ihres Clients einen benutzerdefinierten Connector hinzu, der auf Ihre Dienst-URL mit dem Pfad
/mcpverweist (z. B.https://google-ads-mcp-xyz-uc.a.run.app/mcp). Wählen Sie die OAuth 2.0-Authentifizierung mit Ihrer OAuth-Client-ID und Ihrem Clientschlüssel aus und prüfen Sie, ob der Callback-URI des Clients in den autorisierten Weiterleitungs-URIs Ihres OAuth-Clients enthalten ist. - Clients ohne OAuth-Unterstützung: Clients, die keine HTTP-OAuth-Abläufe unterstützen, erhalten den HTTP-Statuscode
401 Unauthorized. Verwenden Sie für diese Clients stattdessen die lokale stdio-Konfiguration.
Im folgenden Beispiel wird das gemini-Befehlszeilentool in ~/.gemini/settings.json konfiguriert. Ersetzen Sie für Google Antigravity in ~/.gemini/config/mcp_config.json "httpUrl" durch "serverUrl" oder "url":
{
"mcpServers": {
"google-ads-mcp": {
"httpUrl": "https://CLOUD_RUN_SERVICE_URL/mcp"
}
}
}
Ersetzen Sie Folgendes:
CLOUD_RUN_SERVICE_URL: der Hostname, der Ihrem Cloud Run-Dienst zugewiesen ist (z. B.google-ads-mcp-xyz-uc.a.run.app).
Nächste Schritte
- Google Ads API-Agent-Skills installieren
- Informationen zum Google Ads API Developer Assistant
- Google Ads API Developer Assistant installieren und verwenden