Skip to main content
Glama
BismaNwaz

youtube-mcp-server

by BismaNwaz

youtube-mcp-server

Ein Remote-MCP-Server, der die YouTube Data API v3 als Tools über Streamable HTTP bereitstellt, sodass er zu claude.ai als benutzerdefinierter Connector hinzufügen werden kann.

Keine Abhängigkeiten. Kein Build-Schritt. node src/server.js ist das Ganze.

Tools

Tool

Funktion

Kontingentkosten

youtube_trending

Beliebteste Videos für ein Land, optionel nach einer Kategorie gefiltert

1 Einheit

youtube_search

Stichwortsuche nach Videos, Kanälen oder Wiedergabelisten, mit angehängten Statisti ken

1 Suchaufruf + 1 Einheit

youtube_channel_videos

Die letzen Uploads eines Kanals plus dessen Abonnenten- und Aufruf-Gesamtzahlen

3 Einheiten

youtube_video_detais

Vollständige Statisti ken für bis u 50 Videos in einem Aufruf

1 Einheit

youtube_video_comments

Top-Level-Kommentare mit Like- und Antwortzahlen

1 Einheit

Transkripte sind bewust nicht entalten. captions.download erfordert OAuth und Bearbeitungsberechtigung für das Video, sodass ei API-Schüssel Untertitel nur für Videos abrufen kann, die man besitzt. Die inoffiziellen Scraping-Bibliotheken werden Berichten zufolge von Cloud-IP-Bereichen aus blockiert – genau dort läuft dieser Server.

Related MCP server: mcp-server-youtube

Kontingent

Ein Projekt erhält 10.000 Einheiten/Tag im allgemeinen Bucket, und search.list liegt in einem separaten Bucket mit einem Maximum von 100 Aufrufen pro Tag. Das hat das Tool-Design geprägt: youtube_channel_videos läuft über channels.listplaylistItems.listvideos.list statt über search.list?channelId=, sodass das Durchsuchen eines Kanals 3 allgemeine Einheiten kostet statt eine von nur hundert täglichen Suachen.

Lokal ausführen

cp .env.example .env        # add your YOUTUBE_API_KEY
export $(grep -v '^#' .env | xargs)
npm start
curl localhost:3000/health

curl -s localhost:3000/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | head -c 400

Test

npm test

Führt den vollständigen MCP-Handshake, be ide Transportarten, alle fünf Tools und die Fehlerpfade gegen eine simuierte YouTube-API aus. Kein API-Schlüssel und kein Netzwerk erforderlich.

Auf Railwway bereitstellen

  1. Pushe dieses Repo auf GitHub.

  2. Railwway → New Project → Deploy from GitHub repo → auswählen.

  3. Variables → YOUTUBE_API_KEY hinzufügen.

  4. Settings → Networking → Generate Domain.

  5. Überprüfe, ob https://<your-domain>/health "apiKeyConfigured": true zurückgibt.

Railwway legt PORT selbst fest; der Server bindet an 0.0.0.0 und liest ihn aus.

Zu claude.ai hinzufügen

Customize → Connectors → Add custom connector → https://<your-domain>/mcp

Keine OAuth-Felder notwendig – der Server ist standardmäßig ohne Authentifizierung. Um ihn abzusichern, setze MCP_AUTH_TOKEN und trage Bearer <token> unter authorization in die Request-Header des Connectors ein.

Umgebungsvariablen

Variable

Erforderlich

Standard

Hinweise

YOUTUBE_API_KEY

ja

Google Cloud Console, mit aktivierter YouTube Data API v3

PORT

nein

3000

Railway setzt diese Variable

MCP_PATH

nein

/mcp

Pfad, auf dem der MCP-Endpoint lauscht

MCP_AUTH_TOKEN

nein

Falls gesetzt, benötigt jede Anforderung Authorization: Bearer <value>

YOUTUBE_API_BASE

nein

Googles Standard-API

Nur dazu da, um die Test-Suite auf einen Stub auszurichten

Designhinweise

Zustandslos. Jeder POST ist in sich abgeschlossen – keine Mcp-Session-Id, keine Session-Map –, sodass ein Neustart oder eine zweite Replik nie "No valid session ID provided" liefert.

Die Inhaltsaushandlung entspricht dem Referenz-SDK: ein SSE-Rahmen, wenn der Client Accept: text/event-stream sendet, andernfalls ein einfacher JSON-Body.

GET und DELETE auf /mcp geben 405 zurück, was die Streamable-HTTP-Spezifikation von einem Server ohne server-initiierten Stream und ohne zu schließende Session erwartet.

Keine Validierung des Origin-Headers und kein DNS-Rebinding-Schutz. Diese Schutzmaßnahmen sind für MCP-Server gedacht, die an localhost gebunden sind; wenn sie für eine öffentliche Bereitstellung aktiviert bleiben, lehnen sie Anforderungen von Anthropic selbst ab, was eine häufige Ursache für initialize-Timeout ist.

Tool-Fehler werden als isError: true-Inhalt zurückgegeben und nicht als JSON-RPC-Fehler, sodass Claude erkennt, was schiefgelaufen ist, und sich anpassen kann, statt dass der Aufruf auf der Transportschicht abstirbt.

Ergebnisse werden auf 120k Zeichen gekürzt, unterhalb des ~150k-Zeichenlimits für Tool-Ergebnisse von claude.ai.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/BismaNwaz/-youtube-mcp-server'

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