Skip to main content
Glama
README.md
# youtube-mcp

FastMCP server for YouTube — videos, channels, playlists, comments, and analytics.

Covers the YouTube Data API v3 and YouTube Analytics API with 25 tools.

## Setup

### 1. Enable APIs in GCP Console

- [YouTube Data API v3](https://console.cloud.google.com/apis/library/youtube.googleapis.com)
- [YouTube Analytics API](https://console.cloud.google.com/apis/library/youtubeanalytics.googleapis.com)

### 2. Configure credentials

```bash
mkdir -p ~/.config/youtube-mcp
cp ~/.config/google-docs-mcp/credentials.json ~/.config/youtube-mcp/credentials.json
```

### 3. Run OAuth flow

```bash
cd ~/youtube-mcp && uv run python -m youtube_mcp.auth
```

This opens a browser for consent. The token is saved to `~/.config/youtube-mcp/token.json`.

### 4. Register with Claude Code

```bash
claude mcp add --scope user youtube -- uvx --from ~/youtube-mcp youtube-mcp
```

### 5. Restart Claude Code

The `youtube` server should appear with 25 tools.

## Tools (25)

### Videos (6)
| Tool | Quota | Description |
|------|-------|-------------|
| `search_videos` | 100 | Search YouTube by query |
| `get_video_details` | 1 | Get metadata for video(s) by ID |
| `upload_video` | 1600 | Upload video file with metadata |
| `update_video` | 50 | Update video title/description/tags |
| `delete_video` | 50 | Delete a video |
| `get_captions` | 200 | List caption tracks for a video |

### Channels (2)
| Tool | Quota | Description |
|------|-------|-------------|
| `get_my_channel` | 1 | Get authenticated channel info |
| `list_channel_videos` | 100 | List videos on a channel |

### Playlists (6)
| Tool | Quota | Description |
|------|-------|-------------|
| `list_playlists` | 1 | List playlists (mine or by channel) |
| `create_playlist` | 50 | Create new playlist |
| `update_playlist` | 50 | Update playlist metadata |
| `delete_playlist` | 50 | Delete a playlist |
| `list_playlist_items` | 1 | List videos in a playlist |
| `add_to_playlist` | 50 | Add video to playlist |

### Comments (4)
| Tool | Quota | Description |
|------|-------|-------------|
| `list_comments` | 1 | List comments on a video |
| `add_comment` | 50 | Post a top-level comment |
| `reply_to_comment` | 50 | Reply to a comment |
| `delete_comment` | 50 | Delete a comment |

### Subscriptions (3)
| Tool | Quota | Description |
|------|-------|-------------|
| `list_subscriptions` | 1 | List my subscriptions |
| `subscribe` | 50 | Subscribe to a channel |
| `unsubscribe` | 50 | Unsubscribe |

### Analytics (2)
| Tool | Quota | Description |
|------|-------|-------------|
| `get_channel_analytics` | — | Channel-level metrics (views, watch time, subs) |
| `get_video_analytics` | — | Per-video metrics |

### Misc (2)
| Tool | Quota | Description |
|------|-------|-------------|
| `list_categories` | 1 | List video categories for a region |
| `set_thumbnail` | 50 | Upload custom thumbnail |

## Quota

YouTube Data API daily quota is 10,000 units. Key costs:
- **Search:** 100 units per call
- **Upload:** 1,600 units per call
- **List operations:** 1 unit
- **Insert/Update/Delete:** 50 units

## License

MIT

TDQS

A3.7/5.0

Scored across 25 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific YouTube resources (videos, playlists, comments, analytics, etc.), with clear boundaries. However, some potential overlap exists between 'list_channel_videos' and 'search_videos' when searching within a channel, though descriptions help differentiate them. Overall, ambiguity is minimal.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout (e.g., add_comment, create_playlist, delete_video, get_video_details, list_playlists, update_playlist, upload_video). All tools use snake_case with clear action-object naming, making them predictable and readable.

Tool Count3/5

With 25 tools, the count feels heavy for a YouTube API server, though not extreme. It covers many YouTube features comprehensively, but some tools might be niche (e.g., list_categories, get_captions), making the set borderline for typical agent use. It's reasonable but could be streamlined.

Completeness5/5

The tool set provides excellent coverage of the YouTube domain, including CRUD operations for videos, playlists, comments, and subscriptions, plus analytics, search, and upload capabilities. There are no obvious gaps; agents can perform full lifecycles for core resources without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues