Skip to main content
Glama
HasData

YouTube MCP Server

by HasData

YouTube MCP Server

Ein gehosteter Model Context Protocol (MCP)-Server, der Claude, Cursor, Windsurf und jedem anderen MCP-Client vier schreibgeschützte YouTube-Tools bietet. Durchsuchen Sie YouTube, lesen Sie Video- und Kanaldaten und rufen Sie Transkripte ab – ohne Google-Cloud-Projekt und ohne YouTube-Data-API-Schlüssel.

https://mcp.hasdata.com/api/mcp?apis=youtube

tool contract MCP Tools License

Inhalt

Related MCP server: YouTube MCP Server

Was Sie brauchen

Einen MCP-Client, der streamable HTTP mit benutzerdefinierten Headern unterstützt. Einen HasData-API-Schlüssel aus dem Dashboard, kostenlos zu erstellen. Sonst nichts. Dies ist ein Remote-Server. Es gibt kein Paket zu installieren, keinen Container zu starten und kein Google-Konto im Ablauf.

Schnellstart

Die Server-URL ist für jeden Client gleich. Getestet mit den folgenden Konfigurationen mit Claude Code, Claude Desktop, Cursor, Windsurf und Cline.

Feld

Wert

URL

https://mcp.hasdata.com/api/mcp?apis=youtube

Transport

HTTP, streamable

Auth-Header

x-api-key: your_key_here

Clients mit OAuth-Unterstützung können dieselbe URL als Connector hinzufügen und sich anmelden, ohne einen Schlüssel in eine Konfigurationsdatei einzutragen.

claude mcp add --transport http youtube "https://mcp.hasdata.com/api/mcp?apis=youtube" \
  --header "x-api-key: your_key_here"

Einstellungen, dann Connectors, dann Benutzerdefinierten Connector hinzufügen, dann https://mcp.hasdata.com/api/mcp?apis=youtube einfügen und anmelden.

Für den Weg über die Konfigurationsdatei fügen Sie dies zu claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "youtube": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "headers": { "x-api-key": "your_key_here" }
    }
  }
}

~/.cursor/mcp.json für jedes Projekt oder .cursor/mcp.json für ein einzelnes:

{
  "mcpServers": {
    "youtube": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "headers": { "x-api-key": "your_key_here" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json. Windsurf nennt das Feld serverUrl, nicht url:

{
  "mcpServers": {
    "youtube": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "headers": { "x-api-key": "your_key_here" }
    }
  }
}
{
  "mcpServers": {
    "youtube": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "type": "streamableHttp",
      "headers": { "x-api-key": "your_key_here" },
      "disabled": false
    }
  }
}

.vscode/mcp.json im Workspace:

{
  "servers": {
    "youtube": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "headers": { "x-api-key": "your_key_here" }
    }
  }
}

~/.codex/config.toml:

[mcp_servers.youtube]
url = "https://mcp.hasdata.com/api/mcp?apis=youtube"

[mcp_servers.youtube.headers]
"x-api-key" = "your_key_here"

~/.gemini/settings.json:

{
  "mcpServers": {
    "youtube": {
      "httpUrl": "https://mcp.hasdata.com/api/mcp?apis=youtube",
      "headers": { "x-api-key": "your_key_here" }
    }
  }
}

Beispiel-Prompts

Prompts, kein Code. Fügen Sie einen ein und der Agent wählt das Tool selbst aus. Jeder ist mit den Aufrufen annotiert, die er benötigt, weil bei MCP das Modell entscheidet, wie viele Aufrufe es macht, und jeder erfolgreiche Aufruf 10 Credits kostet.

Finde die zehn meistgesehenen Videos über das Model Context Protocol aus dem letzten Monat, rufe dann das Transkript des obersten ab und nenne mir die drei Behauptungen, die es über Tool-Aufrufe aufstellt.

Zwei Aufrufe, 20 Credits.

Nimm den Kanal @GoogleDevelopers. Liste die Tabs auf, die er veröffentlicht, fasse dann die letzten fünf Uploads zusammen und sag mir, welche Themen sich wiederholen.

Zwei Aufrufe, 20 Credits. Das Lesen eines Tabs, den Sie noch nicht gesehen haben, erfordert einen zweiten Aufruf, weil die Tab-Liste in der ersten Antwort ankommt.

Nimm diese Video-ID, dQw4w9WgXcQ. Hole ihre Statistiken und prüfe dann, welche der verwandten Videos vom selben Kanal stammen.

Ein Aufruf, 10 Credits. Verwandte Videos kommen in derselben Antwort mit.

Suche auf YouTube nach „web scraping tutorial", sortiert nach Upload-Datum, nur Videos unter vier Minuten, und gib mir die Kapiteltitel jedes Ergebnisses, das welche hat.

Ein Aufruf, 10 Credits.

Rufe das deutsche Transkript dieses Videos ab, falls es eines gibt, und sag mir, in welchen Sprachen es verfügbar ist.

Ein Aufruf, 10 Credits.

Die Suche akzeptiert YouTubes eigene Filter-Tokens, und ein Agent grenzt nach Dauer, Upload-Datum und Inhaltstyp ein, ohne nachzubearbeiten. Transkripte kommen mit der Liste der verfügbaren Sprachspuren, sodass der Agent eine auswählen kann, ohne zu raten.

Paginierung kostet jeweils einen Aufruf. Ein Recherche-Prompt, der sucht, zweimal paginiert und dann drei Transkripte abruft, sind sechs Aufrufe und 60 Credits. Die Testversion reicht bei engen Fragen weiter als bei offenen Crawls.

Tools

Vier Tools, alle schreibgeschützt. Die Beispiele unten sind aus echten Aufrufen gekürzt, und die Zahlen darin ändern sich, wenn YouTube aktualisiert. Lesen Sie sie als Formen. Jeder Tool-Name verlinkt auf seine Endpunkt-Referenz, die die vollständige Feldliste enthält.

Die Beispiele sind die Nutzlast, nicht die gesamte Antwort. Ein tools/call-Ergebnis trägt einen Textblock, und dieser Text ist selbst JSON, das url, status, text und json enthält, mit den gescrapten Daten unter json. Aus einer rohen JSON-RPC-Antwort ist der Pfad result.content[0].text, geparst, dann .json. Ein Chat-Client entpackt das für Sie, und Code, der direkt mit dem Endpunkt spricht, tut das nicht.

YouTube-Suchergebnisse abrufen

hasdata_youtube_search_getYoutubeSearchResults

Durchsucht YouTube und gibt die gesamte Ergebnisseite zurück, aufgeteilt nach Ergebnistyp.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Freitext-Abfrage, genau wie ein Nutzer sie tippen würde

sortBy

string

relevance standardmäßig, plus date, views, rating und popularity

date

string

Upload-Zeitfenster relativ zu jetzt

length

string

Dauer-Bucket, zum Beispiel under4

videoType

string

Auf einen Inhaltstyp einschränken

filters__

array

Feature-Flags, kombinierbar

sp

string

Rohes YouTube-sp-Token, aus einer Such-URL kopiert. Überschreibt sortBy, date, videoType, length und filters__ ohne Warnung. Lassen Sie diese also leer, wenn Sie ein Token übergeben

paginationToken

string

Das pagination.nextPageToken aus der vorherigen Antwort

gl / hl / deviceType

string

Zweibuchstabige Länder- und Sprachcodes sowie Gerät

Eine Ergebnisseite ist aufgeteilt in videoResults, shortsResults, inlineShortsResults, playlistResults, channelResults und shelves, mit bezahlten Platzierungen in adsResults und sponsoredResults. Welche Blöcke erscheinen, hängt von der Abfrage ab, und ein Block ohne Meldung fehlt, statt leer zu sein. Testen Sie auf den Schlüssel, bevor Sie iterieren. searchInformation trägt die Gesamtzahl, und pagination.nextPageToken ist das, was Sie als paginationToken zurückfüttern. Anzeigen mischen sich nie in die organischen Arrays, obwohl es zwei davon zu überspringen gibt.

{
  "positionOnPage": 1,
  "videoId": "GuTcle5edjk",
  "title": "you need to learn MCP RIGHT NOW!! (Model Context Protocol)",
  "viewsOriginal": "1.6M views",
  "views": 1653824,
  "length": "38:40",
  "publishedDate": "11 months ago",
  "extensions": ["4K"],
  "chapters": [
    { "title": "Intro", "time": "0:00" },
    { "title": "Problem: LLMs Suck at Accessing Code", "time": "0:40" }
  ],
  "channel": { "name": "NetworkChuck", "verified": true }
}

Zwei Dinge dort verdienen eine Erwähnung. views ist eine geparste Ganzzahl neben dem Anzeigestring 1.6M views und braucht keinen Suffix-Parser. Und chapters kommen innerhalb der Suchergebnisse zurück, nicht nur auf dem Video selbst, obwohl nur einige Videos sie tragen.

Die Such-Endpunkt-Referenz listet jedes sp- und filters__-Token auf, das der Endpunkt akzeptiert.

YouTube-Videodaten abrufen

hasdata_youtube_video_getYoutubeVideo

Ein Video per ID.

Parameter

Typ

Erforderlich

Hinweise

v

string

ja

Die 11-stellige Video-ID aus v=

gl / hl / deviceType

string

Zweibuchstabige Länder- und Sprachcodes sowie Gerät

Gibt title, thumbnail, channel, publishedDate, lengthSeconds, category, isFamilySafe und isUnlisted zurück, plus die Arrays relatedVideos, endScreenVideos, keywords, captions, music und socialLinks. description ist ein Objekt, das den vollständigen Text in content und ein links-Array enthält, in dem jeder Link und Hashtag startIndex, length, text und url trägt. Das Feld text enthält den Link, wie der Autor ihn geschrieben hat, und url enthält YouTubes Redirect-Wrapper, was wichtig ist, wenn Sie Sponsor- oder Affiliate-Ziele aus Beschreibungen ziehen.

Lesen Sie das geparste Feld pro Tool namentlich, bevor Sie das Beispiel unten kopieren. Such- und Kanalergebnisse setzen die geparste Zahl in views und den Anzeigestring in viewsOriginal. Diese Antwort kehrt es um, behält den String in views und die Zahl in extractedViews, und dieselbe Umkehrung gilt für likes und subscribers. Wenn Sie es falsch machen, vergleicht item.views > 100000 hier einen String, ohne jemals zu werfen.

{
  "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
  "views": "1,806,075,152 views",
  "extractedViews": 1806075152,
  "likes": "19M",
  "extractedLikes": 19344370,
  "publishedDate": "Oct 24, 2009",
  "lengthSeconds": 214,
  "category": "Music",
  "channel": { "name": "Rick Astley", "subscribers": "4.53M subscribers", "extractedSubscribers": 4530000 }
}

YouTube-Kanaldaten abrufen

hasdata_youtube_channel_getYoutubeChannel

Ein Kanal per ID oder Handle, ein Tab nach dem anderen.

Parameter

Typ

Erforderlich

Hinweise

channelId

string

ja

Kanonische UC…-ID oder ein @handle

tab

string

Standardmäßig featured, zusätzlich videos, shorts, streams, playlists, posts, community, podcasts, releases, about und store. Nimm einen Wert aus dieser Liste, nicht aus availableTabs in der Antwort

paginationToken

string

Token aus der vorherigen Antwort

gl / hl / deviceType

string

Zweibuchstabige Länder- und Sprachcodes sowie Gerät

Gibt auf dem Standard-Tab channelInfo, featuredVideo und sections zurück. Andere Tabs geben ihre eigene Struktur zurück. channelInfo enthält den Handle, Avatar, Banner, Beschreibung, Kanalschlüsselwörter und die rssUrl des Kanals – genug, um einen Kanal weiterzuverfolgen, ohne ihn abzufragen.

Das availableTabs-Array im folgenden Beispiel enthält Anzeigelabels, und diese sind nicht die Werte, die tab akzeptiert. Home, Live, Courses und Search lassen sich auf keinen Parameterwert abbilden, und der Rest muss kleingeschrieben werden. Ein Agent, der die Liste liest und jeden Eintrag durchgeht, scheitert am ersten.

{
  "channelInfo": {
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "name": "Google for Developers",
    "handle": "@GoogleDevelopers",
    "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "isFamilySafe": true,
    "availableTabs": ["Home", "Videos", "Shorts", "Live", "Courses", "Playlists", "Posts", "Search"]
  }
}

YouTube-Videotranskript abrufen

hasdata_youtube_transcript_getYoutubeTranscript

Das zeitgestempelte Transkript eines Videos.

Parameter

Typ

Erforderlich

Hinweise

v

string

ja

Die 11-stellige Video-ID

languageCode

string

BCP-47-Code des gewünschten Tracks

type

string

Auf asr setzen für den automatisch erzeugten Track

Prüfe selected in der Antwort, bevor du der Sprache vertraust. Die Anfrage nach einem languageCode, den das Video nicht enthält, schlägt weder fehl noch liefert sie eine leere Antwort – sie fällt stillschweigend auf den Standard-Track zurück. Jeder Eintrag in der Liste enthält languageName und languageCode, und eine Sprache kann doppelt vorkommen, einmal von Menschen erstellt und einmal mit type auf asr gesetzt.

{
  "transcript": [
    { "startMs": 320, "endMs": 18800, "snippet": "[Music]", "startTimeText": "0:00" },
    { "startMs": 18800, "endMs": 21800, "snippet": "We're no strangers to", "startTimeText": "0:18" }
  ],
  "availableTranscripts": [
    { "languageName": "English", "languageCode": "en" },
    { "languageName": "English", "languageCode": "en", "type": "asr", "selected": true },
    { "languageName": "German (Germany)", "languageCode": "de-DE" },
    { "languageName": "Japanese", "languageCode": "ja" }
  ]
}

Fehler und Fehlerpfade

Dein Client sieht bei einem Tool-Aufruf fast nie einen HTTP-Fehlercode. Die MCP-Ebene antwortet mit 200 und legt den Fehler in das Ergebnis, mit isError auf true und dem Grund als Text. Der Agent liest eine Nachricht, wo du eine Statuszeile erwarten würdest.

Ein falscher Schlüssel erscheint als Tool-Ausgabe, nicht als fehlgeschlagene Verbindung. tools/list akzeptiert jeden nicht-leeren Schlüssel und gibt alle vier Tools zurück, sodass der Client seinen Handshake abschließt und grün anzeigt. Der erste Tool-Aufruf kommt dann mit isError: true und dem Text HasData API error: 401 Unauthorized zurück. Achte auf diese Zeichenkette, denn nichts im Ablauf meldet das Problem früher.

Ein fehlender Schlüssel ist der einzige echte HTTP-Fehler. Die Autorisierung läuft vor jedem Tool, und die Verbindung selbst schlägt mit 401 fehl. CORS-Header sind vorhanden, und ein Browser-Client liest den Status und keinen undurchsichtigen Netzwerkfehler.

Ein Argument, das das Schema eines Tools verletzt, wird abgelehnt, bevor daraus ein Scrape wird. Der Server antwortet mit isError: true und dem Text MCP error -32602: Input validation error und nennt das fehlerhafte Feld. Es wird nichts abgerufen und nichts berechnet. Die Nachricht nennt das Feld, aber nicht die akzeptierten Werte, daher sind die obigen Parametertabellen die Referenz.

Ein Aufruf, der erfolgreich ist und nichts findet, ist der Fall, der Leute stolpern lässt. Er kommt als normales Ergebnis an, mit requestMetadata.status auf ok und der Datenschlüssel fehlt einfach. Nichts im Textkörper sagt, dass das Ergebnis leer war. Teste auf das Feld, das du brauchst, nicht auf einen Fehler.

Eine Kennung, die die Plattform ablehnt, gibt 400 zurück, mit requestMetadata.status auf error. Ein Kanal-Handle, das nicht existiert, ist der übliche Weg, das zu sehen.

Ergebnisse, die Daten enthalten, tragen auch eine requestMetadata.id, die es wert ist, im Support zitiert zu werden.

Preise, kostenloser Tarif und Limits

Jedes YouTube-Tool kostet 10 Credits pro erfolgreichem Aufruf. Die Antwortgröße ändert den Preis nicht. Eine volle Seite mit Suchergebnissen kostet dasselbe wie eine Seite mit einem Video.

Die kostenlose Testversion umfasst 1.000 Credits über 30 Tage ohne Karte, also 100 YouTube-Aufrufe. Danach erhält ein aktives Konto weiterhin täglich 100 Credits aufgestockt, sobald sein Guthaben unter 100 fällt, sodass ein Agent mit geringem Volumen unbegrenzt im kostenlosen Tarif läuft.

Bezahlte Pläne beginnen bei 49 $ pro Monat für 200.000 Credits, also 20.000 Aufrufe. Der Stückpreis sinkt mit dem Volumen, von 2,45 $ pro 1.000 Aufrufen im Einstiegsplan auf 0,99 $ bei Business, 0,83 $ bei Growth und 0,75 $ bei den größten High-Volume-Plänen.

Dein Plan bestimmt auch die Nebenläufigkeit. Die kostenlose Testversion erlaubt 1 Anfrage gleichzeitig, Startup 15, Business 30, Growth 50, und die High-Volume-Pläne reichen von 200 bis 1.500. Behandle den Überlauf-Fall defensiv in allem Unbeaufsichtigten, denn ein Agent, der sich aufteilt, erreicht die Obergrenze vor dir.

Eine Anfrage, die mit einem anderen Status als 200 zurückkommt, wird nicht berechnet. Ein erfolgreicher Aufruf, der nichts findet, ist trotzdem ein Aufruf.

Tool-Auswahl

Der Abfrageparameter apis bestimmt, welche Tools dein Agent sieht. Weniger Tools bedeutet weniger Kontext für Tool-Definitionen und weniger Chancen, dass das Modell zum falschen greift.

?apis=youtube                    the four tools in this repo
?apis=youtube,google_serp        add Google search
?apis=youtube,tiktok,instagram   a social research bundle

Der Parameter akzeptiert Providernamen wie youtube und einzelne API-Namen wie google_maps_search. Falsch geschriebene Namen werden ignoriert. Wenn jeder Name falsch ist, schlägt die Anfrage mit 400 fehl, und der Textkörper listet sowohl das, was nicht erkannt wurde, als auch jeden gültigen Wert auf. Lasse den Parameter weg, und derselbe Endpunkt legt alle 57 HasData-Tools offen.

Wie es sich vergleicht

Gegenüber der offiziellen YouTube Data API v3:

YouTube Data API v3

Dieser Server

Einrichtung

Google-Cloud-Projekt und ein API-Schlüssel

Ein Schlüssel und eine URL

Suchkontingent

„Standard-Quotenzuteilung von 100 search.list-Aufrufen“ pro Tag, laut Googles Erste-Schritte-Anleitung

Die Credits deines Plans, 10 pro Aufruf

Transkripte von Videos, die dir nicht gehören

captions.download „erfordert, dass der Benutzer die Berechtigung hat, das Video zu bearbeiten“, laut Googles Referenz

Ja, mit der Sprachliste

Kapitel in Suchergebnissen

Nein

Ja

Aufrufe und Likes in Suchergebnissen

Fehlen, und ein zweiter videos.list-Aufruf gibt sie als Zeichenketten zurück

Anzeigezeichenkette und Ganzzahl in derselben Antwort

Kosten

Kostenlos innerhalb des täglichen Kontingents

Bezahlt nach der Testversion, 10 Credits pro Aufruf

Schreibvorgänge und private Daten

Uploads, Playlists, Kommentare und eigene Analysen über OAuth

Schreibgeschützt, nur öffentliche Daten

Die letzten beiden Zeilen sind wichtig. Wenn das tägliche Kontingent dein Volumen abdeckt und du den Kanal besitzt, den du abfragst, ist die offizielle API die günstigere Antwort, und du solltest sie nehmen.

Die meisten anderen YouTube-MCP-Server machen nur Transkripte. Dieser durchsucht auch, liest Videos mit ihren Engagement-Zahlen und geht Kanal-Tabs durch, sodass ein Agent eine ganze Recherche-Runde ohne zweiten Server durchführt.

Was dieser Server nicht tut. Keine Kommentare, keine Kanalverwaltung, keine Uploads, keine Analysen, keine privaten Daten. Er liest, was ein abgemeldeter Besucher sehen kann.

FAQ

Gibt es einen offiziellen YouTube-MCP-Server?

Google veröffentlicht keinen. YouTube hat keinen First-Party-MCP-Server. Jede Option wird von jemand anderem gebaut, entweder um die YouTube Data API v3 oder um die öffentlichen Seiten herum. Dieser wird von HasData gepflegt und liest öffentliche Seiten, weshalb er keine Google-Anmeldedaten benötigt.

Was ist ein YouTube-MCP-Server?

Ein Server, der YouTube-Daten als Tools bereitstellt, die ein KI-Client aufrufen kann. Der Client sendet einen Tool-Aufruf über das Model Context Protocol, der Server ruft die Daten ab und gibt strukturiertes JSON zurück, und das Modell arbeitet mit dem Ergebnis und sieht nie eine HTML-Seite. Dieser stellt vier Tools bereit und läuft remote. Der Client verbindet sich mit einer URL und startet keinen lokalen Prozess.

Brauche ich einen YouTube-API-Schlüssel oder ein Google-Cloud-Projekt?

Nein. Die einzige Anmeldedaten sind dein HasData-Schlüssel. Es gibt kein Google-Cloud-Projekt zu erstellen, kein Kontingentformular auszufüllen und keinen OAuth-Zustimmungsbildschirm, weil die Tools öffentliche YouTube-Seiten lesen und nicht die YouTube Data API.

Muss ich etwas hosten oder ausführen?

Nein. Dies ist ein Remote-MCP-Server über streamable HTTP. Nichts zu installieren, kein Container warmzuhalten, kein Prozess neu zu starten.

Sind die Daten live oder zwischengespeichert?

Live. Jeder Aufruf ruft die Seite zum Zeitpunkt der Anfrage ab und trägt seine eigene requestMetadata.id. Zwei identische Aufrufe sind zwei getrennte Abrufe und keine Wiedergabe einer gespeicherten Kopie. Zähler wie Aufrufe und Likes folgen der Seite, also bewegen sie sich, wenn sich die Seite bewegt.

Was passiert, wenn YouTube sein Layout ändert?

Nichts auf deiner Seite. Wir verfolgen die Änderungen und halten das Antwortschema stabil, sodass Feldnamen und Typen an ihrem Platz bleiben. Ein Feld ohne Wert fehlt im Element, es ist nicht vorhanden und null. Lies optionale Felder mit einem Standardwert.

Kann ich das zusammen mit anderen HasData-APIs verwenden?

Ja. Der Parameter apis akzeptiert eine Liste, und ?apis=youtube,google_serp gibt deinem Agenten die vier YouTube-Tools plus Google-Suche. Lasse den Parameter weg und du bekommst alles.

Kann ich für jedes Video ein Transkript bekommen?

Nur wo das Video eines hat, und availableTranscripts sagt dir, was existiert, bevor du fragst.

Kann ich mich mit OAuth anmelden, statt einen Schlüssel einzufügen?

Ja, in Clients, die das unterstützen. Claude Desktop und Cursor können den Endpunkt als Connector hinzufügen und sich anmelden. Unbeaufsichtigte Agenten und Skripte verwenden den x-api-key-Header.

Compliance und personenbezogene Daten

HasData greift ausschließlich auf öffentlich verfügbare Daten zu. Die Nutzungsbedingungen einer Plattform können den automatisierten Zugriff einschränken, und Sie sind für Ihre eigene Compliance verantwortlich. Wenn die von Ihnen erhobenen Daten personenbezogene Informationen umfassen, stellen Sie sicher, dass Sie eine rechtmäßige Grundlage dafür gemäß DSGVO, CCPA oder den entsprechenden Regelungen in Ihrer Rechtsordnung haben.

Produktseite und Anfrage-Builder

YouTube Scraper API

Server-Dokumentation

MCP-Server-Dokumentation

Alle 57 Tools in einem Server

HasData/hasdata-mcp

Client-Anleitungen

MCP-Clients und Integrationen

Alles andere, was wir scrapen

YouTube Scraper API und 54 weitere

Tarife und Credit-Kosten

Tarife und Credit-Kosten

API-Keys und Nutzung

HasData-Dashboard

Entwicklung

Dieses Repository ist Konfiguration und Dokumentation für einen Remote-Server. Es gibt keinen Build-Schritt und nichts zu containerisieren.

Die Tests in test/ prüfen den Tool-Vertrag, also den Teil, der ohne einen Commit hier brechen kann. Sie prüfen, dass ?apis=youtube genau vier Tools zurückgibt, dass jedes Tool weiterhin seinen erforderlichen Parameter deklariert, dass sich kein Name geändert hat und dass der verwendete Schlüssel tatsächlich akzeptiert wird. Der letzte Check ruft ein Tool tatsächlich auf und kostet 10 Credits – das ist der Preis eines Kanarienvogels, der aus dem richtigen Grund scheitern kann.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

Dieselbe Suite läuft in CI bei jedem Push und einmal pro Woche planmäßig, weil sich die Upstream-Tool-Liste ändern kann, ohne dass jemand dieses Repository anfasst. Ein Fehler bedeutet, dass sich die Tool-Liste verschoben hat, der Schlüssel nicht mehr funktioniert oder der Endpunkt nicht erreichbar war – und die Assertion-Meldung sagt, welcher Fall vorliegt.

Mitwirken

Korrekturen an den Tool-Tabellen und den Antwortbeispielen sind der nützlichste Beitrag, weil das die Teile sind, die abweichen. Fügen Sie den von Ihnen durchgeführten Aufruf und die erhaltene Antwort hinzu. Pull-Requests von Forks führen die Suite ohne Schlüssel aus, und die Live-Checks werden übersprungen, statt rot zu werden.

Lizenz

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

View all related MCP servers

Related MCP Connectors

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

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