Skip to main content
Glama
adilsonicjunior

youtube-analytics-mcp

youtube-analytics-mcp

Ein lokaler, schreibgeschützter MCP-Server, der Claude Zugriff auf die privaten Analysedaten deines YouTube-Kanals gibt – Aufrufe, Wiedergabezeit, Verweildauer, Abonnenten, Verkehrsquellen, Zielgruppendemografie, Einnahmen sowie Thumbnail-Impressionen/CTR. Nicht nur das, was jeder öffentliche API-Schlüssel bereits sehen kann.

Nichts in diesem Server kann etwas auf deinem Kanal bearbeiten, hochladen, veröffentlichen oder löschen. Siehe SECURITY.md für die vollständige Sicherheitsüberprüfung.

Requirements

  • Node.js 22+

  • Ein Google-Konto, das den YouTube-Kanal besitzt (oder verwaltet), für den du Daten möchtest

  • macOS, Linux oder WSL (der npm run auth-Browserablauf verwendet den Befehl open)

Related MCP server: youtube-mcp-server

Setup checklist

Befolge diese in der Reihenfolge. Schritte 1–4 finden in der Google Cloud Console statt; Schritte 5–8 auf deinem Rechner.

1. Create a Google Cloud project

Gehe zu console.cloud.google.com und erstelle ein neues Projekt (oder wähle ein vorhandenes, mit dem du dich wohlfühlst).

2. Enable three APIs

Gehe in deinem Projekt zu APIs & Services → Bibliothek und aktiviere jede dieser APIs:

  • YouTube Data API v3

  • YouTube Analytics API

  • YouTube Reporting API (nur für Thumbnail-Impressionen/CTR benötigt – siehe unten)

Gehe zu APIs & Services → OAuth-Zustimmungsbildschirm.

  • Benutzertyp: Extern (es sei denn, du hast ein Google Workspace-Konto, in diesem Fall funktioniert auch Intern)

  • Fülle die erforderlichen Felder für App-Name / Support-E-Mail aus

  • Füge die Analytics-Bereiche hinzu, wenn du dazu aufgefordert wirst (oder überspringe sie – die App fordert sie direkt an, dieser Bildschirm muss nur existieren)

  • Veröffentliche die App als Produktion. Das ist der Schritt, den Leute überspringen und dann gegen eine Wand laufen: Apps im Modus „Testen“ erlauben nur die Anmeldung von Konten, die du explizit als Testbenutzer hinzugefügt hast, und ihre Aktualisierungstokens laufen nach 7 Tagen ab, was bedeutet, dass du Schritt 6 jede Woche wiederholen müsstest. Die Veröffentlichung als Produktion (ohne Einreichung zur Google-Verifizierungsprüfung) ist für ein persönliches Tool in Ordnung – Google zeigt beim Anmelden eine Warnung „Nicht verifizierte App“ an, und du klickst auf Erweitert → Zu [Name deiner App] wechseln (unsicher), um fortzufahren. Das ist erwartet und sicher für deine eigene App.

4. Create OAuth credentials

Gehe zu APIs & Services → Anmeldedaten → Anmeldedaten erstellen → OAuth-Client-ID.

  • Anwendungstyp: Desktop-App

  • Gib ihr einen beliebigen Namen

  • Kopiere die generierte Client-ID und das Client-Geheimnis – du benötigst sie in Schritt 5

Hier muss keine Weiterleitungs-URI registriert werden; dieser Server bindet zur Authentifizierung einen temporären lokalen Port und Google akzeptiert für Desktop-Clients jede Loopback-Adresse.

5. Install and build

git clone <this-repo-url>
cd youtube-analytics-mcp
npm install
npm run build

6. Configure your credentials

cp .env.example .env

Bearbeite .env und füge die Client-ID / das Client-Geheimnis aus Schritt 4 ein:

GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret

.env ist gitignored – es wird niemals committet. Optionale Einstellungen:

  • GOOGLE_API_KEY – für kein aktuelles Tool erforderlich, lasse es leer, es sei denn, du erweiterst den Server selbst.

  • REVENUE_CURRENCY – standardmäßig USD. Setze es auf deine AdSense-Auszahlungswährung (z. B. BRL), wenn du die Einnahmen lieber in dieser Währung sehen möchtest; Google rechnet serverseitig um.

7. Authenticate

npm run auth

Dies öffnet deinen Browser für die Google-Anmeldung und speichert ein Aktualisierungstoken unter ~/.youtube-analytics-mcp/token.json (Berechtigungen nur für deinen Benutzer, niemals im Repository). Du musst dies nur einmal tun – der Server aktualisiert das Zugriffstoken danach automatisch.

Überprüfe, ob es funktioniert hat:

npm run auth:status

Du solltest Authenticated und den Namen deines Kanals sehen.

8. Point Claude Code at it

Füge es zu deiner MCP-Konfiguration hinzu, unter Verwendung des absoluten Pfads zu dist/index.js dieses Projekts:

{
  "mcpServers": {
    "youtube-analytics-channel": {
      "command": "node",
      "args": ["/absolute/path/to/youtube-analytics-mcp/dist/index.js"]
    }
  }
}

Starte Claude Code neu (oder lade die MCP-Server neu) und du solltest die unten verfügbaren Tools sehen.

Available tools

Tool

Was es tut

health_check

Bestätigt, dass der Server läuft.

get_channel_overview

Aufrufe, Wiedergabezeit, Verweildauer, Abonnenten, Einnahmen für einen Datumsbereich oder eine Voreinstellung (last_7_days/last_28_days/last_90_days/last_365_days).

list_videos

Hochgeladene Videos mit Metadaten, filterbar nach Veröffentlichungsdatumsbereich und Langform vs. Shorts.

get_video_analytics

Detaillierte Analysen für ein einzelnes Video.

get_top_videos

Videos nach beliebiger Metrik sortieren (Aufrufe, Wiedergabezeit, Verweildauer, Abonnenten, Einnahmen, Impressionen, CTR).

get_daily_performance

Tagesweise Zeitreihe.

get_traffic_sources

Aufrufe/Wiedergabezeit nach Verkehrsquelle (Suche, Vorschläge, Shorts-Feed, extern usw.), kanalweit oder pro Video.

get_audience_breakdown

Zielgruppe nach Land, Altersgruppe oder Geschlecht.

get_revenue_analytics

Einnahmen gesamt oder aufgeschlüsselt nach Video/Tag. Gibt available: false zurück, anstatt Zahlen zu erfinden, wenn Einnahmedaten nicht zugänglich sind.

compare_periods

Zwei Datumsbereiche verglichen, mit absoluter + prozentualer Änderung.

get_impressions_and_ctr

Thumbnail-Impressionen und Klickrate. Async – siehe unten.

run_custom_report

Notausstieg für Ad-hoc-Abfragen, eingeschränkt auf eine Whitelist von Metriken/Dimensionen.

A note on impressions and CTR

YouTube stellt Thumbnail-Impressionen oder CTR nicht über die interaktive Analytics-API (reports.query) unter irgendeiner Dimensions-/Filterkombination bereit – dies wurde direkt gegen die API verifiziert, nicht aus Dokumentationen übernommen. Diese Daten existieren nur in YouTubes Bulk-„Reach-Bericht“, einer separaten asynchronen Job-API:

  1. Der erste Aufruf von get_impressions_and_ctr registriert einen wiederkehrenden Berichtsauftrag bei Google.

  2. Google benötigt 24–48 Stunden, um den ersten Bericht zu erstellen, und erstellt danach ungefähr täglich neue.

  3. Jeder Aufruf von get_impressions_and_ctr (oder get_top_videos sortiert nach Impressionen/CTR) synchronisiert neu verfügbare Berichte in einen lokalen Cache unter ~/.youtube-analytics-mcp/reach-cache.json und antwortet dann aus diesem Cache.

Bis der erste Bericht eintrifft, geben diese Tools impressions: 0, impressionsCtr: null und einen note zurück, der erklärt, warum. Das ist bei der ersten Verwendung zu erwarten, kein Fehler.

Troubleshooting

  • „Zugriff blockiert“ während npm run auth: Dein OAuth-Zustimmungsbildschirm befindet sich noch im Testmodus. Gehe zurück zu Schritt 3 und füge entweder dein Konto als Testbenutzer hinzu oder veröffentliche es als Produktion.

  • NotAuthenticatedError beim Serverstart: Führe npm run auth aus.

  • Einnahmen immer 0: Entweder ist der Kanal nicht monetarisiert, oder die Zahlen sind für diesen Zeitraum tatsächlich null. Das Tool erfindet niemals Einnahmen – überprüfe das Feld available von get_revenue_analytics, um einen echten Berechtigungs-/Zugriffsfehler von echten Nullen zu unterscheiden.

  • get_impressions_and_ctr / nach Impressionen sortierte get_top_videos geben nichts zurück: Überprüfe dataCoverage in der Antwort. Wenn earliestDate null ist, hat der Bulk-Berichtsauftrag seinen ersten Bericht noch nicht erstellt (kann bis zu 48 Stunden nach dem allerersten Aufruf dauern).

Testing

npm test

Führt Unit-Tests (Node's eingebauter Test-Runner) aus, die Datums-/Zeitraumvalidierung, ISO-8601-Dauerparsing, CSV-Parsing, Analytics-Berichtszeilen-Zuordnung und Zeitraumvergleichsmathematik (einschließlich des Null-Division-Randfalls) abdecken. Dies sind nur reine Funktionstests – sie mocken keine Live-Google-API-Aufrufe oder OAuth-Token-Aktualisierung; diese Pfade wurden während der Entwicklung manuell gegen einen echten Kanal validiert.

Security

Siehe SECURITY.md für das vollständige Bedrohungsmodell und die OWASP-Top-10-Überprüfung. Kurzfassung: Alles ist schreibgeschützt, alle Geheimnisse bleiben auf deinem Rechner außerhalb des Repos, und jeder benutzerbereitgestellte Wert, der einen Google-API-Aufruf erreicht, wird zuerst validiert.

License

MIT – siehe LICENSE.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    This read-only MCP Server allows you to connect to YouTube Analytics data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcp
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local stdio MCP server that gives Claude (or any MCP client) full programmatic control over a single YouTube channel, including video upload, channel management, comments, analytics, and more.
    46
    33
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

  • MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence

  • MCP server for Google Veo AI video generation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adilsonicjunior/youtube-analytics-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server