This is a Model Control Protocol (MCP) server that provides a tool to fetch transcripts from YouTube videos.
- Extracts video ID from any valid YouTube URL
- Returns plain-text transcripts (without timestamps)
- Uses the
youtube-transcript-api
library
# Install dependencies
pip install youtube-transcript-api "mcp[fastmcp]"
Run the server:
python main.py
The server exposes a single tool:
get_transcript
: Takes a YouTube URL and returns the video ID and transcript
Using the MCP client:
from mcp.client import Client
client = Client(transport="stdio")
response = client.call("get_transcript", {"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"})
print(f"Video ID: {response['video_id']}")
print(f"Transcript: {response['transcript'][:100]}...") # First 100 chars
The server handles these error cases:
- Invalid YouTube URLs
- Videos without available transcripts