loading…
Search for a command to run...
loading…
Enables AI assistants to search videos, read channels, browse playlists, fetch comments, and get transcripts from YouTube using the YouTube Data API v3 and Inne
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.
A Rust MCP server for YouTube. Search videos, read channels, browse playlists, fetch comments, and get transcripts — all from your AI assistant.
| 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 |
| 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 |
| Tool | Description |
|---|---|
playlists_getPlaylist |
Get playlist info |
playlists_getPlaylistItems |
List videos in a playlist with pagination |
| Tool | Description |
|---|---|
comments_getComments |
Get comment threads on a video with pagination |
| 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 |
| 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.
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"
}
}
}
}
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.
YOUTUBE_API_KEY=your_key mcp-server-youtube --transport streamable-http --port 3000
The server listens on http://127.0.0.1:3000/mcp.
Enable debug logging to see tool invocations:
RUST_LOG=debug mcp-server-youtube
# Enter dev shell (requires Nix)
nix develop
# Build
cargo build
# Test
cargo test
# Lint
cargo clippy --workspace -- -D warnings
# Format
cargo fmt --all
GPL-3.0-or-later
Выполни в терминале:
claude mcp add mcp-server-youtube -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.