Skip to main content
Glama
efikuta

YouTube Knowledge MCP

by efikuta
README.md
## YouTube Knowledge MCP

Production-ready Model Context Protocol (MCP) server that turns YouTube into a queryable knowledge source. Search, fetch details, analyze transcripts/comments, and power AI workflows with optional LLMs. Built for Claude Desktop and other MCP clients.

### Why this is special

- **Fast + quota-aware** YouTube API access with caching
- **Batteries-included tools** for search, details, trending, channels
- **Optional AI superpowers** (OpenAI/Anthropic) for summaries, topics, chapters, learning paths, comment intents, and knowledge graphs
- **Zero noise**: minimal config, clear logs, safe defaults

### Requirements

- Node.js 18+
- YouTube Data API v3 key
- Optional: OpenAI and/or Anthropic API keys for AI tools

### Install

```bash
npm install
```

### Configure environment

Create `.env` (or set variables in your MCP client config). You can start from the example:

```bash
cp env.example .env
```

Then set values in `.env`:

```env
# Required
YOUTUBE_API_KEY=your_youtube_api_key

# Optional AI providers (enables AI tools: analyze_video_content, generate_learning_path, analyze_comment_intents, simplify_video_transcript, generate_video_chapters, generate_knowledge_graph)
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key

# Optional tuning
LOG_LEVEL=info
MAX_DAILY_QUOTA=8000
REDIS_URL= # e.g. redis://localhost:6379
REDIS_HOST=
REDIS_PORT=
REDIS_PASSWORD=
```

An `env.example` with placeholders is provided. Do not commit your `.env`.

### Build and run

```bash
# Development (watch)
npm run dev

# Production
npm run build
npm start
```

### Connect to Claude Desktop (example)

Add to your Claude Desktop configuration with absolute paths:

```json
{
  "mcpServers": {
    "youtube-knowledge": {
      "command": "node",
      "args": ["/absolute/path/to/youtube-knowledge-mcp/build/index.js"],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key",
        "OPENAI_API_KEY": "optional_openai",
        "ANTHROPIC_API_KEY": "optional_anthropic",
        "LOG_LEVEL": "info"
      }
    }
  }
}
```

Restart Claude Desktop after editing the config.

### Available tools

- `youtube_search` — Search videos with filters
- `get_video_details` — Video metadata, transcript (best-effort), comments
- `get_trending_videos` — Most popular by region/category
- `search_channels` — Channel search with optional stats
- `analyze_video_content` — AI topics/sentiment/questions/summary/keywords
- `generate_learning_path` — AI learning path for a topic
- `analyze_comment_intents` — Classify viewer intents
- `simplify_video_transcript` — ELI5-style simplification
- `generate_video_chapters` — AI chapters with timestamps
- `generate_knowledge_graph` — Cross-video concept graph

Note: AI tools are available only if an AI provider key is configured.

### Quotas and safety

- Enforces daily quota (default 8000 units) and cost-aware AI usage
- Logs to stderr (does not break MCP stdio)
- Caching reduces API and token spend; optional Redis supported

### Troubleshooting

- Missing key: ensure `YOUTUBE_API_KEY` is set
- Quota exceeded: lower usage, enable caching, or raise `MAX_DAILY_QUOTA`
- Claude cannot connect: verify absolute path to `build/index.js` and restart

### License

MIT
By Efi Kuta

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific YouTube operations: content analysis, search, metadata retrieval, and content transformation. There is no overlap in functionality; for example, analyze_video_content focuses on video insights while simplify_video_transcript handles transcript simplification, making misselection unlikely.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern with snake_case throughout, such as analyze_comment_intents and generate_video_chapters. The only minor deviation is youtube_search, which uses the platform name as a prefix instead of a verb, but it still fits the overall readable convention.

Tool Count5/5

With 10 tools, the count is well-scoped for a YouTube knowledge server, covering a broad range of functionalities from search and analysis to content generation. Each tool earns its place by addressing distinct aspects of video and channel processing without feeling excessive or insufficient.

Completeness4/5

The tool set provides comprehensive coverage for YouTube knowledge extraction, including search, analysis, metadata retrieval, and content transformation. Minor gaps exist, such as the lack of tools for managing playlists or user interactions, but core workflows for learning and insights are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues