@striderlabs/mcp-youtube
# @striderlabs/mcp-youtube
MCP server connector for YouTube — search videos, manage playlists, subscriptions, and watch history via Playwright browser automation.
## Installation
```bash
npm install @striderlabs/mcp-youtube
```
## Configuration
Set environment variables:
```bash
export YOUTUBE_EMAIL="your-google-email@gmail.com"
export YOUTUBE_PASSWORD="your-password"
export YOUTUBE_HEADLESS="true" # Set to "false" to see browser
```
## Tools
| Tool | Description |
|------|-------------|
| `search_videos` | Search for videos by query |
| `get_video_details` | Get detailed info about a video |
| `get_channel_info` | Get channel information |
| `list_playlists` | List user playlists |
| `get_playlist_videos` | Get videos in a playlist |
| `subscribe_channel` | Subscribe to a channel |
| `get_subscriptions` | List subscribed channels |
| `get_watch_history` | Get watch history |
| `like_video` | Like a video |
| `add_to_playlist` | Add video to playlist |
## MCP Configuration
Add to your MCP config:
```json
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["@striderlabs/mcp-youtube"],
"env": {
"YOUTUBE_EMAIL": "your-email",
"YOUTUBE_PASSWORD": "your-password"
}
}
}
}
```
## License
MIT
TDQS
Scored across 10 tools
Each tool targets a distinct resource-action pair: videos, channels, playlists, subscriptions, watch history, and likes are cleanly separated. Even the read operations are unambiguous because they operate on different objects.
All tool names follow a consistent snake_case verb_noun pattern, such as search_videos, get_channel_info, subscribe_channel, and add_to_playlist. There are no mixed conventions or vague verbs.
Ten tools is well within the ideal 3–15 range and appropriately scopes YouTube search, channel browsing, playlist access, subscriptions, watch history, and engagement actions without being bloated.
Core browsing/search workflows are covered, but the action set has lifecycle gaps: there is no create_playlist or remove_from_playlist even though add_to_playlist exists, and no unsubscribe or unlike counterparts to subscribe_channel and like_video. Upload and comment operations are absent, leaving some user-action workflows with dead ends.