Extracts transcripts from YouTube videos, builds a searchable knowledge base with timestamped links to exact video moments, and enables hybrid semantic and keyword search across video content with tagging and organization capabilities.
YouTube Knowledge Base MCP
An MCP server that builds a searchable knowledge base from video content.
Why
We consume more content than we can remember. Videos watched, podcasts heard, lectures attended—the information fades. This project builds a searchable knowledge base from that content. Start with YouTube, expand to other sources.
The key: it's an MCP server. Plug it into any LLM (Claude, GPT, local models) and your AI assistant can search everything you've ever watched. Your memory, augmented.
Features
Extract transcripts from YouTube videos
Hybrid search (semantic + keyword)
Timestamped links to exact video moments
Organize with tags and notes
Multiple embedding providers (Voyage, OpenAI, local)
Installation
Requirements
Python 3.10+
uv package manager
One of: Voyage API key, OpenAI API key, or local Ollama
Setup
Environment
Add your API key (at least one required):
Usage
With Claude Desktop (recommended)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Then ask Claude: "Add this video to my knowledge base: [URL]"
With Python
See demo.ipynb for interactive examples.
MCP Tools
4 workflow-based tools designed for LLM efficiency:
Tool | Description |
| Add a video to the knowledge base (with optional tags/summary) |
| Update tags and summary for a source |
| Browse sources, list tags, or get statistics |
| Hybrid semantic + keyword search with reranking |
Developer CLI
Administrative commands for database management (not exposed to LLMs):
Run uv run kb --help for all commands.
Configuration
Data Location
By default, data is stored in your OS's standard application data directory:
macOS:
~/Library/Application Support/youtube-kb/Linux:
~/.local/share/youtube-kb/Windows:
%APPDATA%/youtube-kb/
Note: If you have existing data in
./data/from a previous version, it will continue to be used automatically.
To use a custom location, set the YOUTUBE_KB_DATA_DIR environment variable:
Or in Claude Desktop config:
Moving Your Database
To move your database to a new location (e.g., Dropbox):
Then follow the printed instructions to set the environment variable.
Architecture
Tech Stack
LanceDB - Vector database with hybrid search
yt-dlp - YouTube transcript extraction
Embeddings - Voyage (default), OpenAI, BGE, Ollama
FastMCP - MCP server framework
License
MIT