Skip to main content
Glama
a-shipilo

YouTube MCP Server

by a-shipilo

youtube-mcp-server

CI License: MIT

MCP-сервер для вашего собственного YouTube-канала: Claude читает комментарии, готовит ответы, модерирует и смотрит аналитику. Ответы и модерация выполняются только после вашего подтверждения. Сервер запускается через uvx прямо из GitHub, устанавливать ничего не нужно.

English: an open-source MCP server for your own YouTube channel: read comment threads, reply and moderate (every write needs your confirmation) and query YouTube Analytics. Run it with uvx --from git+https://github.com/a-shipilo/youtube-mcp-server youtube-mcp-server.

Возможности

Инструмент

Что делает

Квота

channel

канал: название, @handle, подписчики, просмотры, число видео

1

videos

последние загрузки (включая Shorts): длительность, доступ, просмотры, лайки, комментарии

2+

comments

ветки комментариев к видео или всему каналу, с ответами и названием видео

1 за страницу

comment_thread

одна ветка со всеми ответами

1–2

reply

ответ в ветку от имени канала, с подтверждением

50

edit_reply

правка своего ответа, с подтверждением

50

moderate

одобрить, отправить на проверку или скрыть комментарии, по желанию заблокировать авторов, с подтверждением

50

analytics

готовые отчёты: итоги, по дням, топ видео, источники трафика, поисковые запросы, удержание, страны, устройства, демография

1

analytics_query

произвольный reports.query к YouTube Analytics API

1

confirm_action, cancel_action

подтвердить или отменить подготовленную операцию

—

  • comments по умолчанию показывает ветки, где последнее слово не за каналом: новые комментарии и уточняющие вопросы в старых ветках. show=unanswered — только ветки без ответа канала, show=all — все. status=heldForReview или likelySpam открывает очереди проверки из Студии.

  • Отвечать можно только в ветку (на комментарий верхнего уровня). Чтобы обратиться к участнику ветки, начните ответ с его @имени.

  • Лайкать комментарии и ставить им сердечки YouTube API не позволяет.

  • Квота YouTube API — 10 000 единиц в сутки, то есть около 200 ответов. Чтение почти бесплатное.

  • Данные аналитики отстают от текущей даты на 2–3 дня.

Подтверждение ответов и модерации

reply, edit_reply и moderate ничего не публикуют сразу: сначала вы видите предпросмотр (чей комментарий, к какому видео, текст ответа или список комментариев).

  • В клиентах с поддержкой elicitation (Claude Code) появляется диалог подтверждения.

  • В остальных (Claude Desktop) инструмент возвращает предпросмотр и одноразовый confirmation_id, Claude показывает предпросмотр в чате и вызывает confirm_action только после вашего согласия. Неподтверждённая операция истекает через 15 минут.

Режим задаёт YOUTUBE_CONFIRM_MODE: auto (по умолчанию: диалог, если клиент умеет, иначе confirmation_id), elicitation или token.

Related MCP server: youtube-creator-mcp

Установка

Нужен установленный uv (brew install uv на macOS).

1. Создайте OAuth-клиент в Google Cloud

  1. Откройте console.cloud.google.com и создайте проект.

  2. APIs & Services → Library: включите YouTube Data API v3 и YouTube Analytics API.

  3. Google Auth Platform → Get started: название приложения, ваша почта, тип External.

  4. Audience → Publish app. В статусе Testing Google отзывает доступ через 7 дней. Для личного использования проверка приложения не нужна: при входе Google просто предупредит, что приложение не проверено.

  5. Clients → Create client, тип Desktop app. Скачайте JSON и положите его в папку сервера: ~/.config/youtube-mcp-server/ (или в свою, см. YOUTUBE_MCP_DIR).

2. Разрешите доступ к каналу

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 check

3. Подключите сервер

Claude Code

claude mcp add youtube -s user -- uvx --from git+https://github.com/a-shipilo/youtube-mcp-server@v0.1.0 youtube-mcp-server

С папкой не по умолчанию добавьте -e YOUTUBE_MCP_DIR=/путь/к/папке перед --.

Claude Desktop

  1. Откройте Settings → Developer → Edit Config. Откроется файл claude_desktop_config.json.

  2. Добавьте сервер в mcpServers:

{
  "mcpServers": {
    "youtube": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/a-shipilo/youtube-mcp-server@v0.1.0",
        "youtube-mcp-server"
      ]
    }
  }
}
  1. Полностью перезапустите Claude Desktop.

@v0.1.0 фиксирует версию. Чтобы всегда брать последнюю версию из main, уберите @v0.1.0. Для обновления добавьте в args перед --from флаг --refresh.

Если в логах spawn uvx ENOENT, укажите полный путь к uvx (узнать его: which uvx), например "command": "/opt/homebrew/bin/uvx".

Настройки

Переменная

По умолчанию

Описание

YOUTUBE_MCP_DIR

~/.config/youtube-mcp-server

папка с JSON OAuth-клиента и token.json

YOUTUBE_CONFIRM_MODE

auto

как подтверждаются ответы и модерация: auto, elicitation, token

Без авторизации сервер всё равно стартует, а инструменты вернут понятную ошибку с командой auth.

Команды

Команда

Что делает

youtube-mcp-server

запускает MCP-сервер (stdio)

youtube-mcp-server auth [--client-secret PATH]

разрешает доступ к каналу в браузере и сохраняет его

youtube-mcp-server check

показывает канал, к которому есть доступ

youtube-mcp-server --version

версия

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). Access token живёт в памяти процесса и на диск не пишется. Сервер не логирует комментарии, ответы и статистику.

  • Что видит MCP-клиент. Результаты инструментов (комментарии, статистика) получает клиент, который их вызвал, например Claude, и они попадают в ваш разговор с моделью по правилам этого клиента.

  • Права. Сервер запрашивает youtube.force-ssl (чтение и запись комментариев канала) и yt-analytics.readonly. Публикация и модерация выполняются только после вашего подтверждения.

  • Как отозвать доступ. Удалите 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

Лицензия

MIT

Available Tools

11 tools
analyticsA
Read-only

Готовый отчёт YouTube Analytics по каналу или одному видео. Данные отстают на 2–3 дня.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportYesoverview — итоги за период; daily — по дням; top_videos — лучшие видео периода; traffic_sources — откуда приходят просмотры; search_terms — поисковые запросы YouTube, по которым находят видео; retention — кривая удержания (нужен video_id); geography — страны; devices — устройства; demographics — возраст и пол
end_dateNoYYYY-MM-DD включительно; по умолчанию сегодня
video_idNoОдно видео; без него — весь канал
start_dateNoYYYY-MM-DD; по умолчанию дата публикации видео или 28 дней назад для канала

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=true and openWorldHint=true, so the safety profile is clear. The description adds a valuable behavioral detail beyond annotations: data lags 2–3 days, which is critical for interpreting analytics results. It does not discuss auth or rate limits, but that is a minor gap given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the tool's purpose and then adding the important data-freshness caveat. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema with full parameter descriptions, an existing output schema, and annotations that cover safety and open-world behavior, the description provides enough context for an agent to call the tool correctly. The only missing piece is explicit routing vs analytics_query, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the report enum values and date/video semantics. The description adds no additional parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a ready-made YouTube Analytics report for a channel or a single video, giving a specific resource and scope. It implicitly distinguishes from the sibling analytics_query through the word 'готовый' (ready-made), but does not explicitly name or contrast with that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like analytics_query. The description only states what it provides; it does not mention when-not-to-use, prerequisites, or which sibling to choose for custom queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analytics_queryA
Read-only

Произвольный запрос reports.query к YouTube Analytics API v2 по каналу — для того, чего нет в готовых отчётах analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoСортировка, например -views
filtersNoФильтры, например video==ID;country==RU
metricsYesМетрики через запятую, например views,likes
end_dateNoYYYY-MM-DD включительно; по умолчанию сегодня
dimensionsNoИзмерения через запятую, например day или video
start_dateNoYYYY-MM-DD; по умолчанию дата публикации видео или 28 дней назад для канала
max_resultsNoСколько строк вернуть

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and external-service profile is covered. The description reinforces the external API target (YouTube Analytics API v2) but adds no detail about quotas, rate limits, or the shape of the returned rows. With annotations carrying the safety burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, stating vendor, endpoint and scope. It is tight and appropriately sized, though the trailing clause about 'чего нет в готовых отчётах analytics' is slightly redundant with the purpose already stated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the read-only/open-world profile, the description only needs to establish purpose and routing, which it does. It could say more about when this raw-query escape hatch is preferable and any limits on it, but nothing essential for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter (sort, filters, metrics, dimensions, dates, max_results) has a concrete example in the schema. The description adds nothing about parameter syntax or restrictions, so it sits at the baseline of 3 — the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource combination — an arbitrary 'reports.query' against the YouTube Analytics API v2 for a channel — so the agent knows exactly what the tool does. It also positions itself against the sibling 'analytics' tool by scoping itself to what the ready-made reports don't cover, which helps differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the selection condition clearly: use this for queries that the prepared 'analytics' reports cannot answer. That implicitly routes the agent away from the simpler sibling. It does not, however, name the 'analytics' tool explicitly or describe prerequisites/auth, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_actionA
Idempotent

Отменить подготовленную операцию, если пользователь отказался.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_idYesconfirmation_id из ответа инструмента

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover idempotency (idempotentHint: true) and non-destructiveness (destructiveHint: false). The description adds the refusal condition but doesn't elaborate on edge cases like cancelling an already-cancelled operation. With annotations handling the safety profile, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that front-loads the verb and purpose. No wasted words, and the key condition is stated immediately. It is efficiently structured for quick parsing by an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple cancel operation with one well-documented parameter, annotations covering idempotency and non-destructiveness, and an output schema present, the description provides enough context. It could explicitly reference confirm_action as the counterpart, but the condition makes the usage clear. Slight room for improvement, but not a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents the only parameter (confirmation_id) with a description, and the tool description adds no extra semantics beyond what the schema already provides. With 100% schema coverage, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (cancel), the target (prepared operation), and the condition (if the user refused). It distinguishes itself from the sibling confirm_action by indicating the opposite action, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for when to use the tool (when the user refuses a prepared operation). It doesn't explicitly exclude other scenarios or name alternatives, but the condition implicitly differentiates it from confirm_action, giving sufficient guidance for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channelB
Read-only

Авторизованный канал: id, название, @handle, подписчики, просмотры, число видео.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The word 'Авторизованный' adds useful context that this returns the authenticated user's own channel rather than an arbitrary one, but nothing is said about rate limits, caching, or freshness of the metrics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact clause with the key noun (authorized channel) front-loaded and the returned fields listed after a colon. No wasted words, though the telegraphic fragment style is terse even for a one-line definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the return payload does not need explaining, and the description arguably duplicates that field list rather than adding behavioral detail. For a simple zero-parameter read this is minimally adequate, but it omits any framing about scope or typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is 100% with an empty properties object, leaving no parameter gap to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (the authorized channel) and enumerates the data it exposes (id, name, @handle, subscribers, views, video count). However, it is a bare noun phrase with no verb such as 'returns'/'fetches', and it does not differentiate itself from siblings like videos or analytics, which also surface channel-related metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool versus alternatives such as videos, analytics, or analytics_query, and no stated prerequisites. The agent must infer usage purely from the tool name and the field list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

commentsB
Read-only

Ветки комментариев к видео канала, от новых к старым, с ответами и названием видео.

mine=true помечает сообщения самого канала. Ответить в ветку — инструментом reply по её thread_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
showNoawaiting — последнее слово в ветке не за каналом (новые комментарии и уточняющие вопросы); unanswered — канал в ветке ни разу не ответил; all — все ветки. По умолчанию "awaiting".
limitNoСколько веток вернуть максимум. По умолчанию 50.
sinceNoТолько ветки с активностью начиная с этой даты: YYYY-MM-DD или ISO 8601
statusNopublished — опубликованные; heldForReview и likelySpam — очереди проверки в Студии. По умолчанию "published".
video_idNoОдно видео; без него — весь канал

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful behavioral detail beyond that: ordering, inclusion of replies and video titles, and a note about channel tagging. It does not discuss pagination or the meaning of the queue states, whose semantics instead live in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the resource and ordering before the routing hint. No filler, though it spends a sentence on the non-existent 'mine' flag.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the readOnly annotation covers the safety profile. The remaining gaps are the phantom 'mine' parameter and the absence of any contrast with comment_thread, leaving the agent slightly under-informed about the tool's true surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline would be 3, but the description asserts a 'mine=true' parameter that does not exist in the input schema. That introduces a phantom flag an agent may try to pass, actively harming invocation accuracy rather than adding meaning. This mismatch pulls the score below the schema-driven baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (comment threads of channel videos) with ordering (new to old) and payload contents (replies, video title), which is enough to distinguish it from a keyword-stuffed tautology. However it never explicitly contrasts with the close sibling comment_thread, which returns a single thread, so the boundary is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent: replying in a thread should be done with the reply tool using the thread_id. It gives a clear context of use (browsing threads from new to old) but offers no when-not guidance or comparison against comment_thread/moderate, so the alternative mapping is only partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

comment_threadC
Read-only

Одна ветка комментариев со всеми ответами.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesthread_id ветки (id комментария верхнего уровня)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description does add one useful behavioral fact: the thread is returned with all of its replies, which matters because 'reply' is a separate sibling tool and an agent might otherwise assume replies must be fetched separately. Nothing is said about auth, rate limits, or ordering, but the annotation bar is lower here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler; the scoping detail ('all replies') is front-loaded. It is arguably under-specified rather than verbose, but it wastes nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the read-only annotation covers the operation's nature. For a one-parameter read tool this is close to sufficient, but it never states the operation explicitly nor how the thread relates to the separate 'comments' and 'reply' tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single thread_id parameter is fully documented in the schema, including the clarification that it is the top-level comment id. The description adds no syntax or format detail beyond that, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'Одна ветка комментариев со всеми ответами' names the resource (a single comment thread) and its scope (including all replies), which does help distinguish it from the sibling 'comments' (plural listing). However, it is a bare noun phrase with no verb, so the agent must infer that this is a retrieval operation rather than, say, a thread-management action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus 'comments' or 'reply'. The mention of 'all replies' hints at a relationship to the reply tool, but no condition or alternative is stated, so the agent has no routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_actionA
Destructive

Выполнить подготовленную операцию. Вызывайте ТОЛЬКО после того, как пользователь увидел preview и явно согласился выполнить именно эту операцию.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_idYesconfirmation_id из ответа инструмента

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a write/action tool. The description adds the context that it executes an already-prepared operation and requires prior user consent, which is helpful but not deeply informative about side effects or failure modes. It does not contradict annotations and provides modest additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the purpose, and places the critical usage constraint right after. Every sentence earns its place, and there is no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single parameter, a full schema description, and an output schema, so the description does not need to explain return values. The description provides the essential operational guidance (execute only after confirmed preview), making it complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, confirmation_id, and the schema description covers it fully ('confirmation_id из ответа инструмента'). The description adds no additional meaning beyond the schema, so the baseline score of 3 for high schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool executes a 'prepared operation' ('Выполнить подготовленную операцию'), which is a specific verb and resource. It clearly implies a confirmation/execution step rather than a read or list operation, and the user-consent condition distinguishes it from generic action tools. However, 'prepared operation' is somewhat generic and doesn't name a specific resource type, so it falls short of perfect clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call: 'Вызывайте ТОЛЬКО после того, как пользователь увидел preview и явно согласился выполнить именно эту операцию' (call only after the user saw the preview and explicitly agreed). This is a strong, unambiguous precondition that also implicitly tells the agent when not to call (before consent). It effectively differentiates this from siblings like cancel_action or other action tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_replyA

Заменить текст комментария или ответа самого канала (50 единиц квоты).

Перед изменением пользователь видит старый и новый текст и подтверждает замену.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesТекст ответа, обычный текст
comment_idYesid комментария или ответа самого канала

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation/safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false). The description adds genuinely useful context beyond them: a 50-unit quota cost and a two-step confirmation flow where the user reviews old and new text, which signals interaction with confirm_action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and quota cost, followed by the confirmation behavior. No filler, though the quota note could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and annotations carry the safety profile. Combined with the quota and confirmation disclosure, the agent has enough to call it correctly; only the routing against sibling tools like reply/moderate is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters, so the schema already documents text and comment_id. The description maps loosely onto them ('текст комментария или ответа самого канала') but adds no format, length, or ID-syntax detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: replacing the text of a comment or the channel's own reply. The qualifier 'ответа самого канала' scopes it away from editing arbitrary third-party comments, though it does not name the sibling tools (reply, moderate) it should be chosen over.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage is clear enough (edit existing text rather than post new content), and the mention of a user confirmation step hints at the workflow, but there is no explicit when-to-use vs alternatives such as reply or moderate, and no stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

moderateA
DestructiveIdempotent

Сменить статус модерации комментариев зрителей (50 единиц квоты за вызов).

Перед изменением пользователь видит список комментариев и действие и подтверждает его.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYespublish — одобрить (например, из heldForReview или likelySpam); hold — отправить на проверку; reject — скрыть с видео
ban_authorNoТолько с reject: скрывать и будущие комментарии этих авторов. По умолчанию false.
comment_idsYesid комментариев зрителей

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=true, and openWorld=true, so the safety profile is covered. The description adds quota cost (50 units per call) and the pre-change user confirmation step, both of which are behavioral facts not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are front-loaded with the operation and its quota cost, then the confirmation context. No filler, though the second sentence is somewhat oblique about the confirmation mechanism.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers quota cost, scope, and the confirmation step. It is nearly complete for this mutation tool, missing only an explicit pointer to the confirmation sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum values for action are fully documented in the schema, including what ban_author does. The description adds no parameter-level detail beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: changing the moderation status of viewer comments. An agent can distinguish it from read-oriented siblings like comments or comment_thread, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a confirmation workflow ('the user sees the list and the action and confirms it'), which points toward the confirm_action/cancel_action siblings, but it never names them or states the condition for using this tool vs them. Usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replyA

Ответить в ветку комментариев от имени канала (50 единиц квоты).

Перед публикацией пользователь видит предпросмотр и подтверждает его.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesТекст ответа, обычный текст
thread_idYesthread_id ветки (id комментария верхнего уровня)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (write, non-idempotent, non-destructive, open-world), and the description adds genuinely new behavioral context: a quota cost of 50 units and a mandatory preview-then-confirm step before publishing. It omits failure modes and what happens on rejection, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and actor ('on behalf of the channel'), with the quota cost and confirmation requirement packed into the second. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the description documents the quota cost and confirmation gate, which are the two most consequential facts for calling this tool. The only gap is routing guidance relative to edit_reply, which is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only two parameters (text, thread_id) fully documented in the schema, so the baseline is 3. The description adds no syntax, format or constraint detail for either parameter beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (reply/post) and resource (comment thread), plus scoping detail — posted on behalf of the channel — which cannot be inferred from the name alone. Combined with the sibling set, an agent can separate this create-a-reply tool from edit_reply (modify existing) and comment_thread (read).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the publish flow (preview then user confirmation) but never states when to pick this over edit_reply or when not to use it, nor does it name any alternative. Usage is only weakly implied by the confirmation sentence, so this is the minimum-viable level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

videosA
Read-only

Последние загрузки канала, включая Shorts, от новых к старым: название, дата публикации, длительность в секундах, доступ (public/unlisted/private), просмотры, лайки и число комментариев.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько последних загрузок вернуть. По умолчанию 20.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful traits beyond that: the sort order (newest to oldest) and that Shorts are included. It does not address pagination, quota/rate limits, or what happens at the 200 limit boundary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence leading with the resource and ordering, followed by a compact colon list of returned fields. No filler, though the field enumeration is somewhat redundant given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool, an output schema covers return values and annotations cover the safety profile, so the description is nearly complete. The remaining gap is the absence of any routing guidance relative to sibling tools like 'channel' or 'analytics'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'limit' parameter is fully documented in the schema (including the default of 20), so the description need not restate it. The description adds no semantics beyond the schema, which is the correct baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: recent channel uploads including Shorts, ordered newest-to-oldest, with an explicit enumeration of the returned fields. It does not explicitly contrast itself with siblings like 'channel' or 'analytics', but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites, and no named alternative among siblings such as 'analytics' or 'comments'. The use case (browse recent uploads) is only implied by the content described, which meets the 'implied usage' bar but no more.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedanalytics
    • First observedanalytics_query
    • First observedcancel_action
    • First observedchannel
    • First observedcomment_thread
    • First observedcomments
    • First observedconfirm_action
    • First observededit_reply
    • First observedmoderate
    • First observedreply
    • First observedvideos

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency4/5

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).

Tool Count5/5

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.

Completeness4/5

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.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for managing YouTube channels using Data API v3 and Analytics. Supports video upload, comments, playlists, and analytics via ~30 tools, with stateless OAuth authentication.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local, privacy-first MCP server providing direct access to official YouTube Data, Analytics, Reporting, and Live Streaming APIs for creators, enabling channel analysis, research, and guarded management operations.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with YouTube channels, providing analytics, video metadata updates, transcript extraction, and comment management through official Google APIs with OAuth 2.0.
    MIT