The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.
SaferSkills independently audited Youtube Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: com.transcriptapi/youtube-transcript-and-youtube-search -->
<p align="center"> <a href="https://transcriptapi.com"> <img src="public/brand/logo-512.png" width="160" height="160" alt="TranscriptAPI" /> </a> </p>
<h1 align="center">YouTube Transcript + YouTube Search MCP for AI Agents</h1>
<p align="center"> <b>The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.</b><br/> Six tools — transcripts, video search, channel browsing, in-channel search, playlist extraction, and new-upload polling — for Claude, ChatGPT, Cursor, VS Code, Claude Code, and 20+ clients. </p>
<p align="center"> <a href="https://cursor.com/en/install-mcp?name=transcript-api&config=eyJ1cmwiOiJodHRwczovL3RyYW5zY3JpcHRhcGkuY29tL21jcCJ9"><img alt="Install in Cursor" src="https://img.shields.io/badge/Cursor-Install_MCP-000000?style=for-the-badge&logo=cursor&logoColor=white"/></a> <a href="https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22transcript-api%22%2C%22url%22%3A%22https%3A%2F%2Ftranscriptapi.com%2Fmcp%22%7D"><img alt="Install in VS Code" src="https://img.shields.io/badge/VS_Code-Install_MCP-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white"/></a> </p>
<p align="center"> <a href="https://transcriptapi.com"><img src="https://img.shields.io/badge/Website-transcriptapi.com-FF3B00?style=for-the-badge" alt="Website"/></a> <a href="https://transcriptapi.com/docs"><img src="https://img.shields.io/badge/Docs-API_Reference-06B6D4?style=for-the-badge&logo=readthedocs&logoColor=white" alt="Docs"/></a> <a href="https://transcriptapi.com/swagger"><img src="https://img.shields.io/badge/Swagger-Try_API-85EA2D?style=for-the-badge&logo=swagger&logoColor=white" alt="Swagger"/></a> <a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-4CAF50?style=for-the-badge" alt="MIT License"/></a> </p>
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.
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:
>
``txt 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. ``<details> <summary><b>Install in Cursor (One-Click / Manual)</b></summary>
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"
}
}
}
}</details>
<details> <summary><b>Install in Claude (Desktop & Web) — Recommended</b></summary>
Claude supports adding MCP servers directly via the "Custom Connector" UI.
Quick Setup:
TranscriptAPIhttps://transcriptapi.com/mcpFull Guide: Claude Integration Guide →
</details>
<details> <summary><b>Install in Claude Code (CLI)</b></summary>
claude mcp add --transport http transcript-api https://transcriptapi.com/mcp</details>
<details> <summary><b>Install in ChatGPT</b></summary>
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 →
</details>
<details> <summary><b>Install in VS Code</b></summary>
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"
}
}
}</details>
<details> <summary><b>Install in OpenAI Agent Builder</b></summary>
OpenAI Agent Builder currently requires API Key authentication (OAuth not yet supported).
https://transcriptapi.com/mcp</details>
<details> <summary><b>Install in Windsurf</b></summary>
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"transcript-api": {
"serverUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Cline</b></summary>
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"type": "streamableHttp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Zed</b></summary>
In Zed settings.json:
{
"context_servers": {
"transcript-api": {
"source": "remote",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Roo Code</b></summary>
{
"mcpServers": {
"transcript-api": {
"type": "streamable-http",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Amp</b></summary>
amp mcp add transcript-api https://transcriptapi.com/mcp --header "Authorization: Bearer YOUR_API_KEY"</details>
<details> <summary><b>Install in Augment Code</b></summary>
In settings.json under augment.advanced:
"augment.advanced": {
"mcpServers": [
{
"name": "transcript-api",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
]
}</details>
<details> <summary><b>Install in Kilo Code</b></summary>
In .kilocode/mcp.json:
{
"mcpServers": {
"transcript-api": {
"type": "streamable-http",
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in JetBrains AI Assistant</b></summary>
In Settings → Tools → AI Assistant → MCP:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Gemini CLI</b></summary>
In ~/.gemini/settings.json:
{
"mcpServers": {
"transcript-api": {
"httpUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Qwen Coder</b></summary>
In ~/.qwen/settings.json:
{
"mcpServers": {
"transcript-api": {
"httpUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Google Antigravity</b></summary>
{
"mcpServers": {
"transcript-api": {
"serverUrl": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Trae</b></summary>
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in LM Studio</b></summary>
In mcp.json:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in BoltAI</b></summary>
In Plugins → JSON Config:
{
"mcpServers": {
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}</details>
<details> <summary><b>Install in Warp</b></summary>
In Settings → AI → MCP:
{
"transcript-api": {
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}</details>
<details> <summary><b>Install in Perplexity Desktop</b></summary>
In Settings → Connectors → Advanced:
{
"url": "https://transcriptapi.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}</details>
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 downExample 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 <sub>· FREE</sub>Get 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).<details> <summary><b>Authentication errors (401)</b></summary>
sk_</details>
<details> <summary><b>No credits (402)</b></summary>
</details>
<details> <summary><b>Video not available (404)</b></summary>
</details>
<details> <summary><b>Rate limiting (429)</b></summary>
Retry-After header</details>
<details> <summary><b>OAuth issues</b></summary>
</details>
Building 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<p align="center"> <sub>© 2026 Zero Point Studio d.o.o. · Released under the <a href="./LICENSE">MIT License</a></sub> </p>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.