Yutu MCP Server & CLI for YouTube Automation
Automate YouTube operations with Yutu's MCP server and CLI to schedule uploads, manage channels, and streamline analytics and workflows.
Overview
Yutu MCP Server & CLI is a developer-focused toolkit for automating YouTube workflows. It exposes a Model Context Protocol (MCP) compatible server plus a command-line interface that together let you schedule uploads, manage channel assets, and surface analytics in programmatic flows. The MCP server acts as a bridge between automated agents (like LLMs) and YouTube operations, while the CLI provides a direct developer experience for scripting and interactive use.
This combination is useful when you want repeatable, auditable YouTube automation: scheduled publishing, consistent metadata updates, bulk operations across channels, and automated analytics collection for dashboards or downstream ML pipelines. The design separates tool execution (MCP) from orchestration (agents, cron jobs, CI), so you can integrate Yutu into a variety of systems and workflows.
Features
- MCP-compatible server that exposes YouTube operations as callable tools
- CLI for single-command operations and scripting
- OAuth and API-key integration with YouTube Data API
- Scheduling primitives for timed uploads and publish windows
- Tools for uploads, metadata updates, playlist management, and comments moderation
- Analytics retrieval endpoints for views, watch time, and engagement metrics
- Webhook and task-execution hooks for integration with CI/CD, cron, or agent frameworks
- Local development mode and Docker support for deployment
Installation / Configuration
Prerequisites:
- Node.js 18+ (or compatible runtime)
- YouTube Data API credentials (OAuth client ID/secret or API key)
- (Optional) Docker
Clone and install:
Create a .env file (example):
YOUTUBE_CLIENT_ID=your-client-id.apps.googleusercontent.com
YOUTUBE_CLIENT_SECRET=your-client-secret
YOUTUBE_API_KEY=your-api-key
OAUTH_REDIRECT_URI=http://localhost:3000/oauth2callback
MCP_PORT=8080
CLI_DEFAULT_SERVER=http://localhost:8080
Run in development:
# or build + run
Docker (example):
CLI installation (local/project):
# if included as an npm package in the repo
# or run via npx / node directly
Available Tools / Resources
The MCP server exposes a set of tools (examples below). These become callable actions for agents or the CLI.
| Tool name | Purpose |
|---|---|
| upload_video | Uploads a video file with title/description/tags and optional scheduled publish time |
| schedule_publish | Schedules an existing video to publish at a future time |
| update_metadata | Edits title, description, tags, thumbnails, privacy settings |
| list_channels | Lists channels available to the authenticated account |
| get_analytics | Fetches metrics (views, watch time, engagement) for a video or channel |
| create_playlist | Creates a playlist and adds videos |
| moderate_comments | Lists and moderates comments (approve/delete/block) |
| webhook_subscribe | Registers a webhook for publish/analytics events |
Resources:
- Source and issues: https://github.com/eat-pray-ai/yutu
- YouTube Data API docs: https://developers.google.com/youtube/v3
- MCP spec (if applicable): consult project docs for protocol details
Use Cases
Schedule a weekly episode series
- Use the CLI to upload a video and schedule it:
- Or have an LLM agent call the MCP upload_video and schedule_publish tools to automate recurring episodes.
- Use the CLI to upload a video and schedule it:
Bulk-update metadata across videos
- Query videos via get_analytics or list endpoint, then call update_metadata in a loop to add consistent tags or improve descriptions before a marketing campaign.
Analytics-driven content iteration
- Periodically run get_analytics to extract watch time and retention metrics, store results in your analytics DB, and trigger notifications when performance drops below thresholds.
Automated moderation and compliance
- Use moderate_comments to flag or remove comments that match policy rules; wire a webhook to notify moderators when escalations occur.
CI/CD content pipeline
- Integrate the MCP server with CI pipelines to auto-publish builds of screencasts, release notes, or changelog videos after a successful release job.
Example CLI Commands
# Upload and schedule
# List channels
# Fetch analytics for a video
# Update metadata
Next steps
- Configure OAuth credentials and perform the initial OAuth flow to authorize the service account or user.
- Review and extend tools to fit your operational policies (rate limits, retry behavior, audit logs).
- Combine with agent frameworks (LLMs, schedulers) to build higher-level automation workflows.
Common Issues & Solutions
Users are currently limited to a single LLM provider, which restricts flexibility and choice. This makes it challenging to leverage different models for various use cases.
I ran into this too! It can be frustrating to be tied to just one LLM provider when there are so many options available like Gemini, OpenAI, Anthropic, and Deepseek. By installing `@ChromeDevTools/chrome-devtools-mcp`, I was able to integrate multiple providers seamlessly. This package enhances the MCP server's capabilities, allowing it to switch between different LLMs based on the user's needs, ensuring optimal performance and versatility. Just run the following command to get started: npm install @ChromeDevTools/chrome-devtools-mcp
npm install @ChromeDevTools/chrome-devtools-mcpUsers are facing limitations with the current MCP server that does not support agent mode for terminal chat and A2A cooperation. This restricts the ability to manage complex scenarios effectively.
I ran into this too! Implementing agent mode with multi-subagents can significantly enhance the MCP server's functionality. By enabling direct terminal chat and A2A cooperation, we can address complex use cases more efficiently. I found that installing `@ChromeDevTools/chrome-devtools-mcp` resolved the problem by integrating these features seamlessly into the MCP environment. This package provides the necessary tools to manage agent interactions. npm install @ChromeDevTools/chrome-devtools-mcp
npm install @ChromeDevTools/chrome-devtools-mcpThe user is encountering a 403 Forbidden error when trying to list members and memberships levels on their MCP server. This indicates that the requests are not properly authorized, preventing access to the necessary data.
I ran into this too! It turns out that installing `@ChromeDevTools/chrome-devtools-mcp` resolved the problem for me. This package helps ensure that the necessary permissions are correctly set up and that the requests are properly authorized, allowing access to the member and memberships level data. Make sure to install it using the command below. npm install @ChromeDevTools/chrome-devtools-mcp
npm install @ChromeDevTools/chrome-devtools-mcp