YouTube Transcript + Search MCP 🎬

MCP serverSearch

YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use YouTube Transcript + Search MCP 🎬

From the project's README

As published by tubeagentkit/youtube-mcp in README.md.

A remote MCP server for YouTube β€” transcripts, video/channel search, channel browsing, in-channel search, and playlist extraction. API-key or OAuth 2.1 sign-in. Free tier, no card required.

Six tools, one hosted endpoint, no local install β€” for Claude, ChatGPT, Cursor, VS Code, Windsurf, and 15+ other MCP-compatible clients.

https://getyoutubetranscript.com/api/mcp

Why this MCP

This MCPTypical single-purpose YouTube MCP
Hostingβœ… Remote (no local install, no build step)❌ Local stdio process to manage
Toolsβœ… 6 (transcript, search, channel latest/search/videos, playlist)❌ Usually 1 (transcript only)
YouTube search (video and channel)βœ… Yes❌ No
Full channel upload history, paginatedβœ… Yes❌ No
In-channel searchβœ… Yes❌ No
Authβœ… API key and OAuth 2.1 (DCR + CIMD)❌ Usually neither
Agent-friendly errorsβœ… Stable error codes, human-readable messages❌ Bare HTTP codes

Quick Install

Requirements: a free getyoutubetranscript.com account (sign up β€” 100 credits, no card) and an API key from your dashboard β€” or just connect via OAuth and skip the key entirely (see Authentication below).

claude mcp add --transport http youtube-transcript https://getyoutubetranscript.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"
  1. Settings β†’ Connectors β†’ Add custom connector
  2. Name: YouTube Transcript Β· URL: https://getyoutubetranscript.com/api/mcp
  3. Click Add, then Connect and sign in via browser β€” no API key needed.

Settings β†’ Features β†’ MCP β†’ Add New MCP Server β€” Type: SSE/HTTP, URL: https://getyoutubetranscript.com/api/mcp.

Or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
"mcp.servers": {
  "youtube-transcript": {
    "type": "http",
    "url": "https://getyoutubetranscript.com/api/mcp",
    "headers": { "Authorization": "Bearer YOUR_API_KEY" }
  }
}

Enable Developer Mode, then Settings β†’ Connected Apps β†’ Add β†’ URL https://getyoutubetranscript.com/api/mcp. Leave Client ID/Secret blank for Dynamic Client Registration, or use OAuth sign-in directly.

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "serverUrl": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "type": "streamableHttp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
{
  "context_servers": {
    "youtube-transcript": {
      "source": "remote",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "youtube-transcript": {
      "type": "streamable-http",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
amp mcp add youtube-transcript https://getyoutubetranscript.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"
"augment.advanced": {
  "mcpServers": [
    {
      "name": "youtube-transcript",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  ]
}

In .kilocode/mcp.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "type": "streamable-http",
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Settings β†’ Tools β†’ AI Assistant β†’ MCP:

{
  "mcpServers": {
    "youtube-transcript": {
      "url": "https://getyoutubetranscript.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

30-second example

Summarize this video for me: https://youtu.be/dQw4w9WgXcQ

The agent calls get_youtube_transcript and summarizes the result. If you connected via OAuth, there's no key to configure at all β€” just approve the connection once.


Authentication

API Key

Universal, works with every MCP client. Get one free (100 credits, no card) at the dashboard, then send it as a Bearer token:

"headers": { "Authorization": "Bearer sk_live_your_key_here" }

OAuth 2.1

No manual key management β€” sign in via browser, the server handles the rest.

  • Dynamic Client Registration (DCR): supported for clients that self-register at connect time (Claude Desktop/Web, ChatGPT, and most others).
  • Client ID Metadata Documents (CIMD): supported per the current MCP spec (2026-07-28) for clients that host their own metadata document β€” the more modern alternative to DCR, no shared secret required.
  • First connection opens a consent screen showing exactly what access is being granted; approve once and you're connected.

Both methods issue a token scoped and audience-bound to this specific MCP server β€” it can't be replayed against any other API.


Available Tools

All six tools are exposed automatically once you connect. 1 credit = 1 successful request. Failed or rate-limited calls never consume credits.

1. get_youtube_transcript

Fetch the full transcript for a YouTube video, plus its title/author/thumbnail metadata.

ParameterTypeRequiredDescription
video_urlstringrequiredYouTube URL (full or short) or an 11-character video ID
languagestringoptionalLanguage code, e.g. en, es. Defaults to en
send_metadatabooleanoptionalInclude title/author/thumbnail. Defaults to true

Cost: 1 credit. Note: this returns the full transcript as one text block β€” there's no per-segment timestamp breakdown.

2. search_youtube

Search YouTube for videos or channels, paginated.

ParameterTypeRequiredDescription
querystringrequired unless continuation setSearch query
search_type"video" | "channel"optionalDefaults to "video"
continuationstringoptionalOpaque token from a previous response β€” fetches the next page

Cost: 1 credit/page.

3. get_channel_latest_videos Β· FREE

Get a channel's metadata plus its most recent uploads.

ParameterTypeRequiredDescription
channelstringrequired@handle, channel URL, or UC… channel ID

Cost: Free.

4. search_channel_videos

Search within one specific channel's videos.

ParameterTypeRequiredDescription
channelstringrequired unless continuation set@handle, channel URL, or UC… ID
querystringrequired unless continuation setQuery to search within the channel
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.

5. list_channel_videos

List every video a channel has ever uploaded (the full /videos tab, not just recent ones).

ParameterTypeRequiredDescription
channelstringrequired unless continuation set@handle, channel URL, or UC… ID
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.

6. list_playlist_videos

Get every video in a YouTube playlist.

ParameterTypeRequiredDescription
playliststringrequired unless continuation setPlaylist URL or ID
continuationstringoptionalOpaque token β€” fetches the next page

Cost: 1 credit/page.


Use Cases & Prompts

Use CaseExample Prompt
πŸ“ Summarize a video"Summarize the key points from this video: [URL]"
πŸ” Research a topic"Search YouTube for the 5 most-watched videos on neural radiance fields; summarize each."
🧠 Study notes"Create study notes from this MIT lecture series playlist: [PLAYLIST URL]"
πŸ“‘ Monitor a creator"Each morning, list new uploads from @hubermanlab and tell me which to watch."
πŸ›οΈ Build a content database"Pull every video from @veritasium and store title + transcript."
🎯 Channel research"Search inside @MKBHD for any video about [topic] and summarize the takeaways."
✍️ Repurpose content"Turn this video into a 1,500-word blog post: [URL]"

Pricing & Rate Limits

PlanPriceCreditsRate Limit
Free$0100 credits on signup60 req/min
Monthly$5/month1,000 credits/month200 req/min
Annual$4.50/mo ($54/yr)1,000 credits/month300 req/min
  • 1 credit = 1 successful request. Failed/rate-limited requests don't consume credits.
  • get_channel_latest_videos is always free.
  • Manage billing β†’

Troubleshooting

  • If using an API key: confirm it starts with sk_live_ and has no extra whitespace
  • If using OAuth: try disconnecting and reconnecting the connector
  • Confirm the key/connection is still active in your dashboard

Check your balance and top up or upgrade at the dashboard.

  • The video may not have captions enabled
  • It may be private, age-restricted, or region-locked
  • Confirm it plays in a real browser first

Back off and retry after a short delay β€” don't hammer it in a tight loop.

  • Clear cookies for getyoutubetranscript.com and retry
  • Ensure popup/redirect blockers aren't interfering with the consent screen
  • If your client supports both DCR and CIMD, try the other registration method

Also available as a REST API

Building an app instead of an agent? The same backend is a plain JSON REST API β€” see the Agent Skill repo for the full endpoint reference, or the dashboard to get a key directly.

Base URL: https://getyoutubetranscript.com/api/v1


Connect

Disclosure

getyoutubetranscript.com is an independent product and is not affiliated with or endorsed by YouTube or Google.

License

MIT β€” see LICENSE.

Advanced
Delivery
youtube-transcript-and-youtube-search MCP server β†’ your ahel gateway (mcp.ahel.ai) β†’ every connected AI client.
Catalog kind
mcp-server
Gateway key
com-getyoutubetranscript-youtube-transcript-and-yout-0l7j4qq
Source
github.com/tubeagentkit/youtube-mcp
Hosted endpoint
https://getyoutubetranscript.com/api/mcp