About Youtube
Youtube is an MCP server that gives AI agents access to YouTube transcripts, video and channel search, channel video lists, and timestamped screenshots. It requires no Google API key or OAuth setup and can optionally remove sponsor segments from transcripts.
Key features
- 01Retrieve timestamped or plain-text transcripts
- 02Capture video frames at timestamps
- 03Search videos by relevance, date, rating, or views
- 04Find channels and list their videos
- 05Optionally remove sponsor segments
Use cases
- 01Ground research in expert talks and technical videos
- 02Find videos by topic and extract their transcripts
- 03Pair key video frames with transcript context
- 04Answer questions about specific video moments
MCP support
The server exposes YouTube transcript, search, channel, and video-frame tools to MCP clients. It can be added using its npm package and does not require Google API credentials.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
5Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| videoUrl | string | Yes | The full URL of the YouTube video from which to retrieve the transcript. This is the standard URL you would use to watch the video in a browser (e.g., 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'). |
| chunkSize | number | No | Optional: The maximum number of characters for each transcript chunk. If provided, the transcript will be split into chunks of this size. Useful for processing very long transcripts in smaller, manageable parts. |
| chunkBySilence | boolean | No | Optional: If true, the transcript will be chunked based on periods of silence in the audio. This can help in segmenting the transcript into more natural conversational or thematic breaks. |
| silenceThreshold | number | No | Optional: When chunkBySilence is true, this specifies the minimum duration of silence (in milliseconds) to consider as a chunk break. A higher value means longer pauses are required to create a new chunk. |
| skipSponsor | boolean | No | Optional: If true, removes sponsor/ad segments from the transcript using the SponsorBlock API. Fetches sponsor timestamps and filters out transcript text that falls within sponsored sections. |
| plainText | boolean | No | Optional: If true, returns the full transcript as a single plain text string without timestamp data. This uses less context than the default timestamped format and is better for summarization. If you later need timestamps, subsequent calls are cached. |
Details
From the project README@inlustris/youtube-mcp
Ground your AI agents in YouTube's best content — no API keys, zero config.
YouTube is the world's largest library of expert knowledge — tutorials, talks, reviews, deep dives. But AI agents can't watch videos.
This MCP server bridges that gap. It gives your agent access to YouTube transcripts, search, channel data, and video screenshots through simple tools. No Google API keys. No OAuth. No setup.
Built with FastMCP and youtubei.js.
Why YouTube for AI grounding?
Web search is noisy. YouTube content is ranked, reviewed, and curated — videos with high view counts, reputable creators, and timestamped transcripts that make it ideal for LLM context. Instead of scraping forums or blogs, your agent can pull the exact transcript from a relevant video, search across channels, or capture a screenshot of a specific moment.
This isn't another "AI skill" you have to maintain. It's a single npm package that works immediately.
What you get
| Tool | Purpose |
|---|---|
get_transcript | Video transcript with timestamps, or plain text via plainText. Optionally strip sponsor segments via skipSponsor. Transcripts are cached in-memory — subsequent fetches are instant. |
get_video_frame | Screenshot at any timestamp. Full quality when yt-dlp is available; falls back gracefully. |
search_videos | Search YouTube with sort by relevance, date, rating, view count. |
search_channels | Find channels by query. |
get_channel_videos | List every video from a channel. |
Install
npm install -g @inlustris/youtube-mcp
Add to any MCP client:
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["-y", "@inlustris/youtube-mcp@latest"]
}
}
}
Works with Claude Desktop, Cursor, opencode, VS Code Copilot, and any MCP-compatible agent.
Full-quality screenshots (optional)
get_video_frame works out of the box using YouTube storyboards (320×180). For full-resolution captures (720p, 1080p, 4K), install the system tools:
brew install yt-dlp ffmpeg
The tool detects yt-dlp automatically and upgrades itself — no config changes needed.
SponsorBlock
Pass skipSponsor: true to get_transcript. It fetches sponsor timestamps from the SponsorBlock API (no auth, free) and removes sponsored content from the transcript. Great for getting clean, ad-free video context.
Use cases
- Research agents: Pull transcripts from expert talks, conference presentations, or technical deep-dives instead of skimming blog posts.
- Content analysis: Search for relevant YouTube content by topic, then extract transcripts at scale.
- Visual grounding: Capture screenshots at key moments alongside transcripts for multimodal understanding.
- Learning tools: Let users ask questions about specific video timestamps and get grounded answers.
Development
npm install
npm run dev # hot-reload
npm test # 31 tests
npm run build # production bundle
src/
├── index.ts
├── server/server.ts
├── core/
│ ├── tools.ts
│ ├── resources.ts
│ └── services/
│ ├── youtube-service.ts
│ ├── sponsorblock-service.ts
│ └── screenshot-service.ts
└── __tests__/
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.