Zum Inhalt

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 auflisten
Lesen

Liefert 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 lesen
Lesen

Liest 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 auflisten
Lesen

Liest 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 abfragen
Lesen

Liest 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 auflisten
Lesen

Liest 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

Prü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

Setzt 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.