MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
Beschreibung vom Entwickler (englisches Original)
Agent-first YouTube Shorts uploader: dry-run validation, OAuth checks, synthetic-media metadata.
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.
YOUTUBE_DRY_RUN, YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRETAls 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.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"youtube-shorts-agent": {
"command": "npx",
"args": [
"-y",
"youtube-shorts-agent"
],
"env": {
"YOUTUBE_DRY_RUN": "your-value",
"YOUTUBE_CLIENT_ID": "your-value",
"YOUTUBE_CLIENT_SECRET": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add youtube-shorts-agent --env YOUTUBE_DRY_RUN=your-value --env YOUTUBE_CLIENT_ID=your-value --env YOUTUBE_CLIENT_SECRET=your-value -- npx -y youtube-shorts-agentTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"youtube-shorts-agent": {
"command": "npx",
"args": [
"-y",
"youtube-shorts-agent"
],
"env": {
"YOUTUBE_DRY_RUN": "your-value",
"YOUTUBE_CLIENT_ID": "your-value",
"YOUTUBE_CLIENT_SECRET": "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-shorts-agent": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"youtube-shorts-agent"
],
"env": {
"YOUTUBE_DRY_RUN": "your-value",
"YOUTUBE_CLIENT_ID": "your-value",
"YOUTUBE_CLIENT_SECRET": "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.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
YOUTUBE_DRY_RUN envYOUTUBE_CLIENT_ID envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
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 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto davidmosiah 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
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
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: YOUTUBE_CLIENT_SECRET
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.6) kam vor 5 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
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.
YouTube Shorts Agent
Agent-first YouTube Shorts uploader for the YouTube Data API. Dry-run safe, OAuth readiness checks, MCP-ready for Codex / Claude / Cursor / Hermes.
⭐ If this agent-first tool helps your workflow, please star the repo. Stars make this tooling easier for other builders to discover and help Delx keep shipping open infrastructure.
🧱 Part of the Delx agent stack — 15 open-source MCP servers across body, reach and coordination.
Agent-first YouTube Shorts uploader for the YouTube Data API. It is designed for Codex, Claude, Cursor, Hermes, OpenClaw and any MCP client that needs a predictable upload workflow with dry-run safety, OAuth readiness checks and structured output.
Use it when an agent needs to prepare, validate or upload Shorts through the official API without touching YouTube Studio UI.
youtube_agent_manifest for install/runtime guidanceyoutube_connection_status before upload attemptsyoutube_privacy_audit for local token and media boundariesyoutube_oauth_authorize_url with local PKCE session storageyoutube_upload_short with containsSyntheticMedia supportyoutube_list_recent_videos for lightweight post-upload checksnpm install -g youtube-shorts-agent
Or run directly:
npm exec --yes --package=youtube-shorts-agent -- youtube-shorts-agent doctor
youtube-shorts-agent manifest --client codex
youtube-shorts-agent doctor youtube-shorts-agent privacy-audit youtube-shorts-agent auth-url --redirect-uri http://localhost:8787/callback youtube-shorts-agent upload-short --video ./short.mp4 --title "Launch title" --caption-file copy.txt youtube-shorts-agent list-recent --max-results 10
Dry-run is enabled by default. Set YOUTUBE_DRY_RUN=false only when doctor reports a complete OAuth setup and you intend to call the live API.
Prepare a local square cover draft with the cover recipe. Preview offline, request a free quote, then let the operator approve that exact purchase with --pay. The separate image kit verifies the WebP and safely resumes the same payment authorization.
This is the full first-run path. Every step here is dry-run safe — no credentials are required and nothing is sent to YouTube. The output below is captured verbatim from a real run.
1. Check readiness. With no OAuth configured, doctor confirms you are in dry-run mode:
youtube-shorts-agent doctor
{
"ok": true, "dry_run": true, "configured": { "client_credentials": "missing", "access_token": "missing", "refresh_token": "missing" }, "missing_count": 3, "ready_for_live_upload": false, "next_steps": [ "Current mode is dry-run. Validate metadata and agent flow before live uploads." ] }
2. Prepare a Short and its caption.
printf 'Launching the agent-first Shorts uploader.\n#shorts #ai #agents' > copy.txt
3. Run the upload in dry-run. No network call is made; the tool returns the exact job and result it would publish, so an agent can validate metadata before going live:
youtube-shorts-agent upload-short \
--video ./short.mp4 \ --title "Agent-first Shorts upload" \ --caption-file copy.txt \ --tags ai,agents \ --duration 24
{
"ok": true, "dry_run": true, "job": { "id": "youtube_1780082215631", "platform": "youtube", "status": "queued", "createdAt": "2026-05-29T19:16:55.631Z", "caption": "Launching the agent-first Shorts uploader.\n#shorts #ai #agents", "targetUrl": "", "mediaPaths": ["./short.mp4"], "metadata": { "title": "Agent-first Shorts upload", "youtube_title": "Agent-first Shorts upload", "youtube_tags": ["ai", "agents"], "youtube_contains_synthetic_media": true, "video_duration_sec": 24, "video_aspect_ratio": "9:16" } }, "result": { "provider": "youtube_official", "platformPostId": "dryrun_1780082215631", "releaseUrl": "https://www.youtube.com", "raw": { "dryRun": true, "jobId": "youtube_1780082215631" } } }
platformPostId is prefixed with dryrun_ and releaseUrl is the YouTube root — both signal that nothing was uploaded. The id, createdAt and dryrun_* values vary per run.
4. Confirm the channel listing path (returns an empty list in dry-run):
youtube-shorts-agent list-recent --max-results 5
{ "items": [] }
Going live. Configure OAuth (youtube-shorts-agent auth-url --redirect-uri http://localhost:8787/callback, then exchange the callback code for tokens), set YOUTUBE_CLIENT_ID / YOUTUBE_CLIENT_SECRET / YOUTUBE_ACCESS_TOKEN / YOUTUBE_REFRESH_TOKEN in .env, re-run doctor until ready_for_live_upload is true, then set YOUTUBE_DRY_RUN=false and re-run the same upload-short command.
youtube-shorts-mcp
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y -p youtube-shorts-agent youtube-shorts-mcp --http
Env: YOUTUBE_MCP_HOST, YOUTUBE_MCP_PORT, YOUTUBE_MCP_TRANSPORT=http.
Hermes-style config:
mcp_servers:
youtube_shorts: command: npx args: ["-y", "youtube-shorts-agent"] sampling: enabled: false
Recommended first calls:
youtube_connection_statusyoutube_privacy_audityoutube_upload_short| Tool | Purpose |
|---|---|
youtube_agent_manifest | Install/runtime guidance for Codex, Claude, Cursor, Hermes and OpenClaw |
youtube_connection_status | OAuth and dry-run readiness without token values |
youtube_privacy_audit | Upload scope, synthetic media and local file boundaries |
youtube_oauth_authorize_url | PKCE authorization URL with local session storage |
youtube_upload_short | Dry-run or live Shorts upload |
youtube_list_recent_videos | Lightweight channel verification |
Use youtube-shorts-agent. First call youtube_connection_status and youtube_privacy_audit.
If uploading AI-generated media, keep containsSyntheticMedia=true. Never print token values.
Copy .env.example to .env. Keep .env and .agent-data/ out of Git.
The upload tool sets containsSyntheticMedia=true by default for AI-generated or AI-edited videos. Override only when that is not true for the asset.
.agent-data/.YOUTUBE_DRY_RUN=false.npm install
npm test npm run check