mcp-server-youtube
Enables AI assistants to search videos, read channels, browse playlists, fetch comments, and get transcripts from YouTube using the YouTube Data API v3 and InnerTube API for captions.
README
mcp-server-youtube
A Rust MCP server for YouTube. Search videos, read channels, browse playlists, fetch comments, and get transcripts — all from your AI assistant.
Why this one?
- Full YouTube Data API v3 coverage — videos, channels, playlists, comments, categories, trending, search with all filters and sorting options
- Working transcripts — uses rustypipe (InnerTube API) for reliable subtitle/caption extraction, including auto-generated captions. No API key quota consumed for transcripts
- Single binary, zero runtime dependencies — written in Rust, starts instantly
- Typed filter enums — search filters (duration, definition, license, etc.) are exposed as typed enums in the JSON schema, so AI models know exactly which values are valid without guessing
Tools
Videos
| Tool | Description |
|---|---|
videos_getVideo |
Get video details (snippet, statistics, content details) |
videos_searchVideos |
Search videos with filters for duration, definition, date range, region, captions, license, category, and more. Supports sorting by relevance, date, rating, or view count |
videos_getCategories |
List video categories for a region |
videos_getTrending |
Get trending/most popular videos for a region, optionally filtered by category |
Channels
| Tool | Description |
|---|---|
channels_getChannel |
Get channel info and statistics by channel ID |
channels_getByHandle |
Look up a channel by its handle (e.g. @shura_stone) |
channels_search |
Search for channels by name |
channels_listVideos |
List videos from a channel (by date) with pagination |
Playlists
| Tool | Description |
|---|---|
playlists_getPlaylist |
Get playlist info |
playlists_getPlaylistItems |
List videos in a playlist with pagination |
Comments
| Tool | Description |
|---|---|
comments_getComments |
Get comment threads on a video with pagination |
Transcripts & Captions
| Tool | Description |
|---|---|
transcripts_getTranscript |
Get video transcript/subtitles. Works with both auto-generated and manual captions. Returns plain text by default; set include_timestamps for per-segment timing. Uses rustypipe (InnerTube API) — no API key quota consumed |
transcripts_getBatch |
Fetch transcripts for multiple videos in one call with concurrent fetching. No API key quota consumed |
transcripts_listLanguages |
List available subtitle/caption languages for a video |
Setup
Get a YouTube API Key
- Go to Google Cloud Console
- Create a project (or select an existing one)
- Enable the YouTube Data API v3
- Create an API key under Credentials
Configuration
| Environment Variable | CLI Flag | Default | Description |
|---|---|---|---|
YOUTUBE_API_KEY |
--youtube-api-key |
required | YouTube Data API v3 key |
YOUTUBE_TRANSCRIPT_LANG |
--transcript-lang |
en |
Default transcript language |
MCP_TRANSPORT |
--transport |
stdio |
Transport: stdio or streamable-http |
HOST |
--host |
127.0.0.1 |
HTTP bind address |
PORT |
--port |
3000 |
HTTP port |
YOUTUBE_TRANSCRIPT_CONCURRENCY |
--transcript-concurrency |
50 |
Max concurrent transcript fetches for batch operations |
The API key is stored as a SecretString and never appears in logs or debug output.
Usage
Claude Desktop / Claude Code
With uvx:
{
"mcpServers": {
"youtube": {
"command": "uvx",
"args": ["mcp-server-youtube"],
"env": {
"YOUTUBE_API_KEY": "YOUR_API_KEY"
}
}
}
}
With rvx:
{
"mcpServers": {
"youtube": {
"command": "rvx",
"args": ["mcp-server-youtube"],
"env": {
"YOUTUBE_API_KEY": "YOUR_API_KEY"
}
}
}
}
<details> <summary>Other installation methods</summary>
With Nix:
nix run github:vaporif/mcp-server-youtube
With cargo:
cargo install mcp-server-youtube
From releases:
Download a prebuilt binary from GitHub Releases.
</details>
HTTP Transport
YOUTUBE_API_KEY=your_key mcp-server-youtube --transport streamable-http --port 3000
The server listens on http://127.0.0.1:3000/mcp.
Debugging
Enable debug logging to see tool invocations:
RUST_LOG=debug mcp-server-youtube
Development
# Enter dev shell (requires Nix)
nix develop
# Build
cargo build
# Test
cargo test
# Lint
cargo clippy --workspace -- -D warnings
# Format
cargo fmt --all
License
GPL-3.0-or-later
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。