Skip to main content
Glama
tubeagentkit

YouTube Transcript + Search MCP

by tubeagentkit

YouTube MCP Server: Transcripts, Search, Channels & Playlists ๐ŸŽฌ

License Website

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.

Seven 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 MCP

Typical 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


Related MCP server: YouTube MCP

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.


Run locally (stdio)

Prefer a local process? server/ is an open-source stdio MCP server with the same 7 tools, built on the official MCP TypeScript SDK. It calls the public REST API with your API key.

git clone https://github.com/tubeagentkit/youtube-mcp
npm install --prefix youtube-mcp/server

Then point your client at it, e.g. Claude Desktop / Cursor:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "node",
      "args": ["/absolute/path/to/youtube-mcp/server/index.js"],
      "env": { "GYT_API_KEY": "sk_live_your_key_here" }
    }
  }
}

Live integration test (uses only free tools): GYT_API_KEY=sk_live_... npm test --prefix server


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 seven 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.

Parameter

Type

Required

Description

video_url

string

required

YouTube URL (full or short) or an 11-character video ID

language

string

optional

Language code, e.g. en, es. Defaults to en

send_metadata

boolean

optional

Include 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.

Parameter

Type

Required

Description

query

string

required unless continuation set

Search query

search_type

"video" | "channel"

optional

Defaults to "video"

continuation

string

optional

Opaque 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.

Parameter

Type

Required

Description

channel

string

required

@handle, channel URL, or UCโ€ฆ channel ID

Cost: Free.

4. search_channel_videos

Search within one specific channel's videos.

Parameter

Type

Required

Description

channel

string

required unless continuation set

@handle, channel URL, or UCโ€ฆ ID

query

string

required unless continuation set

Query to search within the channel

continuation

string

optional

Opaque 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).

Parameter

Type

Required

Description

channel

string

required unless continuation set

@handle, channel URL, or UCโ€ฆ ID

continuation

string

optional

Opaque token โ€” fetches the next page

Cost: 1 credit/page.

6. list_playlist_videos

Get every video in a YouTube playlist.

Parameter

Type

Required

Description

playlist

string

required unless continuation set

Playlist URL or ID

continuation

string

optional

Opaque token โ€” fetches the next page

Cost: 1 credit/page.

7. get_credits ยท FREE

Check the remaining credit balance for your key/account. No parameters.

Cost: Free.


Use Cases & Prompts

Use Case

Example 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

Plan

Price

Credits

Rate Limit

Free

$0

100 credits on signup

60 req/min

Monthly

$5/month

1,000 credits/month

200 req/min

Annual

$4.50/mo ($54/yr)

1,000 credits/month

300 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


Verification

This repo contains the MIT-licensed source of the local stdio MCP server in server/ (tool definitions, input validation, API calls, error mapping), plus the manifests for the hosted endpoint. The hosted endpoint and the REST API behind both are run by getyoutubetranscript.com and are not open source. To check either one yourself:

  • Run the local server's live test โ€” GYT_API_KEY=sk_live_... npm test --prefix server starts server/index.js over stdio, lists all 7 tools, and calls the free ones.

  • Run verify.js against the hosted endpoint โ€” zero dependencies, zero auth required:

    node verify.js

    It performs the real MCP handshake (initialize then tools/list) against the live endpoint and prints the server's actual response, including all 7 real tool schemas. Tool discovery is public; only tool calls require an API key or OAuth token (see Authentication).

  • Independently verified by four third-party MCP directories, each of which connected to the live endpoint and confirmed the tools themselves (not just took our word for it):

    • Official MCP Registry โ€” com.getyoutubetranscript/youtube-transcript-and-youtube-search, published via domain-ownership-verified HTTP mcp-publisher

    • Smithery โ€” its own scanner connected and discovered all 6 tools

    • Glama

    • LobeHub

  • Live since 2026-09-12 โ€” the OAuth 2.1 (DCR + CIMD) flow has also been exercised end-to-end by a real third-party client (Smithery) connecting via CIMD, which surfaced and got a real interop fix along the way (see commit history).


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.

Other ways to use the GetYouTubeTranscript API:

License

MIT โ€” see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides production-grade tools for YouTube channel resolution, video metadata extraction, transcripts, and playlist management. It features a quota-aware, AI-friendly design that supports structured searching and listing of public YouTube data.
    7
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI tools to access YouTube content, including transcript extraction, video/channel info, and search.
    4
    13 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with token-optimized access to YouTube data, including video details, transcripts, channel statistics, trending videos, and search.
    473 npm
    MIT