yt-studio-mcp
v0.1.1
Published
YouTube upload and management tools for podcast production workflows
Maintainers
Readme
yt-studio-mcp
MCP server for YouTube video management -- upload, thumbnails, captions, playlists, and livestream scheduling via the YouTube Data API.
Installation
Run directly with npx:
npx yt-studio-mcpOr install globally:
npm install -g yt-studio-mcp
yt-studio-mcpConfiguration
Google Cloud OAuth Setup
This server uses OAuth 2.0 to access the YouTube Data API on your behalf.
- Go to Google Cloud Console
- Create a new project (or select an existing one)
- Enable the YouTube Data API v3:
- Navigate to APIs & Services > Library
- Search for "YouTube Data API v3"
- Click Enable
- Create OAuth 2.0 credentials:
- Navigate to APIs & Services > Credentials
- Click "Create Credentials" > "OAuth client ID"
- Application type: Desktop application
- Download or copy the Client ID and Client Secret
- Set environment variables:
export GOOGLE_CLIENT_ID="your-client-id"
export GOOGLE_CLIENT_SECRET="your-client-secret"- Run the auth flow:
npx yt-studio-mcp authThis opens a browser window for Google sign-in. After granting access, tokens are saved locally.
- Check auth status anytime:
npx yt-studio-mcp auth --statusOptional Configuration
| Variable | Description | Default |
|----------|-------------|---------|
| YT_STUDIO_MCP_TOKEN_PATH | Custom path for OAuth token storage | ~/.config/yt-studio-mcp/tokens.json |
MCP Client Setup
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["-y", "yt-studio-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}Note: You must complete the OAuth auth flow (step 6 above) before the MCP server can make API calls. Tokens persist across sessions once authenticated.
Available Tools
| Tool | Description |
|------|-------------|
| youtube_upload | Upload a video to YouTube with metadata. Returns the video ID and URL. Set privacy to 'private' (default) for review before publishing. |
| youtube_set_thumbnail | Set a custom thumbnail on a YouTube video. Image must be PNG or JPG, at least 1280x720, and under 2MB. |
| youtube_upload_captions | Upload SRT caption tracks to a YouTube video. Supports multiple languages in a single call. At least one English track is required. |
| youtube_list_playlists | List all playlists on the authenticated YouTube channel. Returns playlist IDs, titles, descriptions, and video counts. |
| youtube_add_to_playlist | Add a YouTube video to one or more playlists. Handles partial failures: returns per-playlist success/error status. |
| youtube_create_playlist | Create a new playlist on the authenticated YouTube channel. Returns playlist ID and URL. |
| youtube_schedule_livestream | Schedule a YouTube livestream with all metadata and defaults. Binds to a reusable stream (OBS stream key stays the same). Sets Sports category, optional thumbnail/playlist, and attempts monetization with mid-rolls. |
Resources
The server exposes a Publish Workflow resource (resource:///publish-workflow) that provides a step-by-step guide for publishing a complete YouTube video via MCP tools -- covering upload, thumbnail, captions, and playlist attachment.
License
MIT
