YouTube Transcript MCP Server
Pricing
from $0.01 / 1,000 results
YouTube Transcript MCP Server
MCP server for YouTube transcript retrieval, search, and metadata extraction using Cheerio. Provides tools: get_transcript, search_videos, get_video_info.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Jordan C
Maintained by CommunityActor stats
0
Bookmarked
0
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
An MCP (Model Context Protocol) server for YouTube transcript retrieval, search, and metadata extraction — built with Cheerio (no Puppeteer/Playwright).
Tools
get_transcript
Fetch captions/transcript from a YouTube video.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
video_url | string | ✅ | Full YouTube video URL (e.g. https://www.youtube.com/watch?v=dQw4w9WgXcQ) |
Output: Timestamped transcript with language info.
search_videos
Search YouTube by keyword.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
query | string | ✅ | Search keyword or phrase |
max_results | number | ❌ | Maximum results (default: 10, max: 50) |
Output: Titles, URLs, descriptions, and view counts.
get_video_info
Get detailed video metadata.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
video_url | string | ✅ | Full YouTube video URL |
Output: Title, author, duration, views, publish date, category, description.
Usage
With an MCP Client (Claude Desktop, etc.)
Add to your MCP client configuration:
{"mcpServers": {"youtube-transcript": {"command": "node","args": ["path/to/mcp-youtube-transcript/dist/index.js"]}}}
Direct invocation (stdio)
# List toolsecho '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.js# Get transcriptecho '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_transcript","arguments":{"video_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}}}' | node dist/index.js# Search videosecho '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_videos","arguments":{"query":"MCP server tutorial","max_results":5}}}' | node dist/index.js# Get video infoecho '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_video_info","arguments":{"video_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}}}' | node dist/index.js
Deployment to Apify
Prerequisites
- Apify CLI installed
- Apify account logged in (
apify login)
Push to Apify
$apify push
The actor will be published at https://console.apify.com/actors/reverberant_equality/mcp-youtube-transcript.
Run on Apify
$apify run
Or via the Apify Console web interface.
Local Development
# Install dependenciesnpm install# Build TypeScriptnpm run build# Start the servernpm start
Architecture
- TypeScript — fully typed, compiled with
tsc - Express-based MCP SDK — uses
@modelcontextprotocol/sdkwith stdio transport - Cheerio — lightweight HTML/XML parsing for scraping YouTube pages (no headless browser needed)
- Axios — HTTP client for fetching pages and caption XML
- Docker — multi-stage build for minimal production image
How It Works
The server scrapes YouTube's public pages using Cheerio:
- Transcripts — Fetches the video page, extracts
ytInitialPlayerResponseJSON, finds caption tracks, fetches the XML transcript, and formats it with timestamps. - Search — Fetches YouTube search results page, extracts
ytInitialDataJSON, and parses video renderers. - Info — Uses the same
ytInitialPlayerResponseto extract detailed metadata.
No API keys are required — all data is obtained from publicly available YouTube pages.
License
MIT