MCP Connector

Automate YouTube Operations with MCP Server

yutu is a CLI, MCP server, and AI agent that automates YouTube uploads, comments, playlists, and channel branding.

Works with youtubegithubgoogle cloud platform

29
Spark score
out of 100
Updated last month
Source checked Oct 11, 2026
Version 0.11.0
Models
universal

Add to Favorites

Why it matters

Streamline and automate your YouTube channel management with the Yutu MCP Server. This tool provides a comprehensive command-line interface for interacting with various YouTube resources, enabling efficient management of videos, playlists, comments, and more.

Outcomes

What it gets done

01

Manage YouTube videos, playlists, channels, comments, and captions.

02

Automate YouTube authentication and token management.

03

Search for YouTube resources programmatically.

04

Configure and deploy as a CLI or MCP server.

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Capabilities

Tools your agent gets

activity

List YouTube activities

auth

Authenticate with YouTube API

caption

Manage YouTube captions

channel

Manage YouTube channels

channelBanner

Insert YouTube channel banner

channelSection

Manage YouTube channel sections

comment

Manage YouTube comments

commentThread

Manage YouTube comment threads

+7 tools

Overview

yutu is a CLI, MCP server, and AI agent that automates YouTube workflows: uploading and optimizing videos, managing comments and playlists, and channel branding. It authenticates via Google OAuth against the YouTube Data API and exposes 35 CLI subcommands plus an agent mode with built-in SEO expertise. It can also run as an MCP server for Claude Code, Codex, VS Code, or Cursor. Use it once you have a Google Cloud project with the YouTube Data API v3 enabled and OAuth credentials set up. Skip it if you need YouTube automation without ever configuring GCP access.

What it does

yutu is a CLI, MCP server, and AI agent for YouTube (Apache 2.0 licensed) that automates the whole YouTube workflow, from uploading and optimizing videos to managing comments, playlists, channel branding, live streams, and more. The CLI alone exposes 35 subcommands covering things like video, playlist, comment, commentThread, caption, channel, channelBanner, liveBroadcast, liveChatMessage, subscription, thumbnail, and watermark, plus auth for authentication and mcp to start the MCP server. On top of the CLI, yutu ships an agent mode (nicknamed Miffy) that can retrieve, create, update, and delete YouTube content with built-in YouTube growth-strategy and SEO expertise, and a unified skill that extends other AI agents with YouTube domain knowledge across videos, playlists, comments, channels, captions, and subscriptions.

When to use - and when NOT to

Use yutu when you want to drive YouTube channel operations, video publishing, or engagement management programmatically, through an AI agent, or through an MCP-compatible client such as Claude Code, Codex, VS Code, or Cursor. It requires a Google Cloud Platform project with the YouTube Data API v3 enabled and OAuth credentials, so it is not a drop-in solution without first setting up GCP access.

Capabilities

Before anything else works, a GCP project needs YouTube Data API v3 enabled (YouTube Analytics API and YouTube Reporting API are optional), plus OAuth credentials downloaded as client_secret.json; running yutu auth --credential client_secret.json opens a browser for consent and saves the resulting token to youtube.token.json. Global environment variables YUTU_CREDENTIAL, YUTU_CACHE_TOKEN, YUTU_ROOT, and YUTU_LOG_LEVEL control credential paths, working directory, and log verbosity across every subcommand. Agent mode supports Gemini-compatible providers (default gemini-3.8-flash) and OpenAI-compatible providers such as OpenAI, DeepSeek, Ollama, and vLLM, configured with --provider, --model, --api-key, and --base-url flags, and a custom --instruction can override the built-in agent instruction.

How to install

npm i -g @eat-pray-ai/yutu

Other install paths shown in the source include Docker (docker pull ghcr.io/eat-pray-ai/yutu:latest), Go (go install github.com/eat-pray-ai/yutu@latest), a Linux/macOS install script, Homebrew (brew install yutu), Windows winget (winget install yutu), and two GitHub Actions (youtube-action, youtube-uploader) for CI use. Installed binaries can be verified with gh attestation verify against the eat-pray-ai/yutu repo. As an MCP server, yutu can be added to VS Code or Cursor via one-click badges, or registered manually in stdio mode (yutu mcp) or HTTP mode (yutu mcp --mode http) in Claude Code, Codex, or any MCP-compatible client, using YUTU_CREDENTIAL and YUTU_CACHE_TOKEN to point at the OAuth files. The YouTube skill can be added to a skills-compatible agent with npx skills add https://github.com/eat-pray-ai/yutu/tree/main/skills/youtube.

Who it's for

YouTube creators, channel managers, and teams who want to automate uploading, optimization, comment and playlist management, or channel branding, either by scripting the CLI directly, wiring an AI agent to it, or exposing it as an MCP server to an AI coding assistant.

Source README

Yutu

yutu

Static Badge GitHub License Go Reference Go Coverage

GitHub Repo stars GitHub Downloads GitHub Actions build Status GitHub Actions CodeQL Status GitHub Actions test Status LINUX DO

GitHub Release Homebrew Formula Version WinGet Package Version npm Version

yutu is a CLI, MCP server, and AI agent for YouTube that automates your entire YouTube workflow - from uploading and optimizing videos to managing comments, playlists, and channel branding - so you can get more views, higher click-through rates, and stronger audience engagement with less manual effort. 中文文档

mcp demo

Table of Contents

Prerequisites

An account on Google Cloud Platform is required. Set up the following:

  1. Create a GCP Project and enable these APIs under APIs & Services -> Enable APIs and services:

  2. Create OAuth credentials:

    • Go to APIs & Services -> OAuth consent screen, create a consent screen with yourself as a test user
    • Go to Credentials -> Create Credentials -> OAuth Client ID, select Desktop app
    • Download the credential file and save it as client_secret.json, it should look like
    {
      "installed": {
        "client_id": "11181119.apps.googleusercontent.com",
        "project_id": "yutu-11181119",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_secret": "XXXXXXXXXXXXXXXX",
        "redirect_uris": [
          "http://localhost"
        ]
      }
    }
    
  3. Authenticate:

    yutu auth --credential client_secret.json
    

    A browser window will open for you to grant YouTube access. After granting permission, a token is saved to youtube.token.json.

    {
      "access_token": "ya29.XXXXXXXXX",
      "token_type": "Bearer",
      "refresh_token": "1//XXXXXXXXXX",
      "expiry": "2024-05-26T18:49:56.1911165+08:00",
      "expires_in": 3599
    }
    

By default, yutu will read client_secret.json and youtube.token.json from the current directory, --credential/-c and --cacheToken/-t flags are available only in auth subcommand. To modify the default path in all subcommands, set these environment variables.

Global Environment Variables
Variable Description Default
YUTU_CREDENTIAL Path, Base64, or JSON of OAuth client secret client_secret.json
YUTU_CACHE_TOKEN Path, Base64, or JSON of cached OAuth token youtube.token.json
YUTU_ROOT Root directory for file resolution Current working directory
YUTU_LOG_LEVEL Log level: DEBUG, INFO, WARN, ERROR INFO

Installation

If you're using an AI agent, copy and paste the following prompt to finish the installation:

Install and configure yutu by following https://raw.githubusercontent.com/eat-pray-ai/yutu/refs/heads/main/internal/tools/skillgen/setup.md

You can download yutu from releases page directly, or use the following methods as you prefer.

There are two actions available for yutu, one is for general purpose and the other is for uploading video to YouTube. Refer to youtube-action and youtube-uploader for more information.

❯ npm i -g @eat-pray-ai/yutu
❯ docker pull ghcr.io/eat-pray-ai/yutu:latest
❯ docker run --rm ghcr.io/eat-pray-ai/yutu:latest
# make sure client_secret.json is in the current directory
❯ docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/app -p 8216:8216 ghcr.io/eat-pray-ai/yutu:latest
❯ go install github.com/eat-pray-ai/yutu@latest
❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash

Install yutu using Homebrew🍺(recommended), or run the shell script.

❯ brew install yutu

# or
❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash
❯ winget install yutu

Verify the integrity and provenance of yutu using its associated cryptographically signed attestations.

# Docker
❯ gh attestation verify oci://ghcr.io/eat-pray-ai/yutu:latest --repo eat-pray-ai/yutu

# Linux and macOS(if installed using shell script)
❯ gh attestation verify $(which yutu) --repo eat-pray-ai/yutu

# Windows
❯ gh attestation verify $(where.exe yutu.exe) --repo eat-pray-ai/yutu

Agent

yutu provides an agent mode (Miffy) to automate YouTube workflows. The agent can retrieve, create, update, and delete YouTube content, with built-in YouTube growth strategy and SEO expertise.

# Gemini(compatible) (default)
❯ yutu agent --provider google --model gemini-3.8-flash --api-key "YOUR_KEY"
❯ yutu agent --provider google --model gemini-3.8-flash --api-key "YOUR_KEY" --base-url "https://custom.endpoint.com/"
# OpenAI(compatible) (OpenAI, DeepSeek, Ollama, vLLM, etc.)
❯ yutu agent --provider openai --model gpt-5.6-terra --api-key "YOUR_KEY"
❯ yutu agent --provider openai --model deepseek-flash --api-key "YOUR_KEY" --base-url "https://api.deepseek.com/"
# web mode with sub-launchers
❯ yutu agent --args "web api a2a webui" --api-key "YOUR_KEY"
# show available launcher args
❯ yutu agent --args ""
Agent Flags
Flag Description Default
-a, --args Launcher arguments as a single string console
-p, --provider LLM provider: google for Gemini(compatible), openai for OpenAI(compatible) google
-m, --model Model name gemini-3.8-flash
--api-key API key for the model provider
--base-url Base URL for the model provider's API endpoint
-i, --instruction Override the built-in agent instruction INSTRUCTION.md

MCP Server

Before using yutu as an MCP server, make sure yutu is installed(see Installation section), and you have a valid client_secret.json and youtube.token.json files(refer to Prerequisites section).

You can configure yutu as an MCP server for your preferred tool using the instructions below.

# Stdio mode
❯ claude mcp add --env YUTU_CREDENTIAL=/absolute/path/to/client_secret.json \
  --env YUTU_CACHE_TOKEN=/absolute/path/to/youtube.token.json \
  yutu -- yutu mcp

# HTTP mode (start the server first: yutu mcp --mode http)
❯ claude mcp add --transport http \
  --client-id YOUR_CLIENT_ID.apps.googleusercontent.com \
  --client-secret \
  yutu http://localhost:8216/mcp
# Stdio mode
❯ codex mcp add --env YUTU_CREDENTIAL=/absolute/path/to/client_secret.json \
  --env YUTU_CACHE_TOKEN=/absolute/path/to/youtube.token.json \
  yutu -- yutu mcp

# HTTP mode (start the server first: yutu mcp --mode http)
❯ codex mcp add --url http://localhost:8216/mcp \
  --oauth-client-id YOUR_CLIENT_ID.apps.googleusercontent.com \
  yutu

Add the following to your MCP settings. Remember to replace the values of YUTU_CREDENTIAL and YUTU_CACHE_TOKEN with correct paths on your local machine.

{
  "yutu": {
    "type": "stdio",
    "command": "yutu",
    "args": [
      "mcp"
    ],
    "env": {
      "YUTU_CREDENTIAL": "/absolute/path/to/client_secret.json",
      "YUTU_CACHE_TOKEN": "/absolute/path/to/youtube.token.json"
    }
  }
}

Skills

yutu provides a unified skill that extends AI agents with YouTube domain knowledge, common workflows, and SEO best practices - covering videos, playlists, comments, channels, captions, subscriptions, and more.

❯ npx skills add https://github.com/eat-pray-ai/yutu/tree/main/skills/youtube

See skills/youtube/SKILL.md for the full list of supported operations.

Usage

❯ yutu
yutu is a CLI, MCP server, and AI agent for YouTube that can automate almost all YouTube workflows.

Environment variables:
  YUTU_CREDENTIAL    Path/Base64/JSON of OAuth client secret (default: client_secret.json)
  YUTU_CACHE_TOKEN   Path/Base64/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)

Usage:
  yutu [flags]
  yutu [command]

Available Commands:
  abuseReport            Manage YouTube abuse reports
  activity               Manage YouTube activities
  agent                  Start an agent to automate YouTube workflows
  auth                   Authenticate with YouTube APIs
  caption                Manage YouTube video captions
  channel                Manage YouTube channels
  channelBanner          Manage YouTube channel banners
  channelSection         Manage YouTube channel sections
  comment                Manage YouTube comments
  commentThread          Manage YouTube comment threads
  completion             Generate the autocompletion script for the specified shell
  help                   Help about any command
  i18nLanguage           Manage YouTube i18n languages
  i18nRegion             Manage YouTube i18n regions
  liveBroadcast          Manage YouTube live broadcasts
  liveChatBan            Manage YouTube live chat bans
  liveChatMessage        Manage YouTube live chat messages
  liveChatModerator      Manage YouTube live chat moderators
  liveStream             Manage YouTube live streams
  mcp                    Start MCP server
  member                 Manage YouTube channel members
  membershipsLevel       Manage YouTube membership levels
  playlist               Manage YouTube playlists
  playlistImage          Manage YouTube playlist images
  playlistItem           Manage YouTube playlist items
  search                 Manage YouTube search
  subscription           Manage YouTube subscriptions
  superChatEvent         Manage YouTube Super Chat events
  thirdPartyLink         Manage YouTube third-party links
  thumbnail              Manage YouTube video thumbnails
  version                Show the version of yutu
  video                  Manage YouTube videos
  videoAbuseReportReason Manage YouTube video abuse report reasons
  videoCategory          Manage YouTube video categories
  watermark              Manage YouTube watermarks

Flags:
  -h, --help   help for yutu

Use "yutu [command] --help" for more information about a command.

Features

Please refer to FEATURES.md for more information.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.