
MCP
Google Analytics 4 MCPTool-Dokumentation
11 Tool Calls, ihre Eingaben und die Grenzen dieser Verbindung. Stand der Implementierung: 8. Oktober 2026.
Die vollständige Tool-Referenz.
8 Lese-Tools und 3 Schreib-Tools. Öffne ein Tool für Parameter und vollständiges JSON Schema. Unbekannte Felder werden abgelehnt.
ga4_list_propertiesFreigegebene Properties auflistenLesen
ga4_list_propertiesFreigegebene Properties auflistenLiefert nur die für diese Verbindung ausgewählten GA4-Properties. Weitere Properties werden im Portal verbunden.
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
}ga4_get_propertyProperty lesenLesen
ga4_get_propertyProperty lesenLiest die Konfiguration der ausgewählten GA4-Property.
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": "^properties\\/[1-9]\\d*$"
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ga4_get_quota_snapshotQuota-Budget lesenLesen
ga4_get_quota_snapshotQuota-Budget lesenLiest die verbleibenden Core-/Realtime-Budgets. Der Abruf verbraucht einen Token aus der Kategorie mit dem größten verbleibenden Budget.
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": "^properties\\/[1-9]\\d*$"
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ga4_get_metadataDimensionen und Metriken lesenLesen
ga4_get_metadataDimensionen und Metriken lesenLiefert die verfügbaren Reporting-Dimensionen und Metriken der ausgewählten Property.
Zwischenspeicherung: 60 Sekunden.
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": "^properties\\/[1-9]\\d*$"
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ga4_run_reportPerformance-Bericht abrufenLesen
ga4_run_reportPerformance-Bericht abrufenLiest einen Bericht über maximal 31 inklusive Tage mit bis zu 5 Dimensionen, 10 Metriken und 10.000 Zeilen. Das Enddatum darf nicht vor dem Startdatum liegen. Quota wird mitgeliefert; keine automatische Pagination.
Zwischenspeicherung: 60 Sekunden.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
dimensionsOptional- array · Standard: [] · Max. Einträge: 5 · Einträge: string
metricsPflichtfeld- array · Min. Einträge: 1 · Max. Einträge: 10 · Einträge: string
limitOptional- integer · Standard: 1000 · min. 1 · max. 10000
start_datePflichtfeld- string · date
end_datePflichtfeld- string · date
offsetOptional- integer · Standard: 0 · min. 0 · max. 50000
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[1-9]\\d*$"
},
"dimensions": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z][A-Za-z0-9_:]*$"
}
},
"metrics": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z][A-Za-z0-9_:]*$"
}
},
"limit": {
"default": 1000,
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"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])))$"
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 50000
}
},
"required": [
"resource_key",
"metrics",
"start_date",
"end_date"
],
"additionalProperties": false
}ga4_run_realtime_reportEchtzeit-Bericht abrufenLesen
ga4_run_realtime_reportEchtzeit-Bericht abrufenLiest aktuelle GA4-Aktivität mit bis zu 5 Dimensionen, 10 Metriken und 10.000 Zeilen. Quota wird mitgeliefert; Ergebnisse werden nicht zwischengespeichert.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
dimensionsOptional- array · Standard: [] · Max. Einträge: 5 · Einträge: string
metricsPflichtfeld- array · Min. Einträge: 1 · Max. Einträge: 10 · Einträge: string
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": "^properties\\/[1-9]\\d*$"
},
"dimensions": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z][A-Za-z0-9_:]*$"
}
},
"metrics": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z][A-Za-z0-9_:]*$"
}
},
"limit": {
"default": 1000,
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"required": [
"resource_key",
"metrics"
],
"additionalProperties": false
}ga4_list_key_eventsSchlüsselereignisse auflistenLesen
ga4_list_key_eventsSchlüsselereignisse auflistenLiest eine Seite der konfigurierten Schlüsselereignisse; weitere Seiten über page_token.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
page_tokenOptional- string · Max. Zeichen: 4096
page_sizeOptional- integer · Standard: 100 · min. 1 · max. 200
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[1-9]\\d*$"
},
"page_token": {
"type": "string",
"maxLength": 4096
},
"page_size": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"resource_key"
],
"additionalProperties": false
}ga4_get_key_eventSchlüsselereignis lesenLesen
ga4_get_key_eventSchlüsselereignis lesenLiest ein einzelnes Schlüsselereignis der ausgewählten Property.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
key_event_idPflichtfeld- string · Max. Zeichen: 40
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[1-9]\\d*$"
},
"key_event_id": {
"type": "string",
"maxLength": 40,
"pattern": "^[1-9]\\d*$"
}
},
"required": [
"resource_key",
"key_event_id"
],
"additionalProperties": false
}ga4_create_key_eventSchlüsselereignis anlegenÄndern
ga4_create_key_eventSchlüsselereignis anlegenKennzeichnet einen Event-Namen als Schlüsselereignis. Ändert die Reporting-Konfiguration und benötigt einen ausdrücklichen Auftrag sowie eine eindeutige operation_id.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
operation_idPflichtfeld- string · uuid
event_namePflichtfeld- string · Max. Zeichen: 40
counting_methodPflichtfeld- string · ONCE_PER_EVENT | ONCE_PER_SESSION
default_valueOptional- object · Pflicht im Objekt: numericValue, currencyCode
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[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."
},
"event_name": {
"type": "string",
"maxLength": 40,
"pattern": "^[A-Za-z][A-Za-z0-9_]*$"
},
"counting_method": {
"type": "string",
"enum": [
"ONCE_PER_EVENT",
"ONCE_PER_SESSION"
]
},
"default_value": {
"type": "object",
"properties": {
"numericValue": {
"type": "number"
},
"currencyCode": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"required": [
"numericValue",
"currencyCode"
],
"additionalProperties": false
}
},
"required": [
"resource_key",
"operation_id",
"event_name",
"counting_method"
],
"additionalProperties": false
}ga4_update_key_eventSchlüsselereignis ändernÄndern
ga4_update_key_eventSchlüsselereignis ändernÄndert Zählmethode und/oder Standardwert. Mindestens counting_method oder default_value muss gesetzt sein. Der Event-Name ist nicht änderbar.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
operation_idPflichtfeld- string · uuid
key_event_idPflichtfeld- string · Max. Zeichen: 40
counting_methodOptional- string · ONCE_PER_EVENT | ONCE_PER_SESSION
default_valueOptional- object · Pflicht im Objekt: numericValue, currencyCode
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[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."
},
"key_event_id": {
"type": "string",
"maxLength": 40,
"pattern": "^[1-9]\\d*$"
},
"counting_method": {
"type": "string",
"enum": [
"ONCE_PER_EVENT",
"ONCE_PER_SESSION"
]
},
"default_value": {
"type": "object",
"properties": {
"numericValue": {
"type": "number"
},
"currencyCode": {
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"required": [
"numericValue",
"currencyCode"
],
"additionalProperties": false
}
},
"required": [
"resource_key",
"operation_id",
"key_event_id"
],
"additionalProperties": false
}ga4_delete_key_eventSchlüsselereignis entfernenÄndern
ga4_delete_key_eventSchlüsselereignis entfernenEntfernt eine löschbare Schlüsselereignis-Konfiguration. Historische Event-Daten bleiben bestehen. Erfordert einen ausdrücklichen Löschauftrag.
Ändert bestehende Konfiguration oder den Kampagnenstatus. Ein ausdrücklicher Nutzerauftrag ist erforderlich.
Eingabeparameter
resource_keyPflichtfeld- string · Max. Zeichen: 100
operation_idPflichtfeld- string · uuid
key_event_idPflichtfeld- string · Max. Zeichen: 40
Vollständiges Eingabeschema (JSON)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"resource_key": {
"type": "string",
"maxLength": 100,
"pattern": "^properties\\/[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."
},
"key_event_id": {
"type": "string",
"maxLength": 40,
"pattern": "^[1-9]\\d*$"
}
},
"required": [
"resource_key",
"operation_id",
"key_event_id"
],
"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": "ga4_run_report",
"arguments": {
"resource_key": "properties/123456789",
"start_date": "2026-09-01",
"end_date": "2026-09-07",
"dimensions": [
"sessionDefaultChannelGroup"
],
"metrics": [
"sessions",
"keyEvents"
],
"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
- Berichte liefern dimensionHeaders, metricHeaders, rows, rowCount und propertyQuota. Metadaten listen dimensions und metrics. Schlüsselereignis-Calls liefern die jeweilige Konfiguration; Listen können nextPageToken enthalten.
- 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.
Berichte: höchstens 31 inklusive Tage, 5 Dimensionen, 10 Metriken und 10.000 Zeilen. Weitere Zeilen über offset, keine automatische Pagination. Metadaten und Performance-Berichte können 60 Sekunden zwischengespeichert sein; Echtzeit-Berichte nicht. Ein frischer Quota-Abruf kann vor Metadaten- und Berichtsabfragen erforderlich sein und verbraucht selbst Quota. Schlüsselereignisse ändern die Reporting-Konfiguration, nicht historische Event-Daten.
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:ga4:read. Schreib-Scope: mcp:ga4: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.