Context7
Up-to-date docs for AI agents
Beschreibung vom Entwickler (englisches Original)
YouTube transcripts, video search, chapters and extractive summaries. No YouTube API key, no LLM.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
AuthorizationAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Führe das in deinem Terminal aus
claude mcp add --transport http youtube-transcripts https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp --header 'Authorization: your-value'Trag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"youtube-transcripts": {
"url": "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"youtube-transcripts": {
"type": "http",
"url": "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Authorization geheim erforderlich HTTP headerDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto gunnargray-dev bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: Authorization
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.1) kam vor 11 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Context7, Codebase Memory, Exa
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Hosted version (no setup): apify.com/parallelstudio/youtube-transcripts-mcp. Connect any MCP client to
https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcpwith your Apify token, pay per call. This repo is the open-source code; you can also run it locally withnpm install && npm run build && node dist/index.js(stdio).
Give your AI agent YouTube transcripts, search, chapters and summaries. This MCP server fetches the captions of any public YouTube video (as plain text, timestamped segments or SRT) together with its metadata. It also searches YouTube, returns chapters, and builds structured extractive summaries where every point links to the moment it comes from.
Worked examples: four end-to-end workflows with prompts, tool calls, costs and real output are in docs/workflows.md.
It works with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and any other client that supports MCP over Streamable HTTP. You don't need a YouTube API key or a Google account. No LLM runs on the server, so you don't pay for anyone else's tokens.
| Tool | What it does | Key parameters | ||
|---|---|---|---|---|
get_transcript | Returns the transcript plus metadata: title, channel, duration, views, publish date, category, the available caption languages and whether the returned track is auto-generated. Output can be plain text, [m:ss]-timestamped paragraphs, {start, duration, text} segments or SRT. YouTube can also machine-translate it. | video, languages (priority list, default ["en"]), format (text \ | segments \ | srt), include_timestamps, translate_to, allow_auto_generated, fallback_to_any_language, max_chars |
search_videos | Searches YouTube through the same InnerTube search API the website uses. Returns id, title, channel, duration, views, relative publish time, description snippet, thumbnail, live flag and badges. Fetches more pages automatically up to limit. | query, limit (1–50), upload_date (hour…year), duration (short <4 min, medium 4–20 min, long >20 min), sort_by, features (e.g. subtitles, live, hd, creative_commons), hl, gl | ||
get_video_chapters | Returns chapters with start and end times and deep links. Uses the creator's chapters from the description or YouTube's chapter markers. If there are none, it derives topic segments from the transcript and titles each one with its distinctive keywords and a representative sentence. | video, source (auto \ | description \ | transcript), languages, target_chapters |
summarize_transcript | Builds a structured extractive summary without an LLM: a TL;DR, de-duplicated key points, keywords and keyphrases, bullets per chapter, and notable quotes. Each item has a timestamp and a …&t=123s link. | video, max_points (1–30, default 8), languages, bullets_per_chapter, max_quotes, keyword_limit |
video accepts an 11-character id (dQw4w9WgXcQ) or any YouTube URL: watch?v=, youtu.be/, /shorts/, /embed/, /live/, m. and music. hosts, and youtube-nocookie.com.
All tools are read-only.
Failures come back as MCP tool errors (isError: true). The text starts with Error ( ): … and structuredContent.error holds { code, message, retryable, details }, so your agent can react to the code instead of parsing the message:
| Code | Meaning |
|---|---|
INVALID_VIDEO_ID / INVALID_INPUT | The video id/URL or another argument is invalid |
VIDEO_UNAVAILABLE | Removed, never existed, or the id is wrong |
VIDEO_PRIVATE | The video is private |
AGE_RESTRICTED | YouTube requires a signed-in account (age gate) |
VIDEO_UNPLAYABLE | Members-only, region-blocked, upcoming live stream, etc. (details.reason has YouTube's text) |
TRANSCRIPTS_DISABLED | The video has no captions at all |
NO_TRANSCRIPT_FOUND | None of the requested languages exist and fallback_to_any_language is false. details.available lists the tracks that do exist |
TRANSLATION_UNAVAILABLE | YouTube can't translate this track into translate_to |
NO_CHAPTERS | source: "description" was requested, but the description has no chapter list |
REQUEST_BLOCKED | YouTube blocked the request (HTTP 429, reCAPTCHA or "confirm you're not a bot") even after the server rotated proxy sessions. retryable: true |
PO_TOKEN_REQUIRED / EMPTY_TRANSCRIPT | YouTube served a caption URL that needs a PO token, or an empty caption file |
UPSTREAM_ERROR / INTERNAL_ERROR | Timeouts, 5xx responses or unexpected response shapes |
This Actor uses pay-per-event pricing. Tool events are charged only for successful tool calls. Failed calls are not charged as tool events, whether they fail on validation, because the video is private or has no captions, or because YouTube blocks the request. Apify also charges its standard Actor start event ($0.00005 per GB of memory, minimum one event) each time a server instance starts. At the default 512 MB standby memory that's $0.00005 per start, and one running instance serves many calls before it idles out. The Pricing tab on this Actor is the authoritative list of current prices.
| Event | Price | When it's charged | Count |
|---|---|---|---|
transcript | $0.005 | Each successful get_transcript call | 1 per call, whatever the video length or format |
search | $0.003 | Each successful search_videos call | 1 per call (up to 50 results, including extra pages fetched automatically) |
chapters | $0.008 | Each successful get_video_chapters call | 1 per call, from the description or derived from the transcript |
summary | $0.015 | Each successful summarize_transcript call | 1 per call. The transcript fetched internally is not charged separately as transcript |
A search that returns zero results is still a successful call and is charged as one search event.
Endpoint (Streamable HTTP):
https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp
Authenticate with your Apify API token by sending it as Authorization: Bearer .
~/.cursor/mcp.json or .cursor/mcp.json){
"mcpServers": { "youtube-transcripts": { "url": "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp", "headers": { "Authorization": "Bearer " } } } }
~/.codeium/windsurf/mcp_config.json){
"mcpServers": { "youtube-transcripts": { "serverUrl": "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp", "headers": { "Authorization": "Bearer " } } } }
claude_desktop_config.json)Claude Desktop's config file only launches local (stdio) servers, so bridge to the hosted endpoint with mcp-remote (needs Node.js). The same block works in any other client that only supports stdio:
{
"mcpServers": { "youtube-transcripts": { "command": "npx", "args": [ "-y", "mcp-remote", "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp", "--header", "Authorization: Bearer ${APIFY_TOKEN}" ], "env": { "APIFY_TOKEN": " " } } } }
Apify also accepts the token as a token query parameter, so a client that only takes a URL can use:
https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp?token=<APIFY_TOKEN>
Prefer the Authorization header when your client supports it: a token in a URL can end up in logs. A scoped Apify token limits the damage if it leaks.
claude mcp add --transport http youtube-transcripts \
https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp \ --header "Authorization: Bearer $APIFY_TOKEN"
.vscode/mcp.json){
"servers": { "youtube-transcripts": { "type": "http", "url": "https://parallelstudio--youtube-transcripts-mcp.apify.actor/mcp", "headers": { "Authorization": "Bearer ${input:apifyToken}" } } }, "inputs": [{ "id": "apifyToken", "type": "promptString", "description": "Apify API token", "password": true }] }
Four of these, with the exact tool calls, per-call costs and real output from live YouTube videos, are in docs/workflows.md:
| Workflow | Tools | Cost per run |
|---|---|---|
| Research a long talk and answer with timestamp citations | get_transcript | $0.005 |
| Search a topic and summarize the top results | search_videos + 3 × summarize_transcript | $0.048 |
| Chapters for a long video that has none | get_video_chapters | $0.008 |
| Export subtitles as SRT, in another language | get_transcript | $0.005 |
The excerpts below come from the bundled fixture videos used in the test suite (see demo/transcript.md for every call and response).
`get_transcript` { "video": "kM3pLz8QwT0", "format": "segments", "include_timestamps": true } (trimmed):
{
"video": { "id": "kM3pLz8QwT0", "url": "https://www.youtube.com/watch?v=kM3pLz8QwT0", "title": "How Solar Panels Actually Work (Explained Simply)", "channel": "Bright Circuits", "durationSeconds": 552, "duration": "9:12", "viewCount": 1843291, "publishDate": "2025-03-14T07:00:12-07:00", "category": "Education", "isLive": false }, "transcript": { "language": "en", "languageName": "English", "autoGenerated": false, "translatedFrom": null, "matchedPreference": true, "format": "segments", "segmentCount": 128, "wordCount": 870, "truncated": false, "segments": [ { "start": 0, "duration": 4.116, "time": "0:00", "text": "Hey everyone, welcome back to Bright Circuits." }, { "start": 4.2, "duration": 4.116, "time": "0:04", "text": "Today we're answering a question I get" } ] }, "availableLanguages": [
Nur der Anfang wird gezeigt; den Rest findest du im Repo