
MCP
Google Ads MCPTool-Dokumentation
7 Tool Calls, ihre Eingaben und die Grenzen dieser Verbindung. Stand der Implementierung: 8. Oktober 2026.
Die vollständige Tool-Referenz.
5 Lese-Tools und 2 Schreib-Tools. Öffne ein Tool für Parameter und vollständiges JSON Schema. Unbekannte Felder werden abgelehnt.
ads_list_customersFreigegebene Konten auflistenLesen
ads_list_customersFreigegebene Konten auflistenLiefert nur die für diese Verbindung ausgewählten Ads-Konten. Ein beliebiger MCC-Kontext kann nicht übergeben werden.
Eingabeparameter
Keine Parameter. Übergib ein leeres Objekt: {}.
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}ads_get_customerAds-Konto lesenLesen
ads_get_customerAds-Konto lesenLiest ID, Name, Währung, Zeitzone sowie Test-/Manager-Kennzeichnung des ausgewählten Kontos.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ads_list_campaignsKampagnen auflistenLesen
ads_list_campaignsKampagnen auflistenLiest Kampagnen und ihren aktuellen Status mit einer begrenzten Zeilenzahl.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
limitOptional- integer · Standard: 1000 · min. 1 · max. 10000
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
},
"limit": {
"default": 1000,
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ads_query_campaign_performanceKampagnenleistung abfragenLesen
ads_query_campaign_performanceKampagnenleistung abfragenLiest tägliche Klicks, Impressionen, Kosten und Conversions über maximal 31 inklusive Tage. Das Enddatum darf nicht vor dem Startdatum liegen. Keine freie GAQL-Abfrage und keine automatische Pagination. Kosten kommen als cost_micros: durch 1.000.000 teilen, Währung über ads_get_customer lesen.
Zwischenspeicherung: 60 Sekunden.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
start_datePflichtfeld- string · date
end_datePflichtfeld- string · date
limitOptional- integer · Standard: 1000 · min. 1 · max. 10000
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
},
"start_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"end_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"limit": {
"default": 1000,
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"resource_key",
"start_date",
"end_date"
],
"additionalProperties": false
}ads_list_labelsLabels auflistenLesen
ads_list_labelsLabels auflistenLiest bestehende Labels des ausgewählten Kontos.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
limitOptional- integer · Standard: 1000 · min. 1 · max. 10000
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
},
"limit": {
"default": 1000,
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ads_create_labelLabel anlegenÄndern
ads_create_labelLabel anlegenPrüft standardmäßig nur die Google-Validierung: validate_only=true. Zum tatsächlichen Anlegen validate_only=false und eine neue operation_id verwenden.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
operation_idPflichtfeld- string · uuid
namePflichtfeld- string · Min. Zeichen: 1 · Max. Zeichen: 80
descriptionOptional- string · Max. Zeichen: 2000
background_colorOptional- string
validate_onlyOptional- boolean · Standard: true
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
},
"operation_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Unique operation ID. Reuse only to retrieve this exact operation status; never reuse for changed arguments."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"description": {
"type": "string",
"maxLength": 2000
},
"background_color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"validate_only": {
"default": true,
"type": "boolean"
}
},
"required": [
"resource_key",
"operation_id",
"name"
],
"additionalProperties": false
}ads_set_campaign_statusKampagne pausieren oder aktivierenÄndern
ads_set_campaign_statusKampagne pausieren oder aktivierenSetzt eine bestehende Kampagne auf PAUSED oder ENABLED. Aktivierung kann Werbeausgaben auslösen. Standardmäßig nur Prüfung durch validate_only=true; echte Änderung benötigt false und eine neue operation_id. Ändert keine Budgets.
Ändert bestehende Konfiguration oder den Kampagnenstatus. Ein ausdrücklicher Nutzerauftrag ist erforderlich.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
operation_idPflichtfeld- string · uuid
campaign_idPflichtfeld- string · Max. Zeichen: 40
statusPflichtfeld- string · PAUSED | ENABLED
validate_onlyOptional- boolean · Standard: true
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^customers\\/[1-9]\\d*$"
},
"operation_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Unique operation ID. Reuse only to retrieve this exact operation status; never reuse for changed arguments."
},
"campaign_id": {
"type": "string",
"maxLength": 40,
"pattern": "^[1-9]\\d*$"
},
"status": {
"type": "string",
"enum": [
"PAUSED",
"ENABLED"
]
},
"validate_only": {
"default": true,
"type": "boolean"
}
},
"required": [
"resource_key",
"operation_id",
"campaign_id",
"status"
],
"additionalProperties": false
}Ein konkreter Tool Call.
JSON-RPC-Aufruf nach der MCP-Initialisierung. Beispiel-IDs und Datumswerte: Ersetze sie durch deine ausgewählte Ressource und deinen Berichtszeitraum. Der KI-Client übernimmt Transport und Autorisierung.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ads_query_campaign_performance",
"arguments": {
"resource_key": "customers/1234567890",
"start_date": "2026-09-01",
"end_date": "2026-09-07",
"limit": 100
}
}
}So kommen Ergebnisse zurück.
structuredContent- Enthält das Tool-Ergebnis als JSON-Objekt. Google-Feldnamen bleiben erhalten. Dasselbe JSON wird zusätzlich als Textblock in content zurückgegeben.
- Daten je Tool
- Leseabfragen liefern Googles results mit customer-, campaign-, metrics- oder label-Feldern. costMicros ist in Millionsteln der Kontowährung. validate_only liefert status: validated und validate_only: true ohne Datenänderung.
- Ausgewählte Ressourcen
- Das erste Listen-Tool liefert resources mit resource_key. Es listet ausschließlich die für diese Verbindung freigegebenen Ressourcen.
isError: true- Tool-Fehler liefern structuredContent.error und request_id, optional retry_after_seconds. Beispiele: scope_missing bei fehlendem Zugriff oder service_unavailable bei einem nicht erreichbaren Dienst. Einen unsicheren Schreibauftrag nicht blind wiederholen.
Zugriff und technische Grenzen.
Performance-Abfragen: höchstens 31 inklusive Tage und 10.000 Zeilen, Standardlimit 1.000. Ergebnisse können 60 Sekunden zwischengespeichert sein. Keine freie GAQL-Abfrage, Budget- oder Gebotsänderung. validate_only ist bei beiden Schreib-Tools standardmäßig true: Ein echter Schreibauftrag benötigt false und eine neue operation_id. ENABLED kann Werbeausgaben auslösen.
Die Verbindung verwendet MCP Streamable HTTP mit Bearer-Autorisierung. Der Server prüft Lese-/Schreibrechte und die ausgewählte Ressource bei jedem Call. Sowohl deine Google-Berechtigungen als auch die Zugriffsrechte deiner MCP-Verbindung müssen die Aktion erlauben. Clients entdecken Tools über tools/list; diese Seiten dokumentieren das Tool-Verzeichnis.
Lese-Scope: mcp:ads:read. Schreib-Scope: mcp:ads:write.
Jeder Schreibzugriff benötigt eine UUID als operation_id. Verwende sie nur für exakt dieselbe Aktion erneut, niemals mit geänderten Argumenten. Eine bereits abgeschlossene Aktion liefert beim erneuten Aufruf mutation_status: succeeded und replayed: true, optional result_ref, statt der ursprünglichen Google-Antwort. Schreibzugriffe werden nicht automatisch wiederholt.