MCP Connector

Automate YouTube Operations with MCP Server

Yutu MCP Server: Automate YouTube workflows with an AI agent. Integrates with YouTube Data API.

Works with youtubegithubgoogle cloud platform

91
Spark score
out of 100
Updated last month
Version 0.10.9
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.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-yutu | bash

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 MCP Server

A CLI, MCP server, and AI agent for YouTube. To automate YouTube workflows, including video uploading, optimization, and management of comments, playlists, and channel branding.

What it does

yutu is a CLI, MCP server, and AI agent for YouTube that automates your YouTube workflow, including uploading and optimizing videos, and managing comments, playlists, and channel branding. It aims to increase views, click-through rates, and audience engagement with less manual effort.

Installation can be done via npm:

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

Authentication requires Google Cloud Platform setup and a client_secret.json file:

{
  "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"
    ]
  }
}

After authentication, a token is saved:

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

yutu

Static Badge
Go Report Card
GitHub License
Go Reference
Go Coverage

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

GitHub Release
Homebrew Formula Version
WinGet Package Version
npm Version

YouTube CLI, MCP server, Skill and Agent - AI-powered toolkit that grows YouTube channel on autopilot | ProductHunt

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. 中文文档

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

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

GitHub Actions

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.

Node.js
❯ npm i -g @eat-pray-ai/yutu
Docker
❯ 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
Gopher
❯ go install github.com/eat-pray-ai/yutu@latest
Linux
❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash
macOS

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
Windows
❯ winget install yutu
Verifying Installation

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 to automate YouTube workflows. The system uses a multi-agent architecture where a central orchestrator delegates tasks to specialized agents:

Agent Role Capabilities
Orchestrator Coordinates the entire workflow, plans strategy, and delegates to sub-agents YouTube growth strategy, SEO optimization, task routing
Retrieval Gathers data from YouTube and the web (read-only) List/search videos, channels, playlists, comments, captions, subscriptions, members, and more; Google Search
Modifier Creates and updates YouTube content Upload videos, create playlists, update metadata, post comments, set thumbnails, manage captions and watermarks
Destroyer Handles destructive operations with extra caution Delete videos, playlists, comments, captions, subscriptions, channel sections, and watermarks

Currently, the agent mode is under active development, only supports Google's Gemini models with the following environment variables set:

❯ export YUTU_ADVANCED_MODEL=google:gemini-3.1-pro-preview
❯ export YUTU_LITE_MODEL=google:gemini-3-flash-preview
❯ export YUTU_LLM_API_KEY=your_gemini_api_key
// Optional settings
❯ export GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com/
❯ export YUTU_AGENT_INSTRUCTION=Your custom instruction here

YUTU_ADVANCED_MODEL is used by the orchestrator agent, while YUTU_LITE_MODEL is used by all other agents. Both use
the provider:modelName format (only google is supported). If only one is set, the other defaults to the same value.

Agent Environment Variables

Variable Description Required
YUTU_ADVANCED_MODEL Model for orchestrator agent (format: provider:modelName) At least one of YUTU_ADVANCED_MODEL or YUTU_LITE_MODEL
YUTU_LITE_MODEL Model for sub-agents (format: provider:modelName) At least one of YUTU_ADVANCED_MODEL or YUTU_LITE_MODEL
YUTU_LLM_API_KEY API key for the model provider Yes
GOOGLE_GEMINI_BASE_URL Base URL for Gemini API No
YUTU_AGENT_INSTRUCTION Custom instruction for orchestrator agent No
YUTU_RETRIEVAL_INSTRUCTION Custom instruction for retrieval agent No
YUTU_MODIFIER_INSTRUCTION Custom instruction for modifier agent No
YUTU_DESTROYER_INSTRUCTION Custom instruction for destroyer agent No

Then run the following command for detail usage:

❯ yutu agent --help
❯ yutu agent --args "help"
# console mode
❯ yutu agent --args "console"
# web mode with three sub-launchers: api, a2a and webui
❯ yutu agent --args "web api a2a webui"

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 add yutu as an MCP server in VS Code or Cursor by clicking corresponding badge, or use the CLI commands below for your preferred tool.

Install in VS Code
Install in Cursor

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

# HTTP mode (start the server first: yutu mcp --mode http --auth)
❯ claude mcp add --transport http \
  --client-id YOUR_CLIENT_ID.apps.googleusercontent.com \
  --client-secret \
  yutu http://localhost:8216/mcp
Codex
# 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 --auth)
❯ codex mcp add --url http://localhost:8216/mcp \
  --oauth-client-id YOUR_CLIENT_ID.apps.googleusercontent.com \
  yutu
Manual Configuration (VS Code, Cursor, OpenCode, etc.)

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:
  activity               Manage activities on YouTube
  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
  mcp                    Start MCP server
  member                 Manage YouTube channel members
  membershipsLevel       Manage YouTube memberships 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.

Star History

Star History Chart

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.