Skip to content

MCP (Claude) ​

Über MCP-Server kann Claude (Claude Code / Desktop) direkt auf unsere Datenquellen zugreifen. Das ist das Werkzeug für Ad-hoc-Analysen, Audits und Kreuz-Auswertungen („Ads-Kosten × echte Buchungen") — Fragen stellen statt Dashboards klicken.

Die drei Server ​

ServerZugriff aufSchreibzugriff?
google-ads-mcpGoogle-Ads-Konten via GAQLNein — rein lesend
analytics-mcpGA4-Properties (Reports, Funnel, Realtime)Nein
kickmobimed-mcpPraxissystem (Termine, Kontakte, wochenweise)Nein

Weil alles read-only ist, kann eine MCP-Analyse nie versehentlich etwas am Konto ändern. Änderungen laufen über Web-UI oder Editor.

  • Tools: customers_list_accessible_customers, search_search (GAQL-Abfragen), metadata_get_resource_metadata (verfügbare Felder je Resource nachschlagen)
  • Setup: läuft via pipx aus dem offiziellen Repo github.com/googleads/google-ads-mcp; registriert im User-Scope (~/.claude.json); Arbeitsordner mit Credentials: /Users/niels/Development/google-ads-mcp/
  • Wichtige Umgebungswerte: GOOGLE_ADS_LOGIN_CUSTOMER_ID=6641786149 (MCC als Login-Konto), Abfragen für Spanholtz mit customer_id=5062677310
  • Auth: ADC (Application Default Credentials) — der Server ignoriert Service-Account-Keys. Einrichten (interaktiv, mit dem Google-Konto, das MCC-Zugriff hat):
bash
gcloud auth application-default login \
  --client-id-file=/Users/niels/Development/google-ads-mcp/credentials2.json \
  --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.readonly

(Der analytics.readonly-Scope in derselben Anmeldung versorgt auch den analytics-mcp.)

Wichtig: Alle drei Scopes gehören bei jeder Neuanmeldung mit rein, auch wenn nur einer der beiden Server gerade Probleme macht — google-ads-mcp und analytics-mcp teilen sich dieselbe application_default_credentials.json. Meldest du dich z. B. nur mit analytics.readonly neu an, verliert google-ads-mcp sofort seinen Zugriff (ACCESS_TOKEN_SCOPE_INSUFFICIENT auf googleads.googleapis.com) und umgekehrt.

Erstmalige Einrichtung / neue:r Kolleg:in: Bevor der Login-Befehl oben überhaupt durchläuft, müssen zwei Dinge einmalig im GCP-Projekt (kicktemp-ads-dashboard, Projektnummer 845561902365) passen — sonst kommt im Browser „Diese App ist blockiert":

  1. Google Cloud Console → Google Auth Platform → Zielgruppe → Nutzertyp auf „Intern"
  2. Google Cloud Console → Google Auth Platform → Datenzugriff → „Bereiche hinzufügen oder entfernen" → analytics.readonly und adwords müssen dort als vertrauliche Bereiche gelistet sein

Beides betrifft das ganze Projekt, nicht den einzelnen OAuth-Client — einmal gesetzt, gilt es für jede:n mit @kicktemp.com-Konto. Als Client-ID-Datei kann jeder bestehende Desktop-Client im Projekt verwendet werden (credentials2.json oben, oder z. B. Analytics MCP OAuth Client unter /Users/niels/Development/google-analytics-mcp/).

Zusätzlich braucht eine neue Person, damit die MCP-Tools wirklich Daten liefern (nicht nur Login funktioniert):

  • GCP-Projekt-Zugriff: IAM → Rolle „Service Usage Consumer" auf kicktemp-ads-dashboard
  • GA4-Property-Zugriff: separat in analytics.google.com → Verwaltung → Zugriffsverwaltung (nicht über GCP-IAM steuerbar)
  • Google-Ads-Zugriff: separat im Ads-Konto/MCC freigeben
  • kickmobimed: eigener API-Token im Joomla-Profil (Reiter „API-Token") — niemals einen fremden Token weiterreichen

Fertige Abfragen: GAQL-Rezepte. Vorbereitete Sammlung außerdem in /Users/niels/Development/google-ads-mcp/queries-kickmobimed.md.

analytics-mcp ​

  • Tools: get_account_summaries, get_property_details, run_report, run_realtime_report, run_funnel_report, run_conversions_report, list_google_ads_links, get_custom_dimensions_and_metrics, list_property_annotations
  • Nutzt dieselbe ADC-Datei wie google-ads-mcp — deshalb müssen die Scopes gemeinsam angemeldet werden (siehe oben).
  • Anwendungsbeispiele: GA4-Reports

kickmobimed-mcp ​

  • Tools: 9 get_*_weekly-Auswertungen (Termine/Kontakte je Kalenderwoche, gruppiert nach Standort, Arzt, Leistung, Kampagne, …)
  • Liefert ISO-Kalenderwochen; viele Tools haben den Parameter type = booked | scheduled — Unterschied unbedingt verstehen
  • Details und Interpretation: kickmobimed-MCP

Troubleshooting ​

SymptomUrsacheFix
ACCESS_TOKEN_SCOPE_INSUFFICIENT (analytics-mcp oder google-ads-mcp)ADC ohne den jeweils nötigen Scope angemeldet — meist weil bei der letzten Neuanmeldung nicht alle drei Scopes mit angegeben wurdenADC-Login mit allen drei Scopes wiederholen (Befehl oben), Claude-Code-Session neu starten
„Diese App ist blockiert" im Browser beim ADC-LoginProjekt hat „Zielgruppe" nicht auf „Intern" gesetzt, oder der angefragte Scope fehlt unter „Datenzugriff"Google Auth Platform → Zielgruppe auf „Intern", → Datenzugriff → Scope hinzufügen (siehe oben, einmalig fürs ganze Projekt)
NOT_ADS_USERADC mit falschem Google-Konto (z. B. Gmail statt Agentur-Konto)ADC-Login mit dem richtigen Konto wiederholen (~/.config/gcloud/application_default_credentials.json wird ersetzt)
User doesn't have permission to access customer … login-customer-idKonto hängt nicht unterm MCC bzw. falsches Login-Konto gesetztKonto im MCC verknüpfen oder GOOGLE_ADS_LOGIN_CUSTOMER_ID prüfen
Neues MCP-Tool „nicht gefunden"MCP-Änderungen wirken erst nach NeustartClaude-Code-Session neu starten
Kosten wirken 1-millionenfach zu hochMicros÷ 1.000.000
change_event liefert alte Änderung nichtAPI-Limit 30 TageÄnderungshistorie in der Web-UI

Wofür MCP das beste Werkzeug ist ​

  • Der Monats-Audit — Playbook mit fertigen Abfragen
  • Kreuz-Analysen: „Welche Kampagne liefert echte Buchungen pro Euro?" (Ads-Kosten × Conversion-Mix × Praxissystem-booked)
  • Anomalie-Diagnose: „Warum sind die Buchungen in KW X eingebrochen?" — Claude kann alle drei Quellen in einer Session befragen und den Entscheidungsbaum durchgehen