Skip to main content
Glama

youtube-mcp

チャンネル所有者向けのOAuth認証済みYouTube MCP — 動画メタデータの編集、コメントへの返信とモデレーション、プレイリストの管理、チャンネル分析のクエリ、そしてComfyUIブリッジを介したAIサムネイルの生成と設定が可能です。この分野で主流の読み取り専用Data API v3ラッパーを超えた機能を提供します。

MCP Server Seriesの一部です。

GitHub Sponsors Ko-fi

概要

既存のYouTube MCPの多くはData API v3に対してAPIキーを使用しており、動画検索や公開メタデータの取得といった読み取り専用の機能に限定されています。本ツールはOAuth 2.0 (Authorization Code + PKCE)を使用するため、動画タイトル・説明・タグの更新、コメントへの返信、スパムのモデレーション、プレイリストの管理など、チャンネルへの書き込みが可能です。さらに、チャンネル統計用のYouTube Analytics APIへのアクセスや、**ComfyUIでサムネイルを生成してYouTubeにプッシュする(単一のMCP呼び出しで完結)**という強力なツールも備えています。

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同意画面 — 「外部」を選択し、アプリ名とサポートメールアドレスを設定します。スコープに以下を追加してください:

    • youtube.upload

    • youtube.force-ssl

    • yt-analytics.readonly

  5. テスト モードのままにします。自分自身を テストユーザー として追加してください(必須)。プロジェクト所有者であれば、リフレッシュトークンは期限切れになりません。

  6. OAuthクライアントIDの作成: アプリケーションの種類 = デスクトップアプリ。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-file

YOUTUBE_CLIENT_SECRET_FILE

Google OAuth JSONへのパス

--client-id

YOUTUBE_CLIENT_ID

シークレットファイルの代わり

--client-secret

YOUTUBE_CLIENT_SECRET

シークレットファイルの代わり

--token-file

YOUTUBE_TOKEN_FILE

~/.config/youtube-mcp/token.json

リフレッシュトークンの保存先

--host

MCP_HOST

0.0.0.0

バインドホスト

--port

MCP_PORT

9120

バインドポート

--comfyui-url

COMFYUI_URL

(未設定 — ブリッジ無効)

ブリッジツール用ComfyUI HTTP URL

COMFYUI_DEFAULT_CKPT

sd_xl_base_1.0.safetensors

ブリッジツールのデフォルトチェックポイント

ツール

動画

  • list_my_videos — 認証済みチャンネルのアップロード動画をページネーション付きでリスト表示

  • get_video — 特定の動画の詳細情報を取得

  • update_video_metadata — タイトル / 説明 / タグ / カテゴリ / 公開設定の更新

  • delete_video — 動画を完全に削除。誤削除を防ぐため、現在のタイトルと一致する confirm_video_title が必要です。

字幕

  • list_captions — 動画の字幕トラックをリスト表示(言語、名前、ステータス、ドラフトフラグ)

  • upload_caption — SRTまたはWebVTT字幕トラックを動画にアップロード

  • delete_caption — 字幕トラックを削除

ショート動画

  • list_my_shorts — 最近のアップロードからショート動画を検索(60秒以下の長さをフィルタリング)

  • get_shorts_analytics — ショート動画に限定した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以上が必要です。

ロードマップ

  • [x] 動画リスト / 取得 / メタデータ更新

  • [x] プレイリスト作成 + 追加

  • [x] コメントリスト / 返信 / モデレーション

  • [x] チャンネル分析クエリ

  • [x] ComfyUIサムネイルブリッジ (generate_and_set_thumbnail)

  • [x] 字幕アップロード + リスト + 削除 (upload_caption, list_captions, delete_caption)

  • [x] タイトル一致確認ガード付きの動画削除

  • [x] ショート動画の利便性向上: list_my_shorts (長さフィルタ) + get_shorts_analytics (creatorContentType==SHORTS)

  • [ ] 動画アップロード (video_upload) — 再開可能なアップロードのサポート

  • [ ] 大規模な履歴データエクスポート用のレポートAPI

ライセンス

MIT © Joe Miller

サポート

このツールが役に立った場合は、開発の支援をご検討ください:

GitHub Sponsors Ko-fi

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/miller-joe/youtube-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server