Channel Brains
Channel Brains is a local MCP server that indexes publicly available YouTube channel captions into a searchable SQLite FTS5 database, operating entirely locally without external APIs or cloud services.
Create and manage brains:
create_brainindexes a channel by URL, selecting up to 50 videos by view count using yt-dlp. Ingestion is resumable, anddelete_brainpermanently removes a brain with confirmation and active-job checks.Monitor progress:
get_brain_statusprovides real-time counts (discovered, pending, processing, indexed, skipped, failed, active video) for one or all brains, with a blocking wait mode that returns when indexing reaches a terminal state.List videos:
list_brain_videospaginates through a brain's videos, showing status, view counts, caption language/source, and YouTube URLs.Search captions:
search_brainperforms lexical FTS5 full-text search across all indexed captions, returning ranked, timestamped results with direct links to the exact moment in the video.Retrieve transcripts:
get_video_transcriptpages through all caption chunks for a video, each with text, time range, and timestamped YouTube link.Local and private: All data stays on your machine; no API keys, database servers, or cloud dependencies.
Robust ingestion: Handles YouTube rate limits gracefully, supports authenticated cookie sources, and resumes per-video without duplication.
Client integration: Easily installed in AI coding workspaces like ZCode, Claude Code, Codex, Hermes, OpenCode via plugins or MCP configuration.
Indexes publicly available YouTube captions into a searchable local SQLite database, providing tools to create channel brains, search caption chunks with timestamped citations back to the original videos, and retrieve video transcripts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Channel BrainsCreate a brain for https://www.youtube.com/@OpenAI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Channel Brains
Tell your AI to install it. It does.
Channel Brains is a local MCP server that indexes the public captions of any YouTube channel into a searchable database on your own machine — then lets your AI coding agent query it with timestamped citations back to the exact second of video.
No API key. No cloud. No account. It runs entirely on your computer.
Paste this into your local AI coding agent (Codex, Claude Code, ZCode, or Hermes):
Get this on yourself: https://github.com/Pu11en/channel-brains
That's the whole instruction. The agent identifies its own client, installs the right plugin, and verifies the six tools. You don't need to know what MCP or a plugin marketplace is.
Why
Every podcast, lecture, and dev stream is a library of knowledge — but video is unsearchable. Channel Brains turns a channel's spoken content into a database your agent can cite. Ask a question, get the answer with a link to the exact moment someone said it.
Related MCP server: youtube-mcp
See it
Point Channel Brains at a channel, wait for it to index, then search. Here it is searching Matt Pocock's channel for "generics" — note the timestamped citation back to the source video:
$ channel-brains search_brain --brain-id 8c45c891e781 --query "generics"
rank 1 · Generics: The most intimidating TypeScript feature
https://youtu.be/dLPgQRbVquo?t=0 (0:00)
"…we are going to be focusing on 10 tips to make you a master of
typescript generics… they give you the power to make abstractions, to make
your code a lot more DRY…"
rank 2 · A Complete Guide To Vercel's AI SDK
https://youtu.be/mojZpktAiYQ?t=965 (16:05)
"…use generateObject instead of generateText… we pass it a schema with a
Zod schema…"
rank 3 · Generics: The most intimidating TypeScript feature
https://youtu.be/dLPgQRbVquo?t=45 (0:45)Every result links to the precise second the words were spoken. Your agent gets grounded, quotable evidence — not a hallucination.
How it works
You give your agent a channel URL.
Channel Brains ingests the public captions via
yt-dlp(no API key), selecting up to 50 videos by view count, and stores them in a local SQLite FTS5 database.Ingestion is resumable and rate-limit-aware — it pauses cleanly on HTTP 429 and picks up where it left off.
Your agent searches that database and returns matches with timestamped YouTube links.
It is deliberately small and local:
No hosted service, Docker, browser dashboard, embeddings, or LLM runtime
No YouTube API key, database server, or cloud account
One local SQLite database per user, protected by a cross-process ingestion lock
One channel ingestion job at a time, with resumable per-video progress
The only network requests are public YouTube requests made by
yt-dlpduring ingestion
Install
The easy way — paste this to your local AI coding agent and let it install itself:
Get this on yourself: https://github.com/Pu11en/channel-brains
The manual way — requires uv. MCP clients launch the pinned production release with:
uvx --from "git+https://github.com/Pu11en/channel-brains@v0.1.4" channel-brains-mcpVerify the installation without starting the MCP server or contacting YouTube:
uvx --from "git+https://github.com/Pu11en/channel-brains@v0.1.4" channel-brains-mcp --checkA successful check prints one JSON object with "status": "ok", "transport": "stdio", and "tool_count": 6.
The server communicates only through standard input and output. Do not run it as an HTTP service.
Note: Installation requires a local AI coding agent (Codex, Claude Code, ZCode, or Hermes) that can run commands on your computer. A web-only chat (ChatGPT, Claude.ai) cannot install a local MCP server.
The six tools
Channel Brains exposes exactly these six tools to your agent:
Tool | Purpose |
| Validate a channel URL, persist a brain, and start local ingestion. |
| Read a snapshot or wait locally for completion, with progress and no YouTube requests. |
| Page through indexed, skipped, pending, and failed video records. |
| Search local FTS5 caption chunks and return timestamped YouTube citations. |
| Page through stored caption chunks for one indexed video. |
| Remove a completed brain and all its local records. Active ingestion is refused. |
First workflow
Add the server to an MCP client using the install method above.
Call
create_brainwith a supported YouTube channel URL, such ashttps://www.youtube.com/@OpenAI.Immediately call
get_brain_statusonce withwait_until_terminal=trueand keep the same turn active until it returns.Use
search_brainto retrieve timestamped caption matches.
The initial ingestion scans the complete channel listing so it can select up to 50 videos by view count. Caption availability and YouTube rate limits determine how much can be indexed.
Configuration
Local data and privacy
By default, Channel Brains stores its SQLite database and lock file in the platform's user-data directory:
Windows:
%LOCALAPPDATA%\channel-brains-mcpmacOS:
~/Library/Application Support/channel-brains-mcpLinux:
~/.local/share/channel-brains-mcp
Set CHANNEL_BRAINS_HOME before launching the MCP server to use another location:
CHANNEL_BRAINS_HOME=/path/to/channel-brains-data uvx --from "git+https://github.com/Pu11en/channel-brains@v0.1.4" channel-brains-mcpCaptions and search indexes stay on the local machine. The only network requests are
public YouTube requests made by yt-dlp and caption URL retrieval during ingestion.
Persistent YouTube rate limits
Channel Brains first uses paced anonymous requests and bounded retries. If YouTube keeps returning HTTP 429 from your network, explicitly opt in to one of yt-dlp's authenticated cookie sources in the MCP server environment:
CHANNEL_BRAINS_YOUTUBE_COOKIES_FROM_BROWSER=firefoxOr provide a Netscape-format cookie file:
CHANNEL_BRAINS_YOUTUBE_COOKIES_FILE=/private/path/youtube-cookies.txtSet only one cookie source. Browser cookies grant the server the same YouTube session
access as that browser; keep cookie files private and never commit them. A network
proxy can be configured separately with CHANNEL_BRAINS_YOUTUBE_PROXY, using an
http, https, socks4, socks5, or socks5h URL. After changing the MCP
environment, restart the server and call create_brain again with the same channel
URL to resume.
Manual MCP client configuration
The automated install above covers Codex, Claude Code, ZCode, and Hermes. For any other MCP client, the generic server definition is:
{
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Pu11en/channel-brains@v0.1.4",
"channel-brains-mcp"
]
}Use a startup/connect timeout of at least 60 seconds. The first uvx run downloads
the pinned package and can be slower than later starts.
Per-client configuration snippets (Hermes YAML, Codex TOML, ZCode/OpenCode JSON) are
in docs/clients.md.
For AI agents
The automated agent installation flow is fully specified in
AGENT_INSTALL.md. If you are an agent that has been asked to
install this repository, read that file completely and execute the matching client
procedure. Do not start YouTube ingestion during installation; wait for an explicit
channel URL and indexing request.
Development and verification
uv sync --extra dev --locked
uv run ruff check .
uv run pytest
uv buildThe default test suite is fully offline. The manual live release gate exercises a real channel through caption ingestion and timestamped local search:
uv run pytest -m live tests/test_live_youtube.pyOverride the default channel when needed:
CHANNEL_BRAINS_LIVE_CHANNEL=https://www.youtube.com/@OpenAI uv run pytest -m live tests/test_live_youtube.pyYouTube requests are paced. HTTP 429 responses receive bounded retries and then pause
the brain without losing completed work. Call create_brain again later with the same
channel URL to resume.
Limitations
Public YouTube captions can be unavailable, expired, restricted, or rate-limited. No local client can guarantee that an external YouTube request succeeds 100% of the time; Channel Brains guarantees bounded behavior, resumable progress, and explicit status when YouTube refuses a request.
Search is lexical SQLite FTS5 search, not semantic search or an answer-generation system.
The server indexes captions only. It does not download videos, reuse video footage, or create a knowledge graph.
A channel can contain many videos. The first local ingestion may take time.
License
MIT. © Drew Pullen. See LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server (stdio + HTTP/SSE) that fetches video transcripts/subtitles via yt-dlp, with pagination for large responses. Supports YouTube, Twitter/X, Instagram, TikTok, Twitch, Vimeo, Facebook, Bilibili, VK, Dailymotion. Whisper fallback — transcribes audio when subtitles are unavailable (local or OpenAI API). Works with Cursor and other MCP host819MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server for extracting YouTube video transcripts, metadata, and performing visual analysis using Gemini Vision or local Whisper models. It enables users to process video content through various tools for subtitle retrieval and frame analysis.20MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for fetching YouTube video transcripts without an API key.GPL 3.0
- FlicenseNot gradedqualityCmaintenanceA Streamable HTTP MCP server that fetches YouTube transcripts and lets an LLM semantically search within them.
Related MCP Connectors
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pu11en/channel-brains'
If you have feedback or need assistance with the MCP directory API, please join our Discord server