youtube-transcript-mcp
This server allows you to extract, manage, and interact with YouTube video transcripts through an AI assistant.
Transcribe Videos (
transcribe_v2): Extract fast caption-based transcripts from YouTube videos using manual or auto-generated captions (no ASR). Supports language selection, caption source preference, and flexible output formatting (timestamps, paragraphs, word-level detail).List Transcript History (
list_transcripts): Browse and search previously created transcripts with pagination. Filter by status (queued, processing, succeeded, failed), language, or search by video ID, title, or transcript content.Retrieve a Specific Transcript (
get_transcript): Fetch the full transcript for a YouTube video by ID, with options to filter by language, caption source (auto, manual, or ASR), and include timestamps.Delete Transcripts (
delete_transcript): Remove one or more transcript records by their IDs or by YouTube video ID.Check Account Stats (
get_stats): View remaining API credits, total transcripts created, subscription plan, and rate limit information.
It works with AI clients including Claude, Cursor, Windsurf, VS Code + Copilot, and Cline via HTTP or stdio connections.
Provides tools to extract manual or auto-generated transcripts from YouTube videos, manage transcript history, and retrieve video statistics.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Why This MCP Server?
Connect Claude, Cursor, Windsurf, or any MCP client to YouTubeTranscript.dev — no custom code. Your AI assistant gets tools to extract transcripts, list history, and manage content at scale.
⚡ Fast caption extraction — Manual or auto captions, returns in seconds
📚 Transcript history — List, search, and paginate your transcripts
🎯 Full control — Get stats, delete transcripts, fetch by video ID
🔌 One config — Works with Claude, Cursor, Windsurf, VS Code, Cline
🔒 User-owned keys — API key per connection, no server-side secrets
Related MCP server: youtube-summarize
Quick Start
Remote MCP URL: https://mcp.youtubetranscript.dev
Claude, Cursor, and VS Code can add this as a remote MCP connector. ChatGPT users must enable Developer mode and create a custom app with this URL; availability depends on the workspace plan. OAuth-capable clients sign in once, so no API key is needed in the chat.
Client | One-click |
Claude | |
ChatGPT | |
Cursor | |
VS Code | |
Claude Code |
|
Grok |
|
Full walkthrough: youtubetranscript.dev/resources/mcp-server
API key clients (if the tool has no OAuth): send Authorization: Bearer YOUR_API_KEY. x-api-token still works. Get a key from the account page.
Run locally (optional): npm install && npm run build && npm run start:http — then connect to http://localhost:8080.
MCP Connection Settings
Claude Code
claude mcp add --transport http youtubetranscript https://mcp.youtubetranscript.devClaude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtubetranscript": {
"url": "https://mcp.youtubetranscript.dev",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Cursor
.cursor/mcp.json:
{
"mcpServers": {
"youtubetranscript": {
"url": "https://mcp.youtubetranscript.dev",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"youtubetranscript": {
"serverUrl": "https://mcp.youtubetranscript.dev",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}VS Code + Copilot
settings.json:
{
"mcp": {
"servers": {
"youtubetranscript": {
"url": "https://mcp.youtubetranscript.dev",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
}Cline
Add to your Cline MCP config (format may vary by Cline version):
{
"youtubetranscript": {
"url": "https://mcp.youtubetranscript.dev",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}Replace YOUR_API_KEY with your API key from youtubetranscript.dev/dashboard/account.
Configuration
Server Environment (for deployment)
Variable | Description | Default |
| Base URL of the API |
|
| Public MCP origin |
|
| Request timeout in ms |
|
| HTTP server port |
|
| Enable debug logging |
|
Note: HTTP mode uses OAuth where the client supports it, including compatible Claude, Cursor, VS Code, and Grok clients. ChatGPT requires Developer mode and a custom MCP app. API-key clients can send Authorization: Bearer / x-api-token from the client. Do not put user keys in server env. For stdio mode, set YTSM_API_KEY. Always set YTSM_BASE_URL to https://www.youtubetranscript.dev — the apex host 301s and breaks POST/auth.
Tools Reference
Tool | Best for | Returns |
| Credits, transcripts count, plan | credits, transcripts_total, plan, rate_limit |
| Create/fetch transcript (fast) | Transcript JSON |
| List user transcripts | History list with pagination |
| Get full transcript by video_id | Transcript detail |
| Delete transcript(s) | Delete result |
get_stats
Credits left, transcripts created, plan, rate limit. No parameters.
transcribe_v2
Fast caption-based transcript (no ASR). Uses manual or auto captions only.
Parameter | Required | Description |
| Yes | YouTube URL or 11-character video ID |
| No | Language tag (e.g. |
| No |
|
| No |
|
list_transcripts
List transcript history for the authenticated user.
Parameter | Required | Description |
| No | Search by video id, title, or transcript text |
| No | How many to return (default 10) |
| No | Page number (default 1) |
| No |
|
| No | Language filter (e.g. |
| No | Include transcript segments in response |
get_transcript
Get full transcript by video_id.
Parameter | Required | Description |
| Yes | YouTube video ID |
| No | Transcript record id for specific version |
| No | Language filter |
| No |
|
| No | Include timestamps in response |
delete_transcript
Delete transcript records.
Parameter | Required | Description |
| No* | Array of transcript record ids to delete |
| No* | Convenience: delete by video id (resolves id) |
*Provide at least one of ids or video_id.
Deployment (Optional)
For production, deploy to a service that supports long-lived connections (e.g. Cloud Run, Railway, Fly.io). Avoid serverless (Vercel, Lambda) for MCP — timeouts and concurrency limits cause issues.
docker build -f Dockerfile.cloudrun -t gcr.io/YOUR_PROJECT/youtube-transcript-mcp .
docker push gcr.io/YOUR_PROJECT/youtube-transcript-mcp
gcloud run deploy youtube-transcript-mcp --image gcr.io/YOUR_PROJECT/youtube-transcript-mcp ...Stdio (Alternative)
Run as a subprocess instead of HTTP. Required: set YTSM_API_KEY in env (API key is not passed per-request for stdio).
{
"mcpServers": {
"youtubetranscript": {
"command": "node",
"args": ["dist/index.js"],
"env": { "YTSM_API_KEY": "YOUR_API_KEY" }
}
}
}Run from the project directory after npm run build. For globally installed package, use the path to dist/index.js in the package.
Development
npm install
npm run build
npm test
npm run start:http # Local HTTP server (port 8080)Quick test all tools (requires YTSM_API_KEY in env):
npm install && npm run build
export YTSM_API_KEY=your_key # bash/mac
$env:YTSM_API_KEY="your_key" # PowerShell
npm run test:allSee QUICK_TEST.md for full testing instructions.
Links
License
MIT License — see LICENSE for details.
Available Tools
5 toolsdelete_transcriptCInspect
POST /api/v1/transcripts/bulk-delete. Delete transcripts by ids or by video_id.
Inputs: ids, video_id.
get_statsBInspect
Get stats: credits left, transcripts created, plan, rate limit.
Inputs: no named parameters.
get_transcriptCInspect
GET /api/v1/transcripts/{video_id}. Get full transcript for a video.
Inputs: video_id (required), id, language, source, +1 more.
list_transcriptsBInspect
GET /api/v1/history. List or search user transcripts. Use search to find by video id, title, or transcript content.
Inputs: search, limit, page, status, +2 more.
transcribe_v2BInspect
POST /api/v2/transcribe. Fast caption-based transcript (no ASR). Use manual or auto captions only.
Inputs: video (required), language, source, format.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: get_transcript retrieves a single transcript, list_transcripts searches or lists multiple, transcribe_v2 creates new transcripts, delete_transcript removes them, and get_stats provides account metadata. An agent can easily distinguish these functions.
Four tools follow a consistent verb_noun pattern (get_transcript, list_transcripts, delete_transcript, get_stats), but transcribe_v2 deviates slightly with a version suffix. This minor inconsistency doesn't hinder readability, though it breaks perfect uniformity.
Five tools is well-scoped for a YouTube transcript server, covering core operations (create, read, list, delete) plus account stats. Each tool earns its place without bloat, fitting typical server sizes of 3-15 tools.
The toolset provides complete CRUD/lifecycle coverage for transcripts: transcribe_v2 (create), get_transcript (read), list_transcripts (list/search), delete_transcript (delete), and get_stats for monitoring. No obvious gaps exist for the domain.
Maintenance
Related MCP Connectors
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
Real-time YouTube transcripts, comments, channels & video search MCP. Local npx or hosted OAuth.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server designed to fetch transcripts for YouTube videos. It enables AI tools to access video text content for tasks like summarization, analysis, and key takeaway extraction.174MIT
- AlicenseAqualityCmaintenanceMCP server that fetches YouTube video transcripts and optionally summarizes them. Supports multiple transcript formats (text, JSON, SRT, WebVTT), multi-language retrieval, and flexible YouTube URL parsing.650 PyPI6MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP server fetches and extracts transcripts from YouTube videos, enabling AI language models to access and analyze video content.1-
- AlicenseNot gradedqualityDmaintenanceMCP server for fetching YouTube video transcripts without an API key.GPL 3.0