YouTube MCP Server
YouTube MCP Server lets Claude manage and analyze your own YouTube channel — read comments, reply and moderate (every write requires your confirmation), and pull YouTube Analytics.
Channel & video info —
channelreturns your channel's id, name, @handle, subscribers, views and video count;videoslists recent uploads (including Shorts) with title, publish date, duration, visibility, views, likes and comment counts.Read comments —
commentsfetches comment threads for a video or the whole channel with replies and video titles, filterable byshow(awaiting / unanswered / all),sincedate,status(published, heldForReview, likelySpam review queues) andlimit;comment_threadreturns one thread with all its replies.Reply & edit (with confirmation) —
replyposts a channel reply into a thread andedit_replyrewrites one of your own comments; both show a preview and require explicit user approval before publishing (50 quota units each).Moderate (with confirmation) —
moderateapproves, holds or hides up to 50 viewer comments and optionally bans the authors from future comments; previewed and confirmed first.Analytics —
analyticsgives ready-made reports (overview, daily, top videos, traffic sources, search terms, retention, geography, devices, demographics), andanalytics_queryruns arbitrary Reports queries with custom metrics, dimensions, filters, sorting and date ranges.Confirmation flow —
reply,edit_replyandmoderatenever publish immediately: the server returns a preview plus a one-timeconfirmation_id(or an elicitation dialog in clients that support it), which you accept withconfirm_actionor discard withcancel_action; unconfirmed operations expire after 15 minutes.Operational notes — runs locally against Google APIs only (no backend or telemetry), uses ~10,000 daily quota units (~200 replies), analytics data lags 2–3 days, and liking/hearting comments isn't supported by the YouTube API.
Provides tools for interacting with your own YouTube channel: reading channel and video information, comment threads, replying and moderating comments (with confirmation), and querying YouTube Analytics reports.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YouTube MCP Server show me new comments on my channel that need replies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
youtube-mcp-server
MCP-сервер для вашего собственного YouTube-канала: Claude читает комментарии, готовит ответы,
модерирует, смотрит аналитику, загружает и правит видео. Ответы, модерация, загрузка и правка выполняются
только после вашего подтверждения.
Сервер запускается через uvx прямо из GitHub, устанавливать ничего не нужно.
English: an open-source MCP server for your own YouTube channel: read comment threads, reply and moderate,
query YouTube Analytics, upload videos (resumable, multi-GB) with a thumbnail and subtitles and edit them
(every write needs your confirmation). Run it with
uvx --from git+https://github.com/a-shipilo/youtube-mcp-server youtube-mcp-server.
Возможности
Инструмент | Что делает | Квота |
| канал: название, @handle, подписчики, просмотры, число видео | 1 |
| последние загрузки (включая Shorts): длительность, доступ, просмотры, лайки, комментарии | 2+ |
| ветки комментариев к видео или всему каналу, с ответами и названием видео | 1 за страницу |
| одна ветка со всеми ответами | 1–2 |
| ответ в ветку от имени канала, с подтверждением | 50 |
| правка своего ответа, с подтверждением | 50 |
| одобрить, отправить на проверку или скрыть комментарии, по желанию заблокировать авторов, с подтверждением | 50 |
| загрузка видео с компьютера (по частям, с докачкой) с обложкой и субтитрами, по умолчанию private, с подтверждением | 1 загрузка из 100 в сутки + 50 за обложку + 400 за субтитры |
| правка загруженного видео: название, описание, теги, категория, доступ, обложка, ещё одна дорожка субтитров, с подтверждением | 51 + 50 за обложку + 400 за субтитры |
| готовые отчёты: итоги, по дням, топ видео, источники трафика, поисковые запросы, удержание, страны, устройства, демография | 1 |
| произвольный | 1 |
| подтвердить или отменить подготовленную операцию | — |
commentsпо умолчанию показывает ветки, где последнее слово не за каналом: новые комментарии и уточняющие вопросы в старых ветках.show=unanswered— только ветки без ответа канала,show=all— все.status=heldForReviewилиlikelySpamоткрывает очереди проверки из Студии.Отвечать можно только в ветку (на комментарий верхнего уровня). Чтобы обратиться к участнику ветки, начните ответ с его @имени.
Лайкать комментарии и ставить им сердечки YouTube API не позволяет.
Квота YouTube API — 10 000 единиц в сутки, то есть около 200 ответов. Чтение почти бесплатное. Загрузки видео считаются отдельно: до 100 в сутки.
Данные аналитики отстают от текущей даты на 2–3 дня.
Подтверждение записи
reply, edit_reply, moderate, upload_video и update_video ничего не делают сразу: сначала вы видите
предпросмотр (чей комментарий и текст ответа, список комментариев; для видео — файл и его размер, название,
начало описания, теги, доступ, обложку, субтитры и расход квоты, для правки — что было и что станет).
В клиентах с поддержкой elicitation (Claude Code) появляется диалог подтверждения.
В остальных (Claude Desktop) инструмент возвращает предпросмотр и одноразовый
confirmation_id, Claude показывает предпросмотр в чате и вызываетconfirm_actionтолько после вашего согласия. Неподтверждённая операция истекает через 15 минут.
Режим задаёт YOUTUBE_CONFIRM_MODE: auto (по умолчанию: диалог, если клиент умеет, иначе confirmation_id),
elicitation или token.
Загрузка и правка видео
upload_videoберёт файл с диска (абсолютный путь), название, описание, теги, категорию, язык и доступ. Доступ по умолчанию private: видео видно только вам, опубликовать его можно потом в Студии или черезupdate_videoсprivacy=public.publish_atставит отложенную публикацию.Файл уходит по resumable-протоколу кусками по 32 МБ: после обрыва связи или ошибки 5xx загрузка продолжается с места, где YouTube остановился. Клиенты с поддержкой progress видят ход загрузки.
Обложка — JPEG или PNG до 2 МБ (
thumbnails.set; YouTube требует подтверждённый канал). Субтитры —.srtс таймкодами (captions.insert). Если обложка или субтитры не прошли, видео всё равно остаётся загруженным, а в ответе написано, что не получилось: обложку можно поставить ещё раз черезupdate_video.Если файл изменился между предпросмотром и подтверждением, загрузка не начнётся.
update_videoменяет только указанные поля и переносит остальные как есть (YouTube заменяет раздел видео целиком, поэтому сервер перечитывает видео прямо перед правкой).
Related MCP server: YouTube Plugin
Установка
Нужен установленный uv
(brew install uv на macOS).
1. Создайте OAuth-клиент в Google Cloud
Откройте console.cloud.google.com и создайте проект.
APIs & Services → Library: включите YouTube Data API v3 и YouTube Analytics API.
Google Auth Platform → Get started: название приложения, ваша почта, тип External.
Audience → Publish app. В статусе Testing Google отзывает доступ через 7 дней. Для личного использования проверка приложения не нужна: при входе Google просто предупредит, что приложение не проверено.
Clients → Create client, тип Desktop app. Скачайте JSON и положите его в папку сервера:
~/.config/youtube-mcp-server/(или в свою, см.YOUTUBE_MCP_DIR).
2. Разрешите доступ к каналу
Обновление до 0.3.0. Для загрузки видео сервер теперь запрашивает ещё право
youtube.upload. Пройдите авторизацию заново (команда ниже), затем обновитеYOUTUBE_REFRESH_TOKENв настройках плагина (и в менеджере паролей):youtube-mcp-server credentialsпокажет новое значение. Старый доступ сyoutube.force-sslGoogle по документации тоже пускает к загрузке, но если инструменты ответят «не хватает прав», дело в нём.
uvx --from git+https://github.com/a-shipilo/youtube-mcp-server youtube-mcp-server authОткроется браузер. Выберите аккаунт канала (если канал на бренд-аккаунте, выберите именно его),
на экране «Google hasn't verified this app» нажмите Advanced → Go to … и разрешите доступ.
Команда сохранит token.json рядом с JSON клиента и покажет канал.
Проверить доступ позже:
uvx --from git+https://github.com/a-shipilo/youtube-mcp-server youtube-mcp-server check3. Подключите сервер
Claude Code: плагин
Репозиторий — ещё и маркетплейс плагинов Claude Code с плагином youtube. Доступ к каналу плагин хранит
в своих настройках (секретные поля — в системной связке ключей), а не в файлах.
Покажите значения доступа (после шага 2):
uvx --from git+https://github.com/a-shipilo/youtube-mcp-server youtube-mcp-server credentialsКоманда выведет
YOUTUBE_CLIENT_ID,YOUTUBE_CLIENT_SECRETиYOUTUBE_REFRESH_TOKEN. Сохраните их в менеджере паролей: на другом компьютере повторять авторизацию не придётся.Добавьте маркетплейс и поставьте плагин:
claude plugin marketplace add a-shipilo/youtube-mcp-server claude plugin install youtube@youtube-mcp-serverИли в Claude Code:
/plugin→ Marketplaces → добавитьa-shipilo/youtube-mcp-server, затем установитьyoutube. При включении плагин спросит три значения из шага 1.После этого
token.jsonможно удалить: плагину он не нужен.
Плагин подтверждает ответы, модерацию, загрузку и правку видео в чате (YOUTUBE_CONFIRM_MODE=token). Инструменты называются
mcp__plugin_youtube_youtube__*.
Claude Code: без плагина
claude mcp add youtube -s user -- uvx --from git+https://github.com/a-shipilo/youtube-mcp-server@v0.3.0 youtube-mcp-serverС папкой не по умолчанию добавьте -e YOUTUBE_MCP_DIR=/путь/к/папке перед --.
Claude Desktop
Откройте Settings → Developer → Edit Config. Откроется файл
claude_desktop_config.json.Добавьте сервер в
mcpServers:
{
"mcpServers": {
"youtube": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/a-shipilo/youtube-mcp-server@v0.3.0",
"youtube-mcp-server"
]
}
}
}Полностью перезапустите Claude Desktop.
@v0.3.0 фиксирует версию. Чтобы всегда брать последнюю версию из main, уберите @v0.3.0.
Для обновления добавьте в args перед --from флаг --refresh.
Если в логах spawn uvx ENOENT, укажите полный путь к uvx (узнать его: which uvx),
например "command": "/opt/homebrew/bin/uvx".
Настройки
Переменная | По умолчанию | Описание |
|
| папка с JSON OAuth-клиента и |
| — | доступ к каналу вместо |
|
| как подтверждаются ответы, модерация, загрузка и правка видео: |
Без авторизации сервер всё равно стартует, а инструменты вернут понятную ошибку с командой auth.
Команды
Команда | Что делает |
| запускает MCP-сервер (stdio) |
| разрешает доступ к каналу в браузере и сохраняет его |
| показывает канал, к которому есть доступ |
| выводит сохранённый доступ как |
| версия |
Privacy
Конфиденциальность. Сервер работает на вашем компьютере, у него нет своего бэкенда, аналитики или телеметрии.
Куда уходят запросы. Только в Google: YouTube Data API, YouTube Analytics API и OAuth (
googleapis.com,youtubeanalytics.googleapis.com,oauth2.googleapis.com). Никаким третьим сторонам сервер данные канала не передаёт.Где хранится доступ. Refresh token лежит только локально: в
token.jsonвYOUTUBE_MCP_DIR, с правами600(папка —700), или, с плагином Claude Code, в настройках плагина. Access token живёт в памяти процесса и на диск не пишется. Сервер не логирует комментарии, ответы и статистику.Что видит MCP-клиент. Результаты инструментов (комментарии, статистика) получает клиент, который их вызвал, например Claude, и они попадают в ваш разговор с моделью по правилам этого клиента.
Права. Сервер запрашивает
youtube.force-ssl(комментарии, правка видео, субтитры),youtube.upload(загрузка видео и обложек) иyt-analytics.readonly. Ответы, модерация, загрузка и правка видео выполняются только после вашего подтверждения.Файлы видео.
upload_videoиupdate_videoчитают с диска только указанные файлы и отправляют их только в YouTube (www.googleapis.com/upload).Как отозвать доступ. Удалите
token.json(или плагин) и отзовите доступ приложения на myaccount.google.com/permissions.
English: the server runs locally and talks only to Google APIs; it has no backend or telemetry. The refresh
token is stored only on your machine (token.json, mode 600). Tool results go to the MCP client that called
the tool. Revoke access at myaccount.google.com/permissions.
Разработка
git clone https://github.com/a-shipilo/youtube-mcp-server.git
cd youtube-mcp-server
uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .Локальная отладка в MCP Inspector:
npx @modelcontextprotocol/inspector uv run youtube-mcp-serverЛицензия
Available Tools
11 toolsanalyticsARead-only
Готовый отчёт YouTube Analytics по каналу или одному видео. Данные отстают на 2–3 дня.
Inputs: report (required), end_date, video_id, start_date. Returns: object
analytics_queryARead-only
Произвольный запрос reports.query к YouTube Analytics API v2 по каналу — для того, чего нет в готовых отчётах analytics.
Inputs: metrics (required), sort, filters, end_date, +3 more. Returns: object
cancel_actionAIdempotent
Отменить подготовленную операцию, если пользователь отказался.
Inputs: confirmation_id (required). Returns: object
channelBRead-only
Авторизованный канал: id, название, @handle, подписчики, просмотры, число видео.
Inputs: no named parameters. Returns: object
commentsBRead-only
Ветки комментариев к видео канала, от новых к старым, с ответами и названием видео.
mine=true помечает сообщения самого канала. Ответить в ветку — инструментом reply по её thread_id.
Inputs: show, limit, since, status, +1 more. Returns: object
comment_threadCRead-only
Одна ветка комментариев со всеми ответами.
Inputs: thread_id (required). Returns: object
confirm_actionADestructive
Выполнить подготовленную операцию. Вызывайте ТОЛЬКО после того, как пользователь увидел preview и явно согласился выполнить именно эту операцию.
Inputs: confirmation_id (required). Returns: object
edit_replyA
Заменить текст комментария или ответа самого канала (50 единиц квоты).
Перед изменением пользователь видит старый и новый текст и подтверждает замену.
Inputs: text (required), comment_id (required). Returns: object
moderateADestructiveIdempotent
Сменить статус модерации комментариев зрителей (50 единиц квоты за вызов).
Перед изменением пользователь видит список комментариев и действие и подтверждает его.
Inputs: action (required), comment_ids (required), ban_author. Returns: object
replyA
Ответить в ветку комментариев от имени канала (50 единиц квоты).
Перед публикацией пользователь видит предпросмотр и подтверждает его.
Inputs: text (required), thread_id (required). Returns: object
videosARead-only
Последние загрузки канала, включая Shorts, от новых к старым: название, дата публикации, длительность в секундах, доступ (public/unlisted/private), просмотры, лайки и число комментариев.
Inputs: limit. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct resource or action: channel info, video list, comment threads (list vs. single), reply/edit/moderate actions, analytics (ready vs. custom), and confirmation meta-actions. Boundaries between similar tools (comments vs. comment_thread, analytics vs. analytics_query, reply vs. edit_reply) are clearly defined in descriptions.
All names use consistent snake_case, and there is a logical split: nouns for retrieval (channel, videos, comments, analytics) and verbs for mutations (reply, edit_reply, moderate). Minor deviations exist, such as confirm_action/cancel_action using an _action suffix while other actions do not, and inconsistent pluralization (videos/comments plural vs. channel/analytics singular).
11 tools is well-scoped for a YouTube channel management and analytics server. Each tool earns its place, covering core read, write, and meta-operation needs without excessive overlap or missing obvious utilities.
The surface covers channel overview, recent uploads, comment listing/threading, replying/editing/moderating comments, and both ready-made and custom analytics. Minor gaps remain: no way to retrieve a specific video by ID (only recent uploads), no video search, and no comment deletion tool, but core workflows are supported.
Maintenance
Related MCP Connectors
Hosted MCP for YouTube Studio: uploads, metadata, playlists, comments, analytics, captions.
Your YouTube channels’ private analytics for AI assistants: revenue, views, retention. Read-only.
Real-time YouTube transcripts, comments, channels & video search MCP. Local npx or hosted OAuth.
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables users to access their own YouTube channel, videos, and analytics through MCP-compatible clients such as ChatGPT and Claude, exposing tools for channel stats, video listing, video analytics, and video search.24 npm-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to manage multiple named YouTube accounts through one local stdio server, covering video upload and scheduling, metadata, captions, playlists, comments, live broadcasts and chat, channel branding, and analytics reporting via the official Google APIs. It also offers optional FFmpeg-based local media tools for probing, muxing audio, normalizing loudness, trimming, burning subtitles, and extracting thumbnails.MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to search YouTube, manage a channel, read analytics, and handle uploads, playlists, captions, comments, and moderation while requiring explicit approval for every change.7923 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude and other MCP clients to query a user's YouTube channel analytics and public YouTube data—including videos, channels, playlists, comments, searches, and trending charts—through read-only Google APIs on a privately hosted deployment.23 npmMIT