MCP Server
The Model Context Protocol (MCP) server exposes the same YouTube transcript and discovery capabilities as the REST API — but as structured tools that Claude, Cursor, Cline, Windsurf, and other MCP-compatible clients can call directly. Two ways to authenticate: OAuth (recommended — one command, browser-based sign-in, automatic token refresh) or a long-lived API key from the API keys page (works with every client; required for any client that doesn't yet speak OAuth).
Recommended: OAuth (no API key)
MCP-compatible AI clients can connect via OAuth — no copy-paste of an API key. Add the server with one command, then click Authenticate in your client. A browser window opens our consent screen, you click Allow access, and the client stores access and refresh tokens automatically.
claude mcp add --transport http transcript-api https://api.youtubetranscripts.co/mcpAccess tokens last 1 hour and the client refreshes them silently using the 30-day refresh token. Sign-in happens once per device.
OAuth is supported by Claude Desktop, Cursor, Cline, Windsurf, and Claude Code CLI. The same command works for every OAuth-capable client. If your client doesn't yet support OAuth, use the API-key instructions below as a fallback.
Setup — Claude Desktop (API-key fallback)
For OAuth, prefer the single command in the OAuth section above. Use the JSON below only if you want a long-lived API key instead.
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add the mcpServers block below. Replace yt_live_YOUR_KEY with your key.
{
"mcpServers": {
"yt-transcripts": {
"url": "https://api.youtubetranscripts.co/mcp",
"headers": {
"Authorization": "Bearer yt_live_YOUR_KEY"
}
}
}
}Restart Claude Desktop after saving.
Setup — Claude Code (CLI)
Claude Code supports both auth modes. OAuth is the simpler path — omit the -H flag and run /mcp after adding the server to walk through the browser sign-in:
claude mcp add --transport http transcript-api https://api.youtubetranscripts.co/mcpIf you'd rather pre-paste a long-lived API key, supply it via the -H flag instead:
claude mcp add --transport http transcript-api https://api.youtubetranscripts.co/mcp -H "Authorization: Bearer yt_live_YOUR_KEY"Verify either way with claude mcp list:
claude mcp list
# expect: transcript-api http <url> ✓ connectedAll thirteen tools then appear as mcp__transcript-api__* inside Claude Code. To remove the server, run claude mcp remove transcript-api.
Setup — Cursor / Cline / Windsurf (API-key fallback)
All three editors support OAuth via their built-in MCP UI — point them at https://api.youtubetranscripts.co/mcp and they'll discover the auth server automatically. Use the JSON below only if you need an API-key config (e.g. for a sandboxed environment that can't open a browser).
These clients use the same JSON shape. In Cursor open Settings → MCP and paste the snippet, or add it to your project-local .cursor/mcp.json. Cline reads from .cline/mcp.json in the workspace root. Windsurf uses .windsurf/mcp.json.
{
"mcpServers": {
"yt-transcripts": {
"url": "https://api.youtubetranscripts.co/mcp",
"headers": {
"Authorization": "Bearer yt_live_YOUR_KEY"
}
}
}
}Replace yt_live_YOUR_KEY with your key and reload the editor.
Available tools
search_youtube— Search YouTube for videos, channels, or playlists.list_channel_videos— List videos on a channel.search_channel— Search within a channel.list_channel_latest— Single most-recent video on a channel (free).list_playlist_videos— Videos in a playlist.get_video_metadata— Title, channel, and duration without a transcript (free).get_transcript— Fetch a transcript — polls up to 60 s and returns done / failed / pending.check_transcript_status— Look up a pending transcript job by ID.summarize_video— Fetch a transcript plus a free AI summary (TL;DR + key points) on transcript.summary.get_transcripts_bulk— Enqueue many transcripts at once — returns a batch_id.check_batch_status— Poll a batch for progress and per-job status.list_batches— List your bulk batches and their progress.get_credits— Return your current credit balance (free).
Cost
MCP tool calls are billed at the same per-credit rate as equivalent REST calls. Discovery tools (search, channel browse, playlist listing, video metadata) charge a flat one credit per call — zero if the call returns no results. list_channel_latest and get_video_metadata are free. Transcript tools charge one credit per native transcript and one credit per minute of Whisper audio (rounded up); cache hits charge the same as a fresh fetch. Each tool response reports its own credits_used; call get_credits any time for your current balance.
Limits
- Rate limit: 100 requests per minute per API key. Excess calls return a
RATE_LIMIT_EXCEEDEDerror. - Transcript polling:
get_transcriptpolls the backend for up to 60 seconds before returning apendingstatus with a job ID. Long videos may not be done within the window — usecheck_transcript_statusto resume. - Batch size:
get_transcripts_bulkaccepts at most 50 URLs per call.
Troubleshooting
- Client says “server unreachable”: verify the
urlin your config points tohttps://api.youtubetranscripts.co/mcp(no trailing slash, no extra path segment). Check that your network allows outbound HTTPS to that host. - Authentication errors: confirm your key is active in the dashboard and that the header value starts with
Bearer(note the space). - Tool not appearing in the client: reload or restart the editor after changing the config file. Some clients require a full quit-and-reopen.
- Transcript never completes: very long videos may exceed the 60 s polling window inside
get_transcript. Use the returnedjob_idwithcheck_transcript_statusto poll manually.