youtube-live-mcp
v1.0.1
Published
MCP server for controlling YouTube Live Streaming via the YouTube Data API v3
Maintainers
Readme
YouTube Live MCP
MCP server for controlling YouTube Live Streaming from Claude Code, Claude Desktop, or any MCP client.
Create broadcasts, go live, manage chat, and monitor stream health — all through the Model Context Protocol.
What it does
This server wraps the YouTube Live Streaming API v3 and exposes it as MCP tools. Combined with obs-mcp, you get fully automated live streaming from your AI assistant.
Tools
Broadcasts (8 tools)
yt-create-broadcast— Create a new live broadcastyt-list-broadcasts— List broadcasts (filter by status)yt-get-broadcast— Get broadcast detailsyt-update-broadcast— Update title, description, privacyyt-delete-broadcast— Delete a broadcastyt-bind-stream— Bind a video stream to a broadcastyt-transition-broadcast— Go live, end broadcast (testing/live/complete)yt-insert-cuepoint— Insert ad break during live
Streams (4 tools)
yt-create-stream— Create stream, get RTMP URL + keyyt-list-streams— List your streamsyt-get-stream— Get stream details + healthyt-delete-stream— Delete a stream
Chat (6 tools)
yt-list-chat-messages— Read live chatyt-send-chat-message— Post to live chatyt-delete-chat-message— Remove a messageyt-list-moderators— List chat moderatorsyt-add-moderator— Add a moderatoryt-remove-moderator— Remove a moderator
Status (2 tools)
yt-get-broadcast-status— Broadcast lifecycle stateyt-get-stream-health— Real-time stream health
Prerequisites
- Node.js 18+
- Google Cloud project with the YouTube Data API v3 enabled
- OAuth2 credentials (Desktop application type)
Setting up Google Cloud
- Go to Google Cloud Console
- Create a project (or use an existing one)
- Enable the YouTube Data API v3 at API Library
- Go to Credentials → Create Credentials → OAuth 2.0 Client ID
- Application type: Desktop app
- Note your Client ID and Client Secret
Installation
Claude Desktop / Claude Code
Add to your claude_desktop_config.json or .claude/settings.json:
{
"mcpServers": {
"youtube-live": {
"command": "npx",
"args": ["-y", "youtube-live-mcp@latest"],
"env": {
"YOUTUBE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"YOUTUBE_CLIENT_SECRET": "your-client-secret"
}
}
}
}Manual
npm install -g youtube-live-mcp
YOUTUBE_CLIENT_ID="..." YOUTUBE_CLIENT_SECRET="..." youtube-live-mcpAuthentication
On first run, the server opens your browser for Google OAuth consent. After authorizing, tokens are stored in ~/.youtube-live-mcp/tokens.json and refreshed automatically.
Required scope: https://www.googleapis.com/auth/youtube
Usage: Go Live in 7 Steps
With both youtube-live-mcp and obs-mcp installed:
1. yt-create-broadcast → Create the YouTube event
2. yt-create-stream → Get RTMP URL + stream key
3. obs-set-stream-settings → Configure OBS with RTMP details
4. yt-bind-stream → Connect stream to broadcast
5. obs-start-stream → Start sending video from OBS
6. yt-transition-broadcast → testing → validate feed
7. yt-transition-broadcast → live → YOU'RE LIVETo end: yt-transition-broadcast complete + obs-stop-stream
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| YOUTUBE_CLIENT_ID | Yes | OAuth2 client ID |
| YOUTUBE_CLIENT_SECRET | Yes | OAuth2 client secret |
API Quota
YouTube API has a daily quota of 10,000 units. Read operations cost ~1 unit, write operations cost ~50 units. Normal streaming use stays well within limits.
License
MIT
Built by
Runway Services — a humanistic sales and marketing agency.
