YouTube MCP server for search, transcripts, frames, comments, channels, and local semantic corpora.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Self-hosted YouTube research for AI agents.
Search videos and channels, read transcripts and comments, extract timestamped frames, and build private semantic-search corpora β through 17 MCP tools.
Thanks to everyone already using tube-bridge. If it saves you time, consider starring the repository β it helps others discover the project and signals that publishing more work like this is worthwhile.
The simplest setup uses uvx, which runs the published PyPI package in an isolated environment:
Normally your MCP client launches that command for you. Choose your client below.
[!NOTE] tube-bridge requires Python 3.12 or newer. An API key is optional.
ffmpegis needed only foryoutube_get_frame, and the first embedding operation may download the local model.
Open Settings β Developer β Edit Config and add:
Restart Claude Desktop after saving the configuration.
Create .cursor/mcp.json in your project, or add the server to your user-level MCP configuration:
Create .vscode/mcp.json:
Pi can load the package-relative adapter and the canonical tube-bridge-research skill from the same Git source:
This registers one status tool plus all 17 MCP tools with the tube_bridge_ prefix. The adapter reads the existing plugin.json and mcp.json, launches only the local stdio runtime, preserves bounded text and image content, and forwards only an allowlisted child-process environment.
The Pi package manager installs the Node adapter dependency but does not install Python or ffmpeg. Ensure the python3 visible to Pi is Python 3.12+ with the tube-bridge dependencies installed; install ffmpeg separately to use youtube_get_frame. By default, Pi-managed state lives under the platform data directory; set TUBE_BRIDGE_PI_DATA to move that root. An explicit TUBE_BRIDGE_CACHE still takes precedence for the runtime databases. The optional live frame gate is /tube-bridge-selftest frame.
Remove the package with:
If a desktop client cannot find uvx, replace "uvx" with the absolute path returned by which uvx on macOS/Linux or where.exe uvx on Windows.
Ask your agent:
Search YouTube for recent videos about local-first AI agents. Read the transcript of the strongest result, add it to a corpus named
local-agents, find the section discussing memory, return the timestamped source link, and extract a frame from that moment.
The agent can complete that request with this tool sequence:
Add more videos with corpus_add, then use corpus_search to search across all of their transcripts at once.
| Tool | YouTube API key | What it does |
|---|---|---|
youtube_search | Optional | Search videos with date, channel, duration, and ordering filters |
youtube_get_video_info | Optional | Get title, duration, views, channel, description, and tags |
youtube_get_trending | Optional | Get currently trending videos |
youtube_get_channel_videos | No | Get recent uploads from a channel URL or @handle |
youtube_get_playlist | No | Get videos from a playlist |
youtube_get_transcript | No | Get a transcript, optionally with [MM:SS] timestamps |
youtube_get_frame | No | Return one ephemeral JPEG near an integer-millisecond timestamp |
youtube_get_available_languages | No | List manual and auto-generated subtitle tracks |
youtube_get_comments | Required | Get top-level comments with likes and reply counts |
youtube_search_channels | Required | Search channels and filter by subscriber count |
youtube_get_channel_info | Required | Get channel statistics, country, and keywords |
corpus_create | No | Create a named local corpus |
corpus_add | No | Fetch, chunk, and locally embed a video transcript |
corpus_search | No | Semantically search a corpus with timestamped results |
corpus_list | No | List corpora with video and chunk counts |
corpus_delete | No | Permanently delete a corpus and its vectors |
tube_bridge_help | No | Read runtime documentation and known limitations |
No means no YouTube Data API key is needed; network access to YouTube may still be required. Search, video information, and trending work without a key through yt-dlp and upgrade to Data API v3 when a key is configured.
A YouTube Data API v3 key unlocks comments, channel search, and channel details. It also improves search, video information, and trending reliability.
Create a key in Google Cloud Console, enable YouTube Data API v3, and expose it to the process launching tube-bridge:
Keep keys out of committed MCP configuration files. Use your client's secret/environment support where available.
Corpus storage and embedding inference are local to the machine running tube-bridge.
~/.tube_bridge/corpus.dbSet TUBE_BRIDGE_CACHE to move both corpus and cache databases:
The embedding model may be downloaded on first use. After the assets are available, embedding inference does not require an external model API.
youtube_get_frame requires ffmpeg on PATH; the Docker image already includes it.
Each call downloads a short temporary section around timestamp_ms, returns one bounded JPEG as MCP ImageContent, and removes the temporary media before returning. It does not create a frame or clip library.
The health endpoint is http://localhost:8080/health; the Streamable HTTP endpoint is http://localhost:8080/mcp.
Registry name: io.github.TheWhiteWater/tube-bridge
Registry-aware clients can install the PyPI distribution with uvx and launch the stdio server without a hosted intermediary.
For an HTTP instance you operate:
Protect remote MCP routes by setting a server-side Bearer key:
Then configure a header-capable client:
/health remains public. /mcp, /sse, and /messages require the Bearer key when TUBE_BRIDGE_AUTH_KEY is set. Legacy SSE is available at /sse for clients that still need it.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/tube-bridge)<a href="https://allmcps.com/mcp/tube-bridge"><img src="https://allmcps.com/api/badge/tube-bridge?style=directory" alt="Tube Bridge on AllMCPs" /></a>