mcpField
Y
youtube-mcp

youtube-mcp

ローカル
github.com/miller-joeソーシャルメディア220 週間前に更新

youtube-mcp について

youtube-mcpは、YouTubeチャンネル所有者向けのOAuth認証対応MCPサーバーです。チャンネル管理、コメントのモデレーション、分析に加え、ComfyUI連携でサムネイルの生成と設定を一度に行えます。

主な機能

  1. 01動画メタデータと字幕の編集
  2. 02コメントへの返信とモデレーション
  3. 03プレイリスト管理
  4. 04チャンネルとShortsの分析データ照会
  5. 05ComfyUIによるサムネイル生成・設定

活用シーン

  1. 01タイトル、説明、タグの更新
  2. 02字幕トラックのアップロードや削除
  3. 03動画コメントの確認と返信
  4. 04動画サムネイルの生成と公開

MCP 対応

OAuth 2.0を使用して、YouTubeチャンネルの管理と分析機能をMCPクライアントに提供します。ComfyUIを設定すると、動画のサムネイルを生成して設定するツールも利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"miller-joe-youtube": {
"command": "npx",
"args": [
"-y",
"@miller-joe/youtube-mcp"
],
"env": {
"YOUTUBE_CLIENT_ID": "<YOUTUBE_CLIENT_ID>",
"YOUTUBE_CLIENT_SECRET": "<YOUTUBE_CLIENT_SECRET>",
"YOUTUBE_CLIENT_SECRET_FILE": "<YOUTUBE_CLIENT_SECRET_FILE>",
"YOUTUBE_TOKEN_FILE": "<YOUTUBE_TOKEN_FILE>",
"COMFYUI_URL": "<COMFYUI_URL>",
"COMFYUI_DEFAULT_CKPT": "<COMFYUI_DEFAULT_CKPT>"
}
}
}
}
起動コマンドnpx -y @miller-joe/youtube-mcp
設定が必要な環境変数
YOUTUBE_CLIENT_IDGoogle OAuth 2.0 Client ID (from Google Cloud Console, Desktop app type). See README for setup.
YOUTUBE_CLIENT_SECRETシークレットGoogle OAuth 2.0 Client Secret. Pair with YOUTUBE_CLIENT_ID.
YOUTUBE_CLIENT_SECRET_FILEシークレットAlternative to CLIENT_ID/CLIENT_SECRET: path to the JSON credentials file downloaded from Google Cloud.
YOUTUBE_TOKEN_FILEシークレットRefresh token storage path. Default: ~/.config/youtube-mcp/token.json
COMFYUI_URLComfyUI HTTP URL for the generate_and_set_thumbnail bridge tool. When unset, that tool is disabled.
COMFYUI_DEFAULT_CKPTDefault ComfyUI checkpoint filename for bridge tool (default: sd_xl_base_1.0.safetensors)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@miller-joe/youtube-mcp0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

youtube-mcp

チャンネル所有者向けの、OAuth 認証を使用する YouTube MCP です。動画のメタデータを編集し、コメントへの返信やモデレーションを行い、再生リストを管理し、チャンネルのアナリティクスを照会できます。また、ComfyUI ブリッジ経由で AI サムネイルを生成または設定できます。この分野で主流の読み取り専用 Data API v3 ラッパーを超える機能を備えています。

youtube-mcp MCP server

GitHub Sponsors Ko-fi

特徴

既存の YouTube MCP の多くは、Data API v3 に対して API キーを使用し、動画の検索や公開メタデータの取得など、読み取り専用の操作を行います。この MCP は OAuth 2.0(Authorization Code + PKCE)を使用するため、チャンネルに実際に書き込むことができます。動画のタイトル、説明、タグの更新、コメントへの返信、スパムのモデレーション、再生リストの管理が可能です。また、別個の YouTube Analytics API を使用してチャンネルの統計情報を取得し、ComfyUI でサムネイルを生成して、1 回の MCP 呼び出しで YouTube にアップロードできます。

Claude, use generate_and_set_thumbnail on video abc123:
  prompt: "cyberpunk hacker at keyboard, neon blue and pink, high contrast"

ComfyUI が 1280×720 でレンダリングし、youtube-mcp がバイト列を取得して、thumbnails.set に POST します。これで完了です。

インストール

# npx, no install
npx @miller-joe/youtube-mcp --help

# Docker
docker run -p 9120:9120 \
  -e YOUTUBE_CLIENT_ID=... \
  -e YOUTUBE_CLIENT_SECRET=... \
  -e YOUTUBE_TOKEN_FILE=/token/token.json \
  -v $PWD/token:/token \
  ghcr.io/miller-joe/youtube-mcp:latest

セットアップ:Google Cloud の初回設定(約 10 分)

  1. Google アカウントと YouTube チャンネル。 失う可能性のある職場用アカウントではなく、個人用アカウントを使用してください。

  2. Google Cloud プロジェクトを https://console.cloud.google.com で作成します。名前は自由に設定できます(例:youtube-mcp)。

  3. API を有効にします:

    • YouTube Data API v3
    • YouTube Analytics API
  4. OAuth 同意画面: External を選択し、アプリ名とサポート用メールアドレスを設定します。Scopes に以下を追加します:

    • youtube.upload
    • youtube.force-ssl
    • yt-analytics.readonly
  5. Testing モードのままにします。自分をテストユーザーとして追加します(必須)。プロジェクトの所有者であれば、更新トークンは期限切れになりません。

  6. OAuth クライアント ID を作成します: アプリケーションの種類を Desktop app に設定します。JSON をダウンロードします。

  7. 対話型の認証フローを実行します:

    npx @miller-joe/youtube-mcp --auth --client-secret-file ./client_secret.json
    

    ブラウザーが開くので、YouTube チャンネルに紐付けられた Google アカウントにログインし、要求されたスコープを許可します。成功すると、更新トークンが ~/.config/youtube-mcp/token.json に保存されます。

  8. サーバーを起動します:

    npx @miller-joe/youtube-mcp --client-secret-file ./client_secret.json
    

    または、環境変数でクライアント認証情報を指定します:YOUTUBE_CLIENT_SECRET_FILE、または YOUTUBE_CLIENT_ID と YOUTUBE_CLIENT_SECRET。

MCP クライアントに接続する

claude mcp add --transport http youtube http://localhost:9120/mcp

または、MCP ゲートウェイに Streamable HTTP エンドポイントを指定してください。

設定

CLI フラグ環境変数デフォルト備考
--client-secret-fileYOUTUBE_CLIENT_SECRET_FILE(none)Google OAuth JSON のパス
--client-idYOUTUBE_CLIENT_ID(none)シークレットファイルの代替
--client-secretYOUTUBE_CLIENT_SECRET(none)シークレットファイルの代替
--token-fileYOUTUBE_TOKEN_FILE~/.config/youtube-mcp/token.json更新トークンの保存先
--hostMCP_HOST0.0.0.0バインドするホスト(HTTP モードのみ)
--portMCP_PORT9120バインドするポート(HTTP モードのみ)
--stdioMCP_TRANSPORT=stdio(unset)HTTP ではなく stdio 経由で MCP を通信します。stdio を優先する MCP クライアント(Claude Desktop、mcp-inspector)からサブプロセスとして起動する場合に使用します。
--comfyui-urlCOMFYUI_URL(unset, bridge disabled)ブリッジツール用の ComfyUI HTTP URL
(no flag)COMFYUI_DEFAULT_CKPTsd_xl_base_1.0.safetensorsブリッジツールのデフォルトチェックポイント
トランスポート

サーバーはデフォルトでストリーム可能な HTTP を使用します(Claude Code、MetaMCP、または生の fetch に最適です)。--stdio を渡すか(または MCP_TRANSPORT=stdio を設定すると)、stdio モードに切り替わります。Claude Desktop や MCP Inspector など、stdio を優先するクライアントがこのモードを想定しています。

// claude_desktop_config.json
{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@miller-joe/youtube-mcp", "--stdio"],
      "env": {
        "YOUTUBE_CLIENT_SECRET_FILE": "/path/to/client_secret.json",
        "YOUTUBE_TOKEN_FILE": "/path/to/token.json"
      }
    }
  }
}

stdio モードでは OAuth トークンの事前チェックが省略されます。保存済みのトークンがなくてもサーバーは起動し、ツール呼び出し時に認証エラーが表示されます。Claude Desktop で使用する前に、HTTP モードで youtube-mcp --auth --client-secret-file <path> を一度実行し、リフレッシュトークンを保存してください。

ツール

動画
  • list_my_videos:認証済みチャンネルのアップロード動画をページ分割して一覧表示します。
  • get_video:1 本の動画の詳細をすべて取得します。
  • update_video_metadata:タイトル、説明、タグ、カテゴリ、プライバシー設定を更新します。
  • delete_video:動画を完全に削除します。誤った動画の削除を防ぐため、confirm_video_title が現在のタイトルと完全に一致する必要があります。
字幕
  • list_captions:動画の字幕トラック(言語、名前、ステータス、下書きフラグ)を一覧表示します。
  • upload_caption:SRT または WebVTT の字幕トラックを動画にアップロードします。
  • delete_caption:字幕トラックを削除します。
Shorts
  • list_my_shorts:最近アップロードした動画から Shorts を検索します(再生時間が 60 秒以下の動画に絞り込みます)。
  • get_shorts_analytics:Shorts のみを対象とした YouTube Analytics クエリ(creatorContentType==SHORTS)を実行します。
再生リスト
  • create_playlist:再生リストを作成します(デフォルトは非公開です)。
  • add_to_playlist:既存の再生リストに動画を追加します。
コメント
  • list_comments:動画のトップレベルのコメントスレッドを一覧表示します。
  • reply_to_comment:トップレベルのコメントに返信します。
  • moderate_comment:コメントを保留、承認、または却下します。
アナリティクス
  • query_channel_analytics:日付範囲を指定して、任意のディメンションやフィルターを使い、指標を取得します。
ブリッジ(COMFYUI_URL が設定されている場合)
  • generate_and_set_thumbnail:ComfyUI 経由でサムネイルを生成し、1 回の呼び出しで動画に設定します。

クォータに関する注意事項

YouTube Data API の無料枠は 1 日あたり 10,000 ユニットです。主な操作のコスト:

  • videos.list、commentThreads.list:各 1 ユニット。
  • videos.update、comments.insert、thumbnails.set:各 50 ユニット。
  • videos.insert(アップロード):1,600 ユニットのため、無料枠では 1 日あたり約 6 本の動画をアップロードできます。

クリエイター向けの運用ワークフローのほとんどは、無料枠の上限を大きく下回ります。

アーキテクチャ

┌────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  MCP client    │────▶│  youtube-mcp     │────▶│  YouTube APIs   │
│  (Claude etc.) │◀────│  (this server)   │◀────│  (Data/Analytics)│
└────────────────┘     └────────┬─────────┘     └─────────────────┘
                                │
                                │ (bridge tools only)
                                ▼
                       ┌──────────────────┐
                       │  ComfyUI         │
                       │  (txt2img)       │
                       └──────────────────┘

OAuth リフレッシュトークンはローカルにキャッシュされ、有効期限が切れる前に必要に応じて更新されます。ブリッジツールは ComfyUI から画像データを内部でダウンロードするため、ComfyUI をパブリックにアクセス可能にする必要はありません。

開発

git clone https://github.com/miller-joe/youtube-mcp
cd youtube-mcp
npm install
npm run dev
npm run build
npm test

Node 20 以降が必要です。

ロードマップ

リリース済み:

  • 動画:一覧表示、取得、メタデータ更新、タイトル一致の確認ガード付き削除。
  • 字幕:アップロード、一覧表示、削除。
  • Shorts:list_my_shorts(再生時間フィルター)と get_shorts_analytics(creatorContentType==SHORTS)。
  • 再生リスト:作成、追加。
  • コメント:一覧表示、返信、モデレーション。
  • アナリティクス:チャンネルのアナリティクスクエリ。
  • ComfyUI サムネイルブリッジ:generate_and_set_thumbnail。

予定:

  • 再開可能なアップロードに対応した動画のアップロード(video_upload)。
  • 過去のデータを一括エクスポートする Reporting API。

ライセンス

MIT © Joe Miller

サポート

このツールで時間を節約できた場合は、開発への支援をご検討ください。

GitHub Sponsors Ko-fi

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。