Skip to main content
Glama
plaguedoctor39

youtube-research

README.md
# YouTube Research MCP Server

An MCP server for YouTube integration with Claude Code — search videos, get metadata, fetch transcripts, explore channels, and more.

## Tools

| Tool | Description | API Quota |
|---|---|---|
| `youtube_search(query, max_results)` | Search videos by query | 100 + 1 |
| `youtube_video_info(video_url_or_id)` | Get video metadata by URL or ID | 1 |
| `youtube_transcript(video_url_or_id, lang)` | Fetch video subtitles with timestamps | 0 (no API) |
| `youtube_channel_info(channel_url_or_id)` | Get channel stats (subscribers, views, etc.) | 1 |
| `youtube_channel_videos(channel_url_or_id, max_results)` | List recent videos from a channel | 2 |
| `youtube_playlist(playlist_url_or_id, max_results)` | List videos in a playlist | 2 |
| `youtube_comments(video_url_or_id, max_results)` | Get top comments for a video | 1 |
| `youtube_trending(region_code, max_results)` | Get trending videos by country | 1 |

> YouTube Data API v3 free quota: 10,000 units/day. `youtube_search` is the most expensive at ~101 units per call.

## Setup

### 1. Get a YouTube API Key

1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create a project (or select an existing one)
3. Navigate to **APIs & Services → Library**
4. Find and enable **YouTube Data API v3**
5. Go to **APIs & Services → Credentials**
6. Click **Create Credentials → API Key**
7. Copy the key

### 2. Install Dependencies

```bash
cd /path/to/youtube_research
uv sync
```

### 3. Configure Claude Code

Copy the example config and add your API key:

```bash
cp .mcp.json.example ~/.claude/.mcp.json
```

Edit `~/.claude/.mcp.json` — replace `/path/to/youtube_research` and `YOUR_API_KEY_HERE` with actual values.

> **Important:** `.mcp.json` contains your API key — do not commit it to git.

Alternatively, place `.mcp.json` in the project root — the server will only be available when working from that directory.

### 4. Restart

Restart Claude Code — all 8 tools will become available.

## Remote Access (SSE)

To use with Claude.ai web chat or other remote MCP clients, run the server in SSE mode on a VPS:

```bash
YOUTUBE_API_KEY=your_key uv run server.py --sse --host 0.0.0.0 --port 8000
```

Options:
- `--sse` — enable SSE transport (default is stdio)
- `--host` — bind address (default: `127.0.0.1` — use `0.0.0.0` to expose externally)
- `--port` — port number (default: `8000`)

The server will be available at `http://your-vps:8000/sse`.

> **Security:** The SSE endpoint has no built-in authentication. For public deployment, use a reverse proxy (nginx) with token-based auth in front of it.

## Usage Examples

In Claude Code:

- "Find videos about Python asyncio" → `youtube_search`
- "Show info for https://youtu.be/dQw4w9WgXcQ" → `youtube_video_info`
- "Get subtitles for this video" → `youtube_transcript`
- "How many subscribers does @lexfridman have?" → `youtube_channel_info`
- "Show latest videos from @ThePrimeagen" → `youtube_channel_videos`
- "List videos in this playlist: https://youtube.com/playlist?list=..." → `youtube_playlist`
- "What are people saying about this video?" → `youtube_comments`
- "What's trending in Japan?" → `youtube_trending`

## License

[MIT](LICENSE)

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct YouTube resource or action: channel metadata, channel videos, video comments, playlist contents, search, transcript, trending, and video info. No semantic overlap.

Naming Consistency4/5

All tools share the 'youtube_' prefix and use descriptive noun phrases (e.g., channel_info, transcript). Minor inconsistency: 'youtube_comments' could be more specific like 'youtube_video_comments', but overall pattern is clear.

Tool Count5/5

8 tools is well-scoped for a YouTube research server. Each tool serves a clear purpose without unnecessary bloat, covering the main read-only operations needed for research.

Completeness4/5

The set covers the essential read-only operations for YouTube research: channels, videos, search, playlists, comments, transcripts, and trending. Missing operations like channel search or video statistics are minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues