Get the FREE Ultimate OpenClaw Setup Guide →

yutu

A fully functional MCP server and CLI for YouTube

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio eat-pray-ai-yutu docker run -i -p 8216:8216 ghcr.io/eat-pray-ai/yutu:latest

How to use

yutu is a CLI-powered MCP server and AI agent designed to automate YouTube workflows, including uploading videos, optimizing metadata, managing comments, handling playlists, and managing channel branding. As an MCP server, it exposes a set of skills and actions that can be composed into prompts or workflows within the MCP ecosystem. To run it via Docker, pull the image and start the container; you can then interact with the server through MCP-compatible clients or tooling that communicates with the running MCP server on the exposed port (default 8216). The included CLI capabilities help you authenticate and control YouTube-related tasks programmatically, while the Go-based engine provides the server-side logic for orchestrating actions and responses. Tools available through yutu focus on automating the end-to-end YouTube lifecycle, from content ingestion and metadata optimization to comment moderation and audience engagement enhancements.

Once running, you can leverage the server’s skills by issuing MCP-style requests to trigger tasks such as video upload automation, title/description optimization, thumbnail selection, commenting workflows, playlist management, and branding updates. The server is designed to work with your YouTube project credentials (OAuth client secret and tokens), which you supply via the credential and cache token files described in the prerequisites. Environment variables can be used to customize default file locations and log verbosity, aligning the server with your deployment environment.

How to install

Prerequisites:

  • Docker installed and running (recommended) or go tooling if you prefer a native build
  • Access to a Google Cloud project with YouTube Data API v3 enabled and OAuth credentials as described in the prerequisites of the README
  • A working YouTube credential file named client_secret.json and a cached token file named youtube.token.json unless you override via environment variables

Installation options:

Option 1: Docker (recommended for quick start)

  • Pull and run the image:
docker pull ghcr.io/eat-pray-ai/yutu:latest
docker run --rm -i -p 8216:8216 ghcr.io/eat-pray-ai/yutu:latest

Option 2: Native Go build (Gopher method referenced in docs)

  • Ensure Go is installed
  • Install the latest release of yutu:
go install github.com/eat-pray-ai/yutu@latest
  • Run the binary (adjust path to your Go bin folder if needed):
yutu

Option 3: Other installation methods (as described in the docs)

  • Linux/macOS installer script:
curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash
  • Homebrew (macOS):
brew install yutu
  • Windows via winget:
winget install yutu

Note: If you want to run via Docker, ensure client_secret.json is in the current directory or mount the path accordingly and expose port 8216 for MCP communications.

Additional notes

Environment variables you may want to configure for smoother operations:

  • YUTU_CREDENTIAL: path, base64, or JSON of OAuth client secret (default: client_secret.json)
  • YUTU_CACHE_TOKEN: path, base64, or JSON of cached OAuth token (default: youtube.token.json)
  • YUTU_ROOT: root directory for file resolution (default: current working directory)
  • YUTU_LOG_LEVEL: log level (DEBUG, INFO, WARN, ERROR) (default: INFO)

Common issues:

  • Ensure Google OAuth credentials are valid and have the YouTube Data API v3 enabled for your project
  • If the server cannot access YouTube APIs, verify network access and that the OAuth tokens are correctly generated and accessible
  • When using Docker, bind the correct port and ensure client_secret.json and youtube.token.json are accessible to the container if required by your workflow

Configuration tips:

  • Keep your credentials secure and avoid embedding them directly in commands or images
  • Use environment variables to point to credentials so you can rotate them without rebuilding the container
  • Monitor logs (YUTU_LOG_LEVEL) to diagnose integration issues with YouTube APIs or MCP client interactions

Related MCP Servers

Sponsor this space

Reach thousands of developers