youtube-mcp
# 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
Scored across 25 tools
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.
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.
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.
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.