π― The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.
Powering 15M+ transcripts every month Β· 500K+ transcripts processed daily Β· 49ms median response time Trusted in production by youtubetotranscript.com (~11M/mo) and recapio.com (~2.8M/mo).
Most YouTube MCP servers do one thing β pull a single transcript. TranscriptAPI MCP is a full toolkit: transcripts, video search, channel search, channel browsing, playlist extraction, and free RSS-based upload tracking β all from one remote endpoint, all designed for AI agents.
| TranscriptAPI MCP | Typical YouTube MCP | |
|---|---|---|
| Hosting | β Remote (no local install) | β Local stdio install |
| Tools | β 6 tools | β 1 (transcript only) |
| YouTube search | β Yes | β No |
| Channel & playlist extraction | β Yes | β No |
| Latest-uploads monitoring (free) | β Yes | β No |
| OAuth 2.1 + API key auth | β Both | β Usually neither |
| Production scale (15M+ req/mo) | β Yes | β Hobbyist scrapers |
| Works on mobile Claude & web Claude | β Yes | β No |
| Agent-friendly error messages | β Yes | β Bare HTTP codes |
Quick taste:
Find Andrew Huberman's three most-viewed videos about sleep,
get the transcript of each, and write a 5-bullet comparison.
That single prompt uses 3 of our 6 tools β search_youtube, search_channel_videos, get_youtube_transcript β without you writing a line of code.
This repository root is a conformant Agent Plugins 1.0.0 package β the portable format published 2026-08-06 and supported by ChatGPT, Codex, Cursor, GitHub Copilot, Kiro and VS Code. One install gets you the MCP server and a bundled youtube skill that teaches your agent when to use each tool and how not to waste credits.
plugin.json # Agent Plugins 1.0.0 manifest
mcp.json # hosted MCP server, streamable-http, OAuth (no keys)
skills/youtube/SKILL.md # when + how to use the 6 tools
.cursor-plugin/plugin.json # Cursor plugin manifest, same MCP + skill (+ marketplace.json)
VS Code β Command Palette β Chat: Install Plugin From Source, then paste:
https://github.com/ZeroPointRepo/youtube-mcp
Or register a local clone in settings.json:
"chat.pluginLocations": { "/absolute/path/to/youtube-mcp": true }
Cursor β Customize in the sidebar β find the plugin β Install. For a local clone:
git clone https://github.com/ZeroPointRepo/youtube-mcp ~/.cursor/plugins/local/transcriptapi
Then Developer: Reload Window.
Add to Cursor β MCP server only, no clone. Paste this deeplink into your browser:
cursor://anysphere.cursor-deeplink/mcp/install?name=transcriptapi&config=eyJ1cmwiOiJodHRwczovL3RyYW5zY3JpcHRhcGkuY29tL21jcCJ9
ChatGPT, Codex, GitHub Copilot, Kiro, any other client β point your client's plugin mechanism at this repository, or at a local clone. Agent Plugins 1.0.0 standardizes the package format, not installation, so each client owns its own install flow.
Summarize this video for me: https://youtu.be/dQw4w9WgXcQ
The agent calls get_youtube_transcript, gets the full timestamped transcript and summarizes it. No API key to configure β the first call opens an OAuth sign-in (free account, 100 credits, no card). Then try:
What has @TED posted in the last month? β get_channel_latest_videos (free)
Find talks on protein folding, summarize the best three.
β search_youtube, then transcripts
There are no credentials in this package β Agent Plugins 1.0.0 forbids embedded secrets, and authorization is client-managed. Verify the package yourself:
curl -sO https://agent-plugins.org/schemas/1.0.0/plugin.schema.json
curl -sO https://agent-plugins.org/schemas/1.0.0/mcp.schema.json
npx ajv-cli@5 validate --spec=draft2020 -s plugin.schema.json -d plugin.json
npx ajv-cli@5 validate --spec=draft2020 -s mcp.schema.json -d mcp.json
Requirements:
- A TranscriptAPI account (sign up free β first 100 credits free)
- An API key from your dashboard OR use OAuth (Claude, ChatGPT)
Recommended: Add a Rule to Auto-Invoke TranscriptAPI
Add this rule to your AI client so you don't need to explicitly ask for transcripts:
When I share a YouTube URL, automatically use the TranscriptAPI MCP tool to fetch the transcript before responding. This applies to any video analysis, summarization, or question about YouTube content.
One-Click Install:
Manual Configuration:
Go to: Settings β Features β MCP β Add New MCP Server
transcript-apiSSE (Remote)https://transcriptapi.com/mcpOr edit ~/.cursor/mcp.json:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Claude supports adding MCP servers directly via the "Custom Connector" UI.
Quick Setup:
TranscriptAPIhttps://transcriptapi.com/mcpFull Guide: Claude Integration Guide β
claude mcp add --transport http transcript-api https://transcriptapi.com/mcp
ChatGPT supports OAuth for secure authentication. Enable Developer Mode in ChatGPT settings first.
Quick Setup:
Settings β Connected Apps β Addhttps://transcriptapi.com/mcpFull Guide: ChatGPT Integration Guide β
Or add this to VS Code user settings (settings.json):
"mcp.servers": {
"transcript-api": {
"type": "http",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
OpenAI Agent Builder currently requires API Key authentication (OAuth not yet supported).
https://transcriptapi.com/mcpAdd to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"transcript-api": {
"serverUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"type": "streamableHttp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In Zed settings.json:
{
"context_servers": {
"transcript-api": {
"source": "remote",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
{
"mcpServers": {
"transcript-api": {
"type": "streamable-http",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
amp mcp add transcript-api https://transcriptapi.com/mcp --header "Authorization: Bearer YOUR_API_KEY"
In settings.json under augment.advanced:
"augment.advanced": {
"mcpServers": [
{
"name": "transcript-api",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
]
}
In .kilocode/mcp.json:
{
"mcpServers": {
"transcript-api": {
"type": "streamable-http",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In Settings β Tools β AI Assistant β MCP:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In ~/.gemini/settings.json:
{
"mcpServers": {
"transcript-api": {
"httpUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In ~/.qwen/settings.json:
{
"mcpServers": {
"transcript-api": {
"httpUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
{
"mcpServers": {
"transcript-api": {
"serverUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In mcp.json:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In Plugins β JSON Config:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
In Settings β AI β MCP:
{
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
In Settings β Connectors β Advanced:
{
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
Simple and universal. Works with every MCP client.
sk_ prefix"headers": {
"Authorization": "Bearer sk_your_api_key_here"
}
Security: Store keys in environment variables where possible and never commit them to version control.
Automatic, secure authentication without manual key management.
Dynamic Client Registration (DCR):
Static Client Registration:
Full reference: Authentication docs β
All six tools are exposed automatically once you connect. 1 credit = 1 successful (HTTP 200) request. Failed/rate-limited calls do not consume credits.
get_youtube_transcriptFetch the transcript for any YouTube video β as markdown (with metadata) or structured JSON. Drop the output straight into summarizers, search indexes, or AI pipelines.
| Parameter | Type | Default | Description |
|---|---|---|---|
video_url | string | required | YouTube URL (full or short) or 11-char video ID |
send_metadata | boolean | true | Include video title, author, thumbnail |
format | string | "text" | "text" (markdown) or "json" |
include_timestamp | boolean | true | Add timestamps to each segment |
Cost: 1 credit per successful request.
Example output (markdown):
# Metadata
## Title: Rick Astley - Never Gonna Give You Up
## Author: RickAstleyVEVO
# Transcript
[0.0s] Never gonna give you up
[4.12s] Never gonna let you down
Example output (JSON):
{
"transcript": [
{ "text": "Never gonna give you up", "start": 0.0, "duration": 4.12 },
{ "text": "Never gonna let you down", "start": 4.12, "duration": 3.85 }
],
"metadata": { "title": "Rick Astley...", "author_name": "RickAstleyVEVO" }
}
search_youtubeSearch YouTube for videos or channels. Filter by type and paginate with a continuation token β perfect for discovery, research, and building content pipelines.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | required | Search query |
search_type | string | "video" | "video" or "channel" |
continuation | string | null | Token from a prior call for next page |
Cost: 1 credit per page (~20 results per page).
Example prompt:
Search YouTube for "transformer architecture explained" and pick the
top 3 results by relevance.
get_channel_latest_videos Β· FREEGet the ~15 most recent uploads from any channel via RSS β no credits required. Perfect for monitoring, daily recaps, or triggering downstream pipelines.
| Parameter | Type | Default | Description |
|---|---|---|---|
channel | string | required | @handle, channel URL, or UC⦠channel ID |
Cost: Free.
Example prompt:
Every morning, list new uploads from @lexfridman and @hubermanlab.
search_channel_videosSearch inside one specific channel for videos matching a query. Great for researching a creator's content or finding niche topics in large channels.
| Parameter | Type | Default | Description |
|---|---|---|---|
channel | string | required | @handle, channel URL, or UC⦠ID |
query | string | required | Query to search within the channel |
continuation | string | null | Pagination token |
Cost: 1 credit per page (~30 results per page).
Example prompt:
On Andrew Huberman's channel, find every video about sleep.
list_channel_videosList every video on a channel, ~100 per page. Ideal for building databases, bulk transcript extraction, or auditing a channel's full content library.
| Parameter | Type | Default | Description |
|---|---|---|---|
channel | string | required | @handle, channel URL, or UC⦠ID |
continuation | string | null | Pagination token |
Cost: 1 credit per page (~100 results per page).
list_playlist_videosGet every video in a YouTube playlist (PL/UU/LL/FL/OL IDs supported). Process entire courses, lecture series, or curated collections in a single call.
| Parameter | Type | Default | Description |
|---|---|---|---|
playlist | string | required | Playlist URL or playlist ID |
continuation | string | null | Pagination token |
Cost: 1 credit per page (~100 results per page).
| 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]" |
| βοΈ Compare perspectives | "Compare arguments in these two videos: [URL1] [URL2]" |
| π Translate | "Translate this video's transcript to Spanish: [URL]" |
| βοΈ Repurpose content | "Turn this video into a 1,500-word blog post: [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." |
| π― Competitor analysis | "Search inside @MKBHD for any video about [competitor product] and summarize the takeaways." |
| Plan | Price | Credits | Rate Limit |
|---|---|---|---|
| Free | $0 (one-time) | 100 | 60 req/min |
| Starter Monthly | $5/month | 1,000/month | 200 req/min |
| Starter Annual | $54/year ($4.50/mo) | 1,000/month | 300 req/min |
get_channel_latest_videos is free (no credits charged).sk_Retry-After headerBuilding an app instead of an agent? The same backend ships as a JSON REST API.
| MCP | REST API | |
|---|---|---|
| Best for | AI assistants & agents | Apps & backend services |
| Setup | Add a URL | Code integration |
| Get started | This README | API docs β Β· Swagger β |
Base URL: https://transcriptapi.com/api/v2
This server is published to the official Model Context Protocol Registry under the name:
com.transcriptapi/youtube-transcript-and-youtube-search
This listing does not have a supported local package template. Use the maintainerβs documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.