Mcp Server Youtube — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server Youtube (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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](https://docs.astral.sh/uv/):
{
"mcpServers": {
"youtube": {
"command": "uvx",
"args": ["mcp-server-youtube"],
"env": {
"YOUTUBE_API_KEY": "YOUR_API_KEY"
}
}
}
}With [rvx](https://github.com/vaporif/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-youtubeWith cargo:
cargo install mcp-server-youtubeFrom releases:
Download a prebuilt binary from GitHub Releases.
</details>
YOUTUBE_API_KEY=your_key mcp-server-youtube --transport streamable-http --port 3000The 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 --allGPL-3.0-or-later
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.