Provides tools to extract manual or auto-generated transcripts from YouTube videos, manage transcript history, and retrieve video statistics.
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
→
Quick Start
1. Get Your API Key
Sign up at youtubetranscript.dev and grab your API key from the Dashboard.
2. Connect Your Client
Connect to https://mcp.youtubetranscript.dev with header x-api-token: YOUR_API_KEY. No local setup required.
See QUICK_TEST.md for step-by-step setup and testing.
Run locally (optional): npm install && npm run build && npm run start:http — then connect to http://localhost:8080.
MCP Connection Settings
Claude Code
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Cursor
.cursor/mcp.json:
Windsurf
~/.codeium/windsurf/mcp_config.json:
VS Code + Copilot
settings.json:
Cline
Add to your Cline MCP config (format may vary by Cline version):
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 |
|
| Request timeout in ms |
|
| HTTP server port |
|
| Enable debug logging |
|
Note: The API key is not set in server env for HTTP mode. Users provide it via x-api-token or Authorization: Bearer when connecting. For stdio mode, set YTSM_API_KEY in env.
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.
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).
Run from the project directory after npm run build. For globally installed package, use the path to dist/index.js in the package.
Development
Quick test all tools (requires YTSM_API_KEY in env):
See QUICK_TEST.md for full testing instructions.
Links
License
MIT License — see LICENSE for details.