MCP Server

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/mcp

Access 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/mcp

If 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>  ✓ connected

All 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_youtubeSearch YouTube for videos, channels, or playlists.
  • list_channel_videosList videos on a channel.
  • search_channelSearch within a channel.
  • list_channel_latestSingle most-recent video on a channel (free).
  • list_playlist_videosVideos in a playlist.
  • get_video_metadataTitle, channel, and duration without a transcript (free).
  • get_transcriptFetch a transcript — polls up to 60 s and returns done / failed / pending.
  • check_transcript_statusLook up a pending transcript job by ID.
  • summarize_videoFetch a transcript plus a free AI summary (TL;DR + key points) on transcript.summary.
  • get_transcripts_bulkEnqueue many transcripts at once — returns a batch_id.
  • check_batch_statusPoll a batch for progress and per-job status.
  • list_batchesList your bulk batches and their progress.
  • get_creditsReturn 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_EXCEEDED error.
  • Transcript polling: get_transcript polls the backend for up to 60 seconds before returning a pending status with a job ID. Long videos may not be done within the window — use check_transcript_status to resume.
  • Batch size: get_transcripts_bulk accepts at most 50 URLs per call.

Troubleshooting

  • Client says “server unreachable”: verify the url in your config points to https://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 returned job_id with check_transcript_status to poll manually.