Skip to main content
Glama

youtube-kit

CI PyPI Python License: MIT Listed on mcpservers.org

YouTube CLI (ytk) and MCP server, built for agents and humans. Let Claude Code, Codex, Cursor, Claude Desktop or ChatGPT work on your channel: analytics, transcripts, uploads, metadata, playlists and comment moderation. It handles several channels, and you can run the same commands in your own terminal.

Claude Code answering "what were my top 3 videos in the last 28 days?" with ytk

Quick start

uv tool install youtube-kit
ytk auth login      # one-time Google Cloud setup, then pick your channel

You need a Google account with a YouTube channel, and uv (brew install uv on macOS). The first ytk auth login takes about 5 minutes: it opens each Google Cloud page, says what to click and picks up the file you download.

ytk analytics --by video --since 90d --limit 5     # your top videos of the last 90 days
ytk comment list --status held                     # comments waiting for review
ytk caption transcript VIDEO | jq -r .text         # what you say in one of your videos
ytk channel get @mkbhd | jq .stats                 # any public channel

ytk commands piping JSON into jq

Or ask your agent: "Which of my videos got the most views this month, and are any comments waiting for review?"

Related MCP server: yt-fetch

Use it from your agent

Skill: Claude Code, Codex, Cursor and other shell agents

A short skill teaches the agent the CLI. It loads only when a YouTube task comes up.

claude plugin install youtube-kit --marketplace eukosh/youtube-kit   # Claude Code
codex plugin marketplace add eukosh/youtube-kit                      # Codex, then:
codex plugin add youtube-kit@youtube-kit
npx skills add eukosh/youtube-kit -g                                 # Cursor and others

The plugins follow ytk releases. Codex updates them at startup; Claude Code does once you turn on auto-update under /plugin → Marketplaces. With npx skills, run npx skills update.

MCP: Claude Desktop, ChatGPT and other MCP clients

ytk mcp serves the same operations as tools. In Claude Code:

claude mcp add youtube -- uvx youtube-kit mcp

In clients configured with JSON (Claude Desktop, Cursor and others):

{
  "mcpServers": {
    "youtube": { "command": "uvx", "args": ["youtube-kit", "mcp"] }
  }
}

In the ChatGPT desktop app: Settings → MCP servers → Add server → STDIO, with the command uvx youtube-kit mcp. Codex shares that setting (codex mcp add youtube -- uvx youtube-kit mcp).

The server uses your ytk auth login logins. If you also installed ytk with uv tool install, uvx runs that installed version: ytk upgrade updates both. Restart the MCP client afterwards. Not set up yet? The model can walk you through it with the setup_guide tool.

What it covers

Area

Operations

Analytics

totals, or breakdowns by day, month, video, country, device, OS, traffic source and what's behind it (search terms, suggesting videos, sites), playback location, age, gender, subscribed status, content type (long-form, Shorts, live) or sharing service; audience retention of a video; filters by video, content type, country or traffic source

Impressions

thumbnail impressions and click-through rate, in total, by day or by video

Videos

get, categories, upload (resumable, with progress), update metadata, set thumbnail, wait for processing, like or dislike, check your rating, delete

Captions

transcripts of your videos, from your captions or YouTube's automatic ones, optionally machine-translated; list tracks on any video; upload, replace, hide, delete

Comments

list (published, held for review, likely spam), replies, post, reply, edit, delete, approve, hold, reject, ban the author

Playlists

list, get, items, create, update, set image, add, remove, move, delete

Channel

get, recent activity, your logged-in channels, about info (description, keywords, country, language, trailer), banner, watermark, home page sections

Search

videos, channels and playlists, filtered by channel or date

Subscriptions

list, subscribe, unsubscribe

Not covered: localizations, live streaming and channel memberships. ytk --help lists every command, and the skill fits them on one page with jq recipes.

Channels and login

ytk auth login connects one channel. Run it again for each of your other channels, including brand channels: pick the one you want when Google asks.

ytk channel mine                                           # your channels; one is the default
ytk auth switch @second                                    # change the default
ytk video upload clip.mp4 --title Hi --my-channel @third   # use another channel for one command
ytk auth logout @third

Commands work on the default channel unless --my-channel names another, by UC… ID, @handle or exact title. MCP tools take my_channel the same way, so you can say "upload this to my gaming channel". YOUTUBE_CHANNEL sets the default for one shell or one MCP server.

Why your own Google Cloud client. YouTube's daily quota of 10,000 units belongs to a Cloud project. A client shipped inside ytk would split one quota among all its users. Yours is shared by your channels only.

Let an agent set it up. ytk auth guide (setup_guide over MCP) lists what's left, with links and the values to enter. With the gcloud CLI signed in, the agent can create the project and enable the APIs for you. The rest needs your browser. Already have the client JSON? Run ytk auth login --client-secrets FILE.

The guided ytk auth login setup

The guided setup does this:

  1. In the Google Cloud Console, create a project and enable YouTube Data API v3, YouTube Analytics API and YouTube Reporting API (for impressions and click-through rate).

  2. In Google Auth Platform, click Get started (audience External). On Branding, fill in the home page (https://github.com/eukosh/youtube-kit), the privacy policy link (https://github.com/eukosh/youtube-kit/blob/main/PRIVACY.md) and the authorized domain github.com; Google won't publish without them. Then on Audience click Publish app. While the app is in Testing, only listed test users can sign in and Google logs them out after 7 days.

  3. Under Clients, create a client of type Desktop app and download its JSON.

  4. ytk auth login --client-secrets path/to/client_secret.json. Google warns that it hasn't verified the app: it's your own, so click Advanced, then Go to ytk (unsafe).

Public data (search, videos, channels, playlists, comments) also works with just an API key: create one in the same project and export YOUTUBE_API_KEY=..., or put it in the MCP server's env. Without a key, ytk reads public data through your login.

ytk remembers each channel's handle from when you logged in. After renaming a channel on YouTube, name it by its UC… ID or run ytk auth login for it again.

Credentials and config.toml live in the user config directory (~/Library/Application Support/youtube-kit/ on macOS, ~/.config/youtube-kit/ on Linux). ytk auth status prints the exact paths. These environment variables override them:

Variable

Purpose

YOUTUBE_API_KEY

API key for public data

YOUTUBE_CLIENT_SECRETS

Path to the OAuth client JSON

YOUTUBE_TOKEN_DIR

Directory of stored logins, one file per channel

YOUTUBE_CHANNEL

Channel to work on by default (UC… ID, @handle or exact title), overriding ytk auth switch

YOUTUBE_CONFIG_FILE

Path to config.toml (delete limits, update check)

YTK_NO_UPDATE_CHECK

Set (even empty): no daily check for a newer release

Built for agents

  • JSON out, exit codes for failures. Every command prints one JSON document on stdout. On failure, stdout stays empty, the last line of stderr is {"error": {"type": "not_found", "message": "..."}}, and the exit code names the type: 2 bad input, 3 not found, 4 not authorized, 5 quota exceeded, 6 forbidden, 7 network, 8 confirmation required, 9 protected, 10 timeout, 1 anything else. The skill tells agents what to do about each. At a terminal you get colored JSON and plain-sentence errors.

  • Forgiving inputs. Pass IDs or pasted YouTube URLs, @handles for channels, and dates or spans like 90d.

  • Quota costs up front. Each command's --help and each MCP tool description states what it spends.

  • One core. The CLI and the MCP server are thin layers over the same code, and a test fails if either misses an operation.

  • Guarded deletes. See below.

  • Update notices. ytk checks PyPI once a day in the background and tells you when a newer release is out: after the output at a terminal, as an {"update": ...} stderr line for agents, and in the MCP server's instructions at startup. ytk upgrade installs it. Turn the check off with check = false under [updates] in config.toml or YTK_NO_UPDATE_CHECK=1; it's also off when CI or NO_UPDATE_NOTIFIER is set.

Deleting

YouTube has no trash, and agents make mistakes. So deleting videos, playlists, comments and caption tracks is guarded:

  • Two steps. The first call deletes nothing. At a terminal you get a [y/N] prompt. An agent gets exit 8 with a description of the target and must run the command again with --confirm <id>, so the approval always names the exact thing being deleted.

  • Damage limit. A video with more than 100 views, or one that is public and was uploaded more than 7 days ago, can't be deleted here at all (exit 9). Delete those in YouTube Studio. The limits live in config.toml (ytk auth status shows where):

    [delete_protection]
    max_views = 100
    max_public_age_days = 7
  • Harness approval. Have your agent ask you before every delete. In Claude Code, add this to .claude/settings.json:

    {"permissions": {"ask": ["Bash(ytk video delete:*)", "Bash(ytk playlist delete:*)", "Bash(ytk comment delete:*)", "Bash(ytk caption delete:*)"]}}
  • Idempotent. Deleting something that is already gone succeeds with "already_gone": true.

This stops mistakes, not a determined agent. Anything holding your OAuth token can call the API directly.

Quota

Google gives each Cloud project 10,000 units a day, resetting at midnight Pacific time. Reads cost 1 unit per request, most writes 50, and guarded deletes 52, or 102 for a caption track (they look up the target and check ownership first). search and uploads don't use those units: each gets its own 100 calls a day, one per page of 50 search results or per upload. ytk analytics and ytk impressions use the separate YouTube Analytics and Reporting API quotas.

Contributing

See CONTRIBUTING.md for the development setup and CHANGELOG.md for what changed. Report security issues privately, as SECURITY.md describes.

License

MIT. youtube-kit is not affiliated with or endorsed by Google or YouTube. YouTube is a trademark of Google LLC.

Available Tools

51 tools
add_sectionAdd SectionA

Add a section to your channel's home page. A channel has at most 10.

Quota: 52 units.

NameRequiredDescriptionDefault
kindYesWhat the section shows. single-playlist needs one playlist, multiple-playlists several playlists and a title, multiple-channels channels and a title.
titleNoSection title, for the multiple-playlists and multiple-channels kinds.
channelsNoChannels to show: UC… IDs, @handles, or channel URLs.
positionNo0-based position on the home page. Added at the end when omitted.
playlistsNoPlaylist IDs or URLs to show.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
typeYes
titleNo
positionNo
channel_idsNo
playlist_idsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds two useful behavioral facts not in annotations: a per-channel cap of 10 sections and an API quota cost of 52 units. It does not explain what happens when the cap is exceeded, but the added constraints are valuable.

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 three short lines with zero filler. It front-loads the core action, then immediately states the section limit and quota cost. Every sentence earns its place.

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 annotations cover the mutation safety profile. The description is nearly complete, providing purpose, a hard cap, and quota cost, though it could note expected error behavior at the 10-section limit.

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 input schema already documents every parameter, including the kind enum, title, channels, position, playlists, and my_channel. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.

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 states a specific verb (add) and resource (section) plus scope (your channel's home page). It cleanly distinguishes this tool from siblings like update_section, delete_section, and list_sections without ambiguity.

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?

It gives no guidance on when to use this tool versus update_section or delete_section, nor any prerequisites beyond a hard limit. The maximum of 10 sections is a constraint, not usage direction. An agent must infer selection from the verb alone.

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

add_video_to_playlistAdd Video To PlaylistA

Add a video to a playlist on the authorized user's channel.

Quota: 50 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
playlistYesPlaylist ID or URL.
positionNo0-based position in the playlist. Appends to the end when omitted.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
positionYes
video_idYes
playlist_idYes
playlist_item_idYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is structured. The description adds the quota cost of 50 units, which is real operational context not present in the annotations, though it omits duplicate-handling and auth-scope behavior.

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 sentences, zero padding, with the core action front-loaded ahead of the quota note. Every clause carries information an agent can use.

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 mutation safety profile, the description only needs to orient the agent, which it does. The quota hint is a bonus; gaps around duplicate behavior and auth scope are minor for a simple append operation.

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 all four parameters (video, playlist, position, my_channel) are already documented, including that position appends when omitted. The description adds no parameter-level meaning beyond the schema, so the baseline 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?

The description gives a specific verb ("Add") and resource ("a video to a playlist") and scopes it to "the authorized user's channel." An agent can distinguish this from remove_from_playlist, move_in_playlist, and create_playlist from the wording alone, though it never names those siblings explicitly.

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 when-to-use or when-not-to-use guidance, and no alternatives are mentioned despite close siblings like move_in_playlist and remove_from_playlist. The agent must infer the appropriate context entirely from the tool name.

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

approve_commentsApprove CommentsA
DestructiveIdempotent

Publish comments on your videos that are held for review or marked as likely spam.

Quota: 50 units.

NameRequiredDescriptionDefault
commentsYesComment IDs or links. 50 quota units per 50 comments.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
statusYes
comment_idsYes
authors_bannedNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety/mutation profile is covered. The description adds the quota cost (50 units), which is genuinely useful behavioral context, but says nothing about permissions, side effects, or how the held-queue state changes.

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 scope, followed by the quota note. Every sentence earns its place and there is no 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?

With an output schema present, return values need not be explained, and annotations carry the safety profile. The description covers purpose, scope, and quota, leaving only usage-vs-alternatives as a gap for this moderation action.

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 both parameters (comments and my_channel) are already documented in the schema. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 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?

States a specific verb (publish/approve) and resource (comments) and scopes it to comments 'held for review or marked as likely spam,' which places it in the moderation workflow. It does not name the sibling it is contrasted against (reject_comments/hold_comments), so it falls short of full sibling differentiation.

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 moderation-queue context ('held for review or marked as likely spam') but never states when to choose this over reject_comments or hold_comments, nor any prerequisites. Usage is inferable but not explicit.

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

create_playlistCreate PlaylistA

Create a playlist on the authorized user's channel.

Left out, the language is copied from your most recent public upload, as video uploads do.

Quota: 57 units.

NameRequiredDescriptionDefault
titleYesPlaylist title.
privacyNoPrivacy status.private
languageNoLanguage of the title and description, e.g. en-US.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
descriptionNoPlaylist description.

Output Schema

NameRequiredDescription
idYes
urlYes
titleYes
privacyNo
languageNoLanguage of the title and description, e.g. en-US.
channel_idNo
item_countNo
descriptionNo
published_atNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare write, open-world, non-idempotent and non-destructive, so the description rightly doesn't restate those. It adds genuinely new context: a concrete quota cost (57 units) and the fallback behavior for the language field when omitted — both are facts an agent cannot get from the structured data.

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?

Three short lines, front-loaded with the core action, then default behavior, then quota. The phrasing "Left out, the language is copied from your most recent public upload, as video uploads do" is slightly awkward and takes a second read, but nothing is padded.

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?

An output schema exists, so return values need no explanation, and all parameters are covered by the schema. Combined with annotations covering the safety profile and the description adding quota cost and the language fallback, an agent has what it needs to call this 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?

Schema description coverage is 100%, so all five parameters are already documented, which sets the baseline at 3. The description does add one useful nuance — that omitting language inherits the language of the most recent public upload — but it says nothing about privacy defaults, the my_channel selector, or description handling.

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 ("Create a playlist") plus the target scope ("on the authorized user's channel"). The verb alone separates it from the sibling update_playlist / delete_playlist, 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 Guidelines2/5

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

No when-to-use guidance, no prerequisites, no named alternatives. An agent must infer from the name that this is the creation path versus update_playlist, and there is no mention of what is required before calling (e.g. channel authorization state).

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

delete_captionDelete CaptionA
DestructiveIdempotent

Permanently delete a caption track from one of your videos.

Without confirm, nothing is deleted and the error describes the track.

Quota: 102 units.

NameRequiredDescriptionDefault
nameNoName of the track, when the video has several in that language.
videoYesVideo ID or URL.
confirmNoThe track's ID, passed only after the user has approved deleting this track.
languageYesLanguage of the track, e.g. en or en-US.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYes
already_goneNoNothing to delete: it didn't exist or was already deleted.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint, idempotentHint and openWorldHint, so the safety profile is covered; the description adds the non-obvious dry-run/confirm gate and its failure mode, plus a concrete quota cost (102 units). It adds real behavioral context beyond the annotations without contradicting them.

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?

Three short lines, front-loaded with the destructive action and its target, followed by the confirm gate and a single cost figure. No filler and nothing that repeats the schema verbatim.

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 destructive mutation with full annotation coverage and an output schema, the description covers permanence, the confirm gate and quota cost. Only the post-delete state (e.g. whether the track disappears immediately from listings) is left unstated, a minor gap.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema only hints at: what happens when confirm is omitted and that the error payload describes the track, making the confirm parameter's role concrete rather than inferable.

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 and resource plus scope ('Permanently delete a caption track from one of your videos'), which cleanly separates it from list_captions, upload_caption and update_caption in the sibling set. An agent can identify the operation without opening the schema.

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 documents the mandatory two-step flow: calling without confirm deletes nothing and returns an error describing the track, so the agent knows to preview first and then pass the ID. It does not name alternatives for replacing rather than removing a track (e.g. update_caption), so it stops short of full when-not guidance.

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

delete_commentDelete CommentA
DestructiveIdempotent

Permanently delete one of your own comments or replies. Deleting a top-level comment deletes its replies.

Others' comments on your videos can't be deleted, only rejected, which hides them. Without confirm, nothing is deleted and the error describes the comment.

Quota: 52 units.

NameRequiredDescriptionDefault
commentYesComment ID or link.
confirmNoThe comment ID again, passed only after the user has approved deleting this comment.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYes
already_goneNoNothing to delete: it didn't exist or was already deleted.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds substantive context they don't carry: the cascade behavior (deleting a top-level comment deletes its replies), the two-step confirmation guard and its failure mode, and the 52-unit quota cost. These are precisely the details an agent needs before invoking an irreversible write.

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?

Four short sentences, front-loaded with the destructive action and its scope, then exclusions, then the safety gate, then quota. Every sentence carries distinct operational information with no repetition of the schema.

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?

An output schema exists and annotations cover the safety profile, so the description only needs to supply the irreversible-action semantics — cascade deletion, the confirm gate, quota, and the rejection alternative. All are present, leaving no meaningful gap for a destructive, three-parameter tool.

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?

Schema coverage is 100%, so the baseline is 3; the description earns above baseline by explaining the consequence of the `confirm` parameter rather than just its format — omitting it is a safe no-op that returns an error describing the comment. It does not add anything about `my_channel` or the accepted ID/link formats for `comment`, which the schema already covers.

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 and resource ('Permanently delete one of your own comments or replies') and immediately bounds the scope to the caller's own comments. The second sentence distinguishes it from the sibling reject_comments, which handles other people's comments on your videos. An agent can differentiate it from edit_comment, list_comments, and reject_comments without opening any schema.

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?

Explicitly names the alternative path: others' comments 'can't be deleted, only rejected, which hides them,' routing the agent to reject_comments. It also states the precondition for the call ('Without confirm, nothing is deleted') and what happens if it is omitted, so an agent knows exactly when this tool is and is not the right choice.

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

delete_playlistDelete PlaylistA
DestructiveIdempotent

Permanently delete one of your playlists. The videos in it are not affected.

Without confirm, nothing is deleted and the error describes the playlist.

Quota: 52 units.

NameRequiredDescriptionDefault
confirmNoThe playlist ID again, passed only after the user has approved deleting this playlist.
playlistYesPlaylist ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYes
already_goneNoNothing to delete: it didn't exist or was already deleted.

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which already flag destructiveHint=true and idempotentHint=true) by spelling out permanence, that contained videos survive, the dry-run behavior when confirm is omitted, and a concrete quota cost of 52 units. This is exactly the operational context annotations cannot carry.

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?

Three short paragraphs, front-loaded with the destructive action and its blast radius, then the confirm rule, then quota. No redundant restatement of the name or schema.

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 and full annotations exist, and the description still covers the destructive semantics, side-effect scope, confirm gate, and quota. Only minor gaps remain, such as ownership/permission requirements or behavior when the playlist is not yours.

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?

Schema coverage is 100%, so the baseline is 3; the description raises it by explaining the confirm protocol as a safety gate rather than just another field. It does not restate the playlist/my_channel formats, correctly leaving those to 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 ("Permanently delete one of your playlists") and immediately clarifies collateral scope ("The videos in it are not affected"). It does not explicitly name the nearby alternative remove_from_playlist, which shares the playlist domain, so an agent must infer the distinction from the verb alone.

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?

Explicitly documents the two-step gate: "Without confirm, nothing is deleted and the error describes the playlist," which tells the agent exactly how to preview before committing. It offers no guidance on when to choose this over remove_from_playlist or update_playlist, so exclusions are absent.

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

delete_sectionDelete SectionA
DestructiveIdempotent

Delete a section from your channel's home page. Its playlists and videos are not affected.

Quota: 50 units.

NameRequiredDescriptionDefault
sectionYesSection ID, as listed for your channel.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYes
already_goneNoNothing to delete: it didn't exist or was already deleted.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds valuable behavior beyond annotations by stating that playlists and videos are unaffected and by disclosing the 50-unit quota cost.

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 only two sentences, front-loads the core action, and includes the key non-effect and quota details without unnecessary filler.

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?

Given the rich annotations, 100% schema coverage, and an output schema, the description contains everything an agent needs: the action, scope, non-effects on related content, and quota cost. No critical context 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 both parameters—section and my_channel—are fully documented in the input schema. The description does not add meaning beyond the schema, so the baseline score 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 a specific verb and resource: deleting a section from the channel's home page. It also clarifies an important scope boundary—playlists and videos are not affected—but does not explicitly differentiate this from sibling tools such as update_section or add_section.

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?

The description says what the tool does but provides no explicit guidance on when to use it versus alternatives like update_section, add_section, or delete_playlist. Usage is only implied by the verb 'delete' and the object 'section'.

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

delete_videoDelete VideoA
DestructiveIdempotent

Permanently delete one of your videos.

Only recent, little-watched videos can be deleted here: by default at most 100 views and, if public, uploaded within the last 7 days (the limits are set in the toolkit's config file). Anything else must be deleted in YouTube Studio. Without confirm, nothing is deleted and the error describes the video.

Quota: 52 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
confirmNoThe video ID again, passed only after the user has approved deleting this video.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYes
already_goneNoNothing to delete: it didn't exist or was already deleted.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and idempotentHint=true, but the description adds what those hints cannot: the exact deletion criteria and that they are configurable in the toolkit's config file, the dry-run behavior ('without confirm, nothing is deleted and the error describes the video'), and the 52-unit quota cost. This is substantive behavioral context beyond structured fields.

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?

Four compact paragraphs, each front-loaded with its most important fact: action, eligibility, safety gate, cost. No sentence is filler and the destructive nature is stated in the first line.

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?

With an output schema present, return values needn't be described. The description covers permanence, eligibility, the confirm precondition, the fallback path, and quota cost — everything needed to invoke this destructive tool correctly.

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?

Schema coverage is 100%, so the baseline is 3; the description goes further by explaining the consequence of omitting confirm, which turns a simple field into a safety gate. It doesn't elaborate on the video ID/URL formats or channel selection, but those are already fully documented in the schema.

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 and resource ('Permanently delete one of your videos') and immediately bounds the scope of what can be deleted here versus elsewhere. An agent can distinguish it from sibling delete tools (delete_comment, delete_playlist, delete_caption) without opening any schema.

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?

Gives explicit eligibility criteria (max ~100 views; public videos within 7 days), names the alternative for everything else ('must be deleted in YouTube Studio'), and states the confirm precondition. No inference is required to decide whether this tool applies.

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

edit_commentEdit CommentB
DestructiveIdempotent

Replace the text of one of your own comments or replies.

Quota: 50 units.

NameRequiredDescriptionDefault
textYesThe new text.
commentYesComment ID or link.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
textYes
likesNo
authorYes
statusNoModeration status, where YouTube reports it.
video_idNo
parent_idNoReplies only: the comment replied to.
updated_atNo
reply_countNoTop-level comments only.
published_atYes
author_channel_idNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the write-safety profile is covered. The description adds two genuinely useful traits beyond the annotations: the ownership requirement ('your own comments') and a quota cost of 50 units, which serves as a rate-limit/cost disclosure.

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, with the core action front-loaded and the quota constraint on its own line. No 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?

An output schema exists, so return values need no explanation, and the annotations carry the safety profile. What an agent needs to invoke it (target comment, new text, ownership restriction, quota cost) is present; only the interaction with sibling comment tools is left unexplained.

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 explains 'text' (new text), 'comment' (ID or link) and 'my_channel' (channel selector). The description only echoes 'text' and does not enrich the comment-ID or channel-selector semantics, which matches the baseline for fully-documented schemas.

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 ('Replace the text of ... comments or replies') with an ownership constraint ('your own'). It is clearly distinguishable from post_comment, reply_to_comment and delete_comment, though it does not name any sibling explicitly.

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 use this versus post_comment, reply_to_comment, or delete_comment, nor any prerequisite (e.g. comment must exist and be editable). Usage is only implied by the verb 'replace'.

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

get_analyticsGet AnalyticsA
Read-onlyIdempotent

YouTube Analytics for your channel: totals, or rows broken down by one dimension.

Data for the last two or three days is incomplete, so recent rows keep growing. Uses the separate YouTube Analytics API and its quota; enable it in the same Google Cloud project.

Quota: no YouTube Data API units.

NameRequiredDescriptionDefault
byNoBreak the numbers down by this dimension; its column is named as given here. Omit for totals. By month, the range widens to whole months. By elapsed: the audience retention of exactly one video, a row per 1% of its length (0.01 to 1). By traffic-source-detail, which needs traffic_source: the search terms behind YT_SEARCH, the videos behind RELATED_VIDEO, the sites behind EXT_URL.
sortNoMetric or dimension to sort by; prefix with - for descending, e.g. -views. Defaults to chronological by day, month or elapsed, and to the first metric, descending, by anything else.
limitNoMaximum number of rows. Breaking down by video returns at most 200, 25 by default; by traffic-source-detail, at most 25. Other breakdowns return every row by default.
sinceNoFirst day, inclusive: 2026-01-01, or 90d / 4w before until. Defaults to 28 days before until.
untilNoLast day, inclusive: 2026-01-31, or 7d / 1w ago. Defaults to today.
videosNoOnly these videos (IDs or URLs).
countryNoOnly viewers in this country, e.g. US. Not by elapsed.
metricsNoMetric names from https://developers.google.com/youtube/analytics/metrics, e.g. views, estimatedMinutesWatched, subscribersGained. Defaults to views, watch time, average view duration, likes, comments, and subscribers gained and lost. By device, os, traffic-source, playback-location or subscribed, only watch metrics work (views, estimatedMinutesWatched, averageViewDuration, averageViewPercentage), and those are the default. By age or gender, only viewerPercentage works. By elapsed: audienceWatchRatio (share of viewers watching at that point, above 1 with rewatches) and relativeRetentionPerformance (0 to 1, against videos of similar length) by default, or startedWatching and stoppedWatching. By traffic-source-detail: views and estimatedMinutesWatched. By sharing-service: shares.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
content_typeNoOnly long-form videos (videoOnDemand), shorts, or live streams (liveStream), as the content-type breakdown names them. Not by elapsed.
traffic_sourceNoThe source to break down by traffic-source-detail, as the traffic-source breakdown names it, e.g. YT_SEARCH. Only with that breakdown.

Output Schema

NameRequiredDescription
rowsYes
sinceYes
untilYes
columnsYesDimension first (if any), then the metrics, in request order.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the description adds real operational context: two-to-three-day data lag, a separate quota pool that consumes no Data API units, and an enablement prerequisite. That is exactly the kind of non-schema behavior an agent needs. It stops short of describing response shape or pagination, but an output schema exists.

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?

Four short, front-loaded lines: purpose first, then the data-lag caveat, then the API/quota note. Each sentence carries distinct information, though the quota sentence is slightly fragmented across two lines.

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?

For an 11-parameter analytics tool with a full output schema and complete annotation coverage, the description supplies the two things the schema cannot: the separate-API prerequisite and the freshness caveat. Nothing an agent needs before calling 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 the parameter docs are unusually rich (dimension-specific metric constraints, limit caps, relative date formats), so the schema carries the load. The description adds nothing about parameters beyond mentioning 'one dimension' as the breakdown model.

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 resource plus its two output shapes (totals vs. one-dimension breakdown), which is more precise than a generic 'get analytics'. It implicitly separates itself from Data API siblings by naming the separate YouTube Analytics API, but never names an actual sibling like get_impressions.

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?

Conveys the prerequisite (Analytics API must be enabled, quota is separate from Data API units) and warns about incomplete recent data, but gives no explicit guidance on when to choose this over get_impressions or list_activities. Usage is implied rather than routed.

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

get_channelGet ChannelA
Read-onlyIdempotent

Channel metadata, statistics, and uploads playlist ID.

Quota: 1 unit.

NameRequiredDescriptionDefault
channelNoUC… channel ID, @handle, or channel URL. Omit for your own channel.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
urlYes
statsNo
titleYes
handleNo
countryNo
descriptionYes
published_atYes
uploads_playlist_idNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds the non-obvious operational fact that a call costs 1 quota unit, which is exactly the kind of cost/rate-limit context that helps an agent budget calls. It stops short of describing pagination or response shape, but an output schema exists to carry that.

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 fragments with zero filler; the return-contents statement is front-loaded and the quota note follows. Nothing could be trimmed without losing information.

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 zero-required-parameter read tool with full schema coverage, rich annotations, and an output schema, the description supplies what structured fields do not: the contents of the response and the quota cost. Only the absence of any routing guidance against overlapping siblings keeps it from being fully complete.

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 both parameters (channel, my_channel) are fully documented in the schema, including the 'Omit for your own channel' default. The description contributes nothing about parameter semantics, so the baseline 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?

The description names the resource (channel) and enumerates what comes back: metadata, statistics, and the uploads playlist ID. That is specific enough for an agent to know what it retrieves, but it never names the verb or distinguishes itself from neighbors like list_my_channels or update_channel, so sibling differentiation 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 Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives, despite siblings such as list_my_channels (enumerating your channels) and get_analytics (channel metrics) overlapping in scope. The only routing clue is the schema's 'Omit for your own channel' default, which the description does not reinforce.

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

get_impressionsGet ImpressionsA
Idempotent

Thumbnail impressions and click-through rate for your channel, which YouTube Analytics doesn't offer.

They come from YouTube's daily bulk reports. The first call asks YouTube to start making them: the first ones arrive within two days and cover the 30 days before. YouTube keeps daily reports for 60 days, those first 30 days for 30. ctr is clicks per impression: 0.05 is 5%. Uses the YouTube Reporting API; enable it in the same Google Cloud project.

Quota: no YouTube Data API units.

NameRequiredDescriptionDefault
byNoBreak the numbers down by day or by video. Omit for totals.
limitNoMaximum number of rows by video, most impressions first. 25 by default.
sinceNoFirst day, inclusive: 2026-01-01, or 90d / 4w before until. Defaults to 28 days before until.
untilNoLast day, inclusive: 2026-01-31, or 7d / 1w ago. Defaults to today.
videosNoOnly these videos (IDs or URLs).
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
noteNo
rowsYes
sinceYes
untilYes
columnsYesDimension first (if any), then the metrics, in request order.
missing_daysYesDays YouTube has no report for: the last two, and any outside what it keeps.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, it discloses the non-obvious side effect that the first call initiates report generation, the latency (up to two days), data retention windows, quota behavior (no Data API units), and a required API enablement step. This is exactly the context annotations cannot carry, and readOnlyHint=false is consistent with the described side effect.

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?

Front-loaded with the data it returns and the Analytics contrast, then the setup caveat. Dense but nearly every clause carries information; the retention sentence ('keeps daily reports for 60 days, those first 30 days for 30') is slightly awkward to parse.

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?

Covers setup, first-call latency, date-range bounds, quota, and metric units, and an output schema exists to describe return values. Nothing essential to calling it correctly is missing.

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?

Schema coverage is 100%, so parameters are already documented, but the description adds meaningful constraints beyond the schema: 60-day report retention and the 30-day limit on the initial window directly bound what `since`/`until` can return, and the ctr explanation (0.05 = 5%) clarifies the output unit.

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 concrete resource (thumbnail impressions and click-through rate) and explicitly positions it against the closest sibling, get_analytics, by noting YouTube Analytics doesn't offer this data. An agent can distinguish it from get_analytics without opening either schema.

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?

Explains the key operational context: the first call triggers report generation, results take up to two days, and the YouTube Reporting API must be enabled. It implies selection versus get_analytics but never states an explicit 'use get_analytics instead when you want views/revenue' rule.

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

get_my_ratingsGet My RatingsB
Read-onlyIdempotent

Whether the authorized user liked or disliked each video.

Quota: 1 unit.

NameRequiredDescriptionDefault
videosYesVideo IDs or URLs. Fetched in batches of 50, 1 quota unit per batch.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds genuine value with the quota cost ('Quota: 1 unit') and the authorization scoping implied by 'authorized user', but says nothing about pagination or how batched video lookups behave.

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 lines, result semantics front-loaded, quota cost isolated on its own line. Nothing is padded and nothing important is buried.

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?

With an output schema present, return values need no explanation, and the schema and annotations carry parameters and safety. However, for an agent choosing among many sibling tools the description supplies no routing context (e.g. read ratings vs. set them with rate_video), leaving a real 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% and both parameters (videos, my_channel) are fully documented in the schema, including batching detail. The description adds no parameter-level information, so the baseline 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?

The description states a specific resource and result: the authorized user's like/dislike state for each video. It is clearly a read of ratings, distinguishable from the sibling rate_video (which sets a rating), though it never names that sibling explicitly.

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 when-to-use guidance, no prerequisites, and no mention of alternatives such as rate_video or get_videos. The only contextual cue is the quota note, which is cost information rather than usage guidance.

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

get_playlistsGet PlaylistsB
Read-onlyIdempotent

Metadata of one or more playlists: title, description, privacy, and item count.

Quota: 1 unit.

NameRequiredDescriptionDefault
playlistsYesPlaylist IDs or URLs with a list= parameter. Fetched in batches of 50, 1 quota unit per batch.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds a quota cost ('1 unit'), which is useful behavioral context, though batching/quota details are also present in the schema's parameter description.

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 with the resource and returned fields front-loaded and quota cost placed last. No wasted words, though it could have spent one sentence on sibling differentiation.

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 quota is covered. However, for a read tool sitting beside 'list_playlists' and 'list_playlist_items', the lack of any routing guidance leaves a real completeness 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 both parameters (playlists, my_channel) are fully documented in the schema including batching and channel selection. The description adds nothing about parameters, so the baseline 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 (fetch metadata of one or more playlists) and enumerates the returned fields (title, description, privacy, item count). It is clear what the tool does, but it does not distinguish itself from the sibling 'list_playlists', which an agent could easily confuse it with.

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?

The description offers no when-to-use guidance and no exclusions. Critically, it never explains how this differs from 'list_playlists' or 'list_playlist_items', leaving the agent to guess which retrieval tool to pick.

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

get_processing_statusGet Processing StatusB
Read-onlyIdempotent

Whether YouTube has finished processing one of your uploads.

Quota: 1 unit.

NameRequiredDescriptionDefault
waitNoKeep checking every 10 seconds (1 quota unit each) until processing ends, reporting progress when YouTube gives it. If it hasn't ended within timeout, that's a timeout error, so a script can chain the next step on success.
videoYesVideo ID or URL.
timeoutNoSeconds to wait at most. Callers that can't block for long should wait briefly and check again.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
statusYes
video_idYes
parts_totalNo
time_left_msNo
failure_reasonNo
parts_processedNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the quota cost, which is genuinely useful context an agent can't infer, but it omits that a polling call can consume repeated quota units and can end in a timeout error.

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, zero waste, purpose front-loaded ahead of the quota note. It is efficiently sized, though arguably clipped to the point of under-specification rather than true brevity.

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?

With a full output schema and 100% parameter coverage, the description needn't restate return values, so the burden is light. Still, it does not mention that this is an optional long-poll tool, and 'Quota: 1 unit' could mislead given that 'wait' spends one unit per 10-second check.

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 video, wait, timeout and my_channel thoroughly. The description adds no parameter-level meaning at all, leaving the baseline 3 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 names a specific resource and state check: whether YouTube finished processing an upload. An agent can tell what it does, but there is no explicit differentiation from neighboring read tools like get_videos, which can also surface processing state.

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?

The description gives no when-to-use or when-not-to-use guidance and names no alternatives. The polling-vs-single-check decision is only discoverable by reading the schema's 'wait' parameter, not from the description itself.

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

get_transcriptGet TranscriptA
Read-onlyIdempotent

What is said in one of your videos, from its captions, including the ones YouTube generates.

YouTube lets only a video's owner download its captions. Of several tracks in a language, one YouTube is serving is preferred over one it failed to process, then a published one you wrote over YouTube's.

Quota: 252 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
formatNotext: paragraphs of about 30 seconds, each starting with its [m:ss] time. srt or vtt: the caption file itself.text
languageNoCaption language, e.g. en or en-US. Omit for the language spoken in the video.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
translate_toNoMachine-translate the captions into this language, e.g. de.

Output Schema

NameRequiredDescription
kindYes
textYes
formatYes
languageYes
video_idYes
caption_idYes
translated_toNoLanguage YouTube machine-translated the track into.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description adds ownership/authentication requirements, track-selection behavior, and a concrete quota cost of 252 units. These details materially help an agent predict whether the call will work and what it will cost.

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 short and front-loads the core purpose before adding ownership constraints, track preference, and quota. Every sentence contributes useful context, with no filler.

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?

For a read-only transcript retrieval tool with full schema coverage and an output schema, the description covers the critical behavioral context: ownership restriction, caption track choice, and quota. Nothing essential for correct invocation 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 the schema already documents video, format, language, my_channel, and translate_to. The description adds no parameter-level semantics beyond that structured documentation, 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 that it returns what is said in one of the user's videos from captions, including YouTube-generated captions. The resource and content are specific, but it does not explicitly distinguish itself from sibling tools such as list_captions.

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?

It gives an important usage constraint: only a video's owner can download its captions, and it explains track preference. However, it does not explicitly say when to use this instead of list_captions, upload_caption, or update_caption.

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

get_videosGet VideosA
Read-onlyIdempotent

Full metadata, statistics, and status for one or more videos.

Videos that don't exist or aren't visible to you are left out of the result; if none are found, that's a not-found error.

Quota: 1 unit.

NameRequiredDescriptionDefault
videosYesVideo IDs or URLs. Fetched in batches of 50, 1 quota unit per batch.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real value on top: missing/invisible videos are silently omitted, an all-missing batch yields a not-found error, and the call costs 1 quota unit.

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?

Three short sentences, front-loaded with the payload description, then edge-case behavior, then cost. Nothing is repeated from the schema and every sentence earns its place.

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 structure needn't be explained, and annotations cover the safety profile. The description fills the remaining gaps (partial-result semantics, not-found behavior, quota) adequately for a read-only lookup tool; only explicit sibling routing 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 both parameters are documented there, including batching and channel selection, so the description carries little additional param burden. It adds no syntax or format detail beyond the schema; a 3 baseline 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?

States a specific verb+resource ('full metadata, statistics, and status for one or more videos'), which is enough to separate it from get_analytics or list_video_categories. It never names a sibling, so an agent must still infer the boundary, but the purpose itself 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 Guidelines2/5

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

The description explains what comes back but never says when to reach for this tool instead of search, get_analytics, or get_processing_status. No prerequisites or selection criteria are given, leaving the agent to infer usage from the tool name alone.

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

hold_commentsHold CommentsA
DestructiveIdempotent

Hide comments on your videos until you review them.

Quota: 50 units.

NameRequiredDescriptionDefault
commentsYesComment IDs or links. 50 quota units per 50 comments.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
statusYes
comment_idsYes
authors_bannedNo

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 readOnly=false, so the safety profile is largely covered. The description adds genuinely new information the annotations cannot convey: a quota cost ('Quota: 50 units') and the fact that the hidden state persists until a review action occurs, which signals reversibility.

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 followed by the cost constraint; nothing is wasted. Minor redundancy: the quota is stated at the top level and again inside the `comments` schema description, where the ambiguity of 'units' is resolved but the top-level line leaves the denominator unstated.

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. What remains thin is the workflow boundary with reject_comments/approve_comments, but for a two-parameter moderation call the description plus structured fields are sufficient to invoke 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?

Schema description coverage is 100%, with both `comments` (IDs/links, quota cost) and `my_channel` (channel selector) fully documented in the schema itself. The description adds no field-level semantics beyond the quota statement, 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?

States a concrete verb+resource+scope: 'Hide comments on your videos.' The phrase 'until you review them' hints at the moderation lifecycle, but the description never names the sibling actions that complete the workflow (approve_comments, reject_comments), so the agent must infer the distinction between holding and permanently rejecting.

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?

'until you review them' implies a moderation workflow context, so usage is implied rather than stated. There is no explicit when-to-use, no when-not-to-use, and no routing to approve_comments/reject_comments as the follow-up or alternative actions.

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

list_activitiesList ActivitiesB
Read-onlyIdempotent

A channel's recent activity feed (uploads, playlist additions, and the like).

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of activities.
sinceNoOnly activity at or after this date or datetime (2026-01-01), or this long ago (90d, 4w).
channelNoUC… channel ID, @handle, or channel URL. Omit for your own channel.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds genuinely useful non-schema context – the quota cost of 1 unit per page of up to 50 results – but says nothing about what 'recent' means in time terms or any auth requirements, so it adds value without being 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?

Two short sentences, zero filler. The purpose is front-loaded and the quota cost follows as a separate, self-contained fact.

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 list tool with a full output schema (so return values need not be described) and 100% schema coverage, the description covers purpose and cost adequately. The only real gap is routing guidance versus siblings, which is not required for correct invocation.

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 all five parameters (limit, since, channel, my_channel, page_token) are already documented in the schema, including formats and defaults. The description adds no parameter-level meaning beyond that, making the baseline 3 correct.

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 resource ('a channel's recent activity feed') and parenthetically enumerates its contents (uploads, playlist additions), so an agent can distinguish it from list_comments or list_playlists. It is phrased as a noun rather than a verb+resource, and it never explicitly contrasts itself with the closest siblings (get_videos, search), so it falls just short of a 5.

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?

The description gives no when-to-use guidance: it does not say when this feed is preferable to get_videos, list_playlists, or search, nor does it state prerequisites (auth, channel ownership). Usage is only implied by the resource name.

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

list_captionsList CaptionsA
Read-onlyIdempotent

A video's caption tracks: language, name, and whether YouTube generated them from the audio.

Works on any public video, though only the owner can download a transcript.

Quota: 50 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds real context beyond that: quota cost (50 units) and the ownership constraint on transcript download. It doesn't mention ordering or rate-limiting beyond quota, keeping it just short of 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?

Three short sentences: what is returned, the access scope, and the quota cost, with no filler. The informational content is front-loaded before the quota note.

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 needn't be re-explained, and annotations cover the safety profile. The description covers access scope and quota, leaving only minor gaps like track ordering or whether an empty result is possible.

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%, with 'video' documented as 'Video ID or URL' and 'my_channel' fully explained, so the baseline is 3. The description adds no syntax or format guidance beyond what the schema already provides.

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 definition names the resource (a video's caption tracks) and enumerates the returned fields (language, name, auto-generated flag), so an agent knows exactly what this call produces. It distinguishes itself implicitly from transcript download in the sibling list, but doesn't call out upload_caption/update_caption/delete_caption by name.

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?

It establishes scope ('works on any public video') and a permission nuance (only the owner can download a transcript), which implies you use this to enumerate tracks before fetching a transcript. There is no explicit when-to-use/when-not or named alternative such as get_transcript, so the routing is left to inference.

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

list_commentsList CommentsA
Read-onlyIdempotent

Top-level comments on a video, or on all of your channel's videos.

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of comments.
orderNoNewest first, or most relevant first.time
videoNoVideo ID or URL. Omit for every video on your channel.
searchNoOnly comments containing these words.
statusNoModeration status to list; spam is what YouTube flagged as likely spam. Anything but published is only visible on your own videos. YouTube can't list rejected comments.published
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description earns credit for adding genuine behavioral context the annotations lack: the quota cost (1 unit per page) and the 50-result page cap. It stops short of noting permission or auth requirements.

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, zero filler, with the scope statement front-loaded and the quota note second. Nothing could be removed without losing information.

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 and next_page_token handling need not be explained here; quota and page size are covered. The remaining gap is that the interplay among all-optional parameters (video vs. my_channel vs. status) is left entirely to the schema.

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 every parameter (video, status, order, search, page_token, my_channel, limit) is already documented in the schema. The description adds no syntax or default details beyond that, so the baseline 3 applies.

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 (list) and resource (comments) and pins the scope: top-level comments only, either on one video or across the channel's videos. The 'top-level' qualifier implicitly separates it from the sibling list_replies without needing the schema.

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?

Usage is only implied via the scope statement; there is no explicit when-to-use or when-not guidance. It never routes the agent to list_replies for threaded replies or to the approve/hold/reject siblings for moderation, even though both are close neighbors in the tool set.

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

list_my_channelsList My ChannelsA
Read-onlyIdempotent

Channels the user is logged in to, and which one is the default.

Operations on the user's own channel work on the default unless told to use another. Reads stored logins only; makes no API calls.

Quota: no YouTube Data API units.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds real value beyond them: it reads stored local logins only, makes no API calls, and consumes no quota units — facts an agent cannot infer from 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.

Conciseness5/5

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

Three short sentences, each carrying distinct information: what is returned, how the default is used downstream, and the side-effect/quota profile. It is front-loaded with the core answer and contains no 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?

With zero parameters and an output schema present, the description does not need to explain return values and correctly does not. It covers side effects and quota, leaving only minor gaps such as ordering or multi-account edge cases, which the output schema likely handles.

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 the baseline is 4 and there is no parameter semantics for the description to compensate for. Nothing is missing on this dimension.

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 resource (the channels the user is logged into) and adds a distinguishing fact its siblings don't have: which one is the default. The verb is implied by the name/title rather than stated, and it does not explicitly contrast itself with get_channel, but an agent can tell what it returns without opening the schema.

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?

It explains what the default channel means for subsequent operations ('operations on the user's own channel work on the default unless told to use another'), which is useful cross-tool context. However, it never says when to call this tool versus alternatives such as get_channel, nor does it name any sibling, so usage is only implied.

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

list_playlist_itemsList Playlist ItemsA
Read-onlyIdempotent

Videos in a playlist, in playlist order.

To list everything a channel has uploaded, pass the channel's uploads_playlist_id.

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of entries.
playlistYesPlaylist ID or a URL with a list= parameter.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open world). The description adds two traits the annotations cannot express: playlist ordering of results and the quota cost of 1 unit per page of up to 50 results, which is genuinely useful for cost planning. Auth/permission requirements are still unstated.

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?

Three short lines, each earning its place: what it returns, the key special-case usage, and the quota cost. The most important operational fact (quota) is present without preamble or repetition.

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, return values need no explanation, and the description covers ordering, pagination page size, quota, and the uploads_playlist_id trick. It omits any note on access constraints (private vs. public playlists, ownership) and on how limit interacts with page_token.

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?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema by revealing that uploads_playlist_id is a valid value for the 'playlist' parameter and by disclosing the 50-per-page page size relevant to page_token/limit. It does not clarify limit vs. page_token interaction.

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 opening line names the resource and its ordering ('Videos in a playlist, in playlist order'), which distinguishes it from list_playlists/get_playlists that return playlist containers rather than their contents. It is a noun phrase rather than an explicit verb, and it never names a sibling, so it stops short of a 5.

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 gives a concrete usage recipe: pass the channel's uploads_playlist_id to enumerate everything a channel uploaded. That is real when-to-use context. It does not state exclusions or point to alternatives (e.g. get_videos or search for cross-playlist lookups), so it is clear but not exhaustive.

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

list_playlistsList PlaylistsC
Read-onlyIdempotent

A channel's playlists.

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of playlists.
channelNoUC… channel ID, @handle, or channel URL. Omit for your own channel, including private playlists.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

C2.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds genuinely new behavioral context: the quota cost is '1 unit per page of up to 50 results', which tells the agent about pagination granularity and cost before calling.

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 very short sentences, front-loaded with the resource scope and followed by the cost note; there is no filler and nothing to trim. It is efficient, though efficiency here partly reflects under-specification rather than tight writing.

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

Completeness2/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 quota note is useful. However, for a tool sitting among get_playlists, list_playlist_items, and create/update/delete_playlist siblings, the description supplies no disambiguation, no ownership/private-playlist nuance beyond what the schema already states, and no indication of result scope.

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 all four parameters (limit, channel, my_channel, page_token) are already documented in the schema, including defaults and formats. The description adds nothing parameter-specific beyond an implied page size, so the baseline of 3 applies.

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

Purpose2/5

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

The description is a bare noun phrase, 'A channel's playlists,' which essentially restates the tool name 'list_playlists' without a verb or stated action. It adds only a scope hint ('a channel's') and does nothing to distinguish this from siblings like get_playlists or list_playlist_items.

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?

No when-to-use guidance is given, and no alternatives are named. The presence of both list_playlists and get_playlists in the sibling set makes the absence of routing guidance a real gap, leaving the agent to infer selection from the name alone.

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

list_repliesList RepliesC
Read-onlyIdempotent

Replies to a top-level comment.

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of replies.
commentYesComment ID or link. A reply's ID or link lists its whole thread.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description does add the quota cost (1 unit per page of up to 50 results), which is genuinely useful and not in the structured fields. It stops there, offering no pagination or ordering context.

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?

Only two short fragments with zero padding, and the quota note is useful. However, the leading line lacks a clear action verb, so the front-loaded content is not the tool's actual behavior.

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 annotations plus a fully documented schema cover the mechanics. What remains missing is the core statement of what the tool returns (a paginated list of replies) and how it differs from list_comments, leaving the definition only minimally viable.

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 each of the four parameters (limit, comment, my_channel, page_token) documented, so the schema carries the semantics. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.

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

Purpose2/5

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

The phrase "Replies to a top-level comment" reads as a noun clause describing what a reply is, not a verb+resource statement of what the tool does. The tool name implies listing, but the description never uses a listing verb and gives no scope (top-level comment arg is the only hint). It also fails to distinguish itself from the sibling list_comments.

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 when-to-use guidance and no mention of alternatives such as list_comments for top-level comments or reply_to_comment for writing. The agent must infer that this is the read counterpart to reply_to_comment purely from the name.

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

list_sectionsList SectionsB
Read-onlyIdempotent

The sections on a channel's home page.

Quota: 1 unit.

NameRequiredDescriptionDefault
channelNoUC… channel ID, @handle, or channel URL. Omit for your own channel.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description's one added fact is the quota cost ('1 unit'), which is genuinely useful operational context not in the annotations. It says nothing further about auth requirements, scope of returned sections, or pagination, so with the lower bar set by annotations this lands at 3.

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

Conciseness3/5

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

It is short, front-loaded, and free of filler, and the quota note is clearly separated. However the lead sentence is a noun fragment rather than a complete statement of the action, so brevity here reads as under-specification rather than disciplined concision.

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?

Placeholder.

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 both parameters (channel, my_channel) are fully documented in the schema, including the 'omit for your own channel' defaults. The description adds no syntax or format 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.

Purpose3/5

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

The fragment 'The sections on a channel's home page' identifies the resource and scopes it (home-page sections rather than playlist sections), which is more than the name alone conveys. But it supplies no verb at all, so the agent must infer that this is a retrieval tool, and it never distinguishes itself from the add_section/update_section/delete_section siblings. Vague-but-identifiable purpose.

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?

No when-to-use statement, no prerequisites, and no mention of any alternative. The only guidance-like content is 'Quota: 1 unit', which is a cost note, not usage direction. Nothing tells the agent why it would call this instead of get_channel or get_playlists.

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

list_subscriptionsList SubscriptionsA
Read-onlyIdempotent

Channels the authorized user is subscribed to.

Quota: 1 unit per page of up to 50 results.

NameRequiredDescriptionDefault
limitNoMaximum number of subscriptions.
orderNoAlphabetical, by relevance, or by activity (unread first).alphabetical
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
page_tokenNoContinue from a previous result's next_page_token.

Output Schema

NameRequiredDescription
itemsYes
total_resultsNoTotal reported by YouTube; only an estimate for search.
next_page_tokenNoPass as page_token to continue; null at the end.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context: the quota cost model (1 unit per page of up to 50 results), which is essential for an agent budgeting API calls and explains why results are paginated in 50-item pages despite a limit maximum of 500. It does not describe pagination termination or the shape of the response, 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 sentences, no filler, with the core purpose front-loaded and the quota note isolated as a second sentence. Every sentence earns its place and nothing is redundant with the title or schema.

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-value documentation is correctly omitted, and the quota/paging note supplies the key operational fact the structured fields lack. For a simple zero-required-parameter read tool this is close to sufficient; only an explicit hint about using page_token to continue past the 50-result page boundary 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 all four parameters (limit, order, my_channel, page_token) are documented in the schema, including defaults, enum values, and paging semantics, so the description need not repeat them. It adds only the implicit page-size unit (50 per page), which is tangential to parameter meaning. Baseline 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 identifies the resource precisely (channels the authorized user is subscribed to), which lets an agent separate it from read-only list siblings like list_playlists and from the mutation siblings subscribe/unsubscribe. It is a noun fragment rather than a verb phrase, but the name and title already supply the 'list' verb, so the pairing is unambiguous. It does not explicitly differentiate itself from other 'list' siblings, keeping it below a 5.

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 statement of when to use this tool, when not to, or what alternative exists. An agent must infer from the name alone that this reads the authorized user's own subscriptions rather than another channel's subscribers. No prerequisites or context are given.

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

list_video_categoriesList Video CategoriesA
Read-onlyIdempotent

Video categories that can be assigned to uploads in a region, with the IDs to pass as category_id.

Quota: 1 unit.

NameRequiredDescriptionDefault
regionNoISO 3166-1 alpha-2 country code.US
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered structurally. The description adds genuinely new operational context — the API quota cost of 1 unit — which an agent needs for budgeting calls and cannot infer from annotations. It doesn't cover rate limits or caching, but the quota disclosure is real added value.

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 purpose and the practical output, followed by the quota note. Nothing is redundant and nothing could be cut without losing information.

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 shape needn't be described, and the description covers purpose, the key output (category IDs), and quota cost. The only gap is any hint about ordering or whether the list is exhaustive per region, which is minor for a simple enumeration tool.

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 both region (ISO 3166-1 alpha-2) and my_channel (UC ID, @handle, or title) fully documented in the schema. The description only echoes the region concept and adds no format or default details beyond that, so the baseline 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?

The description names the resource (video categories), the scope (assignable to uploads in a region), and the payoff (IDs to pass as category_id). An agent immediately understands what it gets back and why. It does not need sibling differentiation since no sibling lists categories, but it also doesn't explicitly state the 'list' verb or contrast with anything.

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?

Usage is implied rather than stated: the mention of 'IDs to pass as category_id' signals this feeds a later upload call, and 'in a region' hints at the region parameter's role. There is no explicit when-to-use, no prerequisites, and no exclusions, so it lands at implied guidance.

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

move_in_playlistMove In PlaylistA
DestructiveIdempotent

Move a video to another position in one of your playlists.

Quota: 51 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL. Refused if the video appears in the playlist more than once.
playlistYesPlaylist ID or URL.
positionYesNew 0-based position.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
positionYes
video_idYes
playlist_idYes
playlist_item_idYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the full profile (mutation, idempotent, destructive, open-world), so the bar is lower. The description adds genuine operational context with the quota cost of 51 units, but says nothing about the reordering side effects or the duplicate-video refusal behavior that the annotations don't cover.

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 with zero waste; the operation is front-loaded and the quota note is a compact, useful addendum. Nothing is padded or restated.

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 safety profile, the description needn't explain return values. It is nearly complete for the call itself, though a brief note that reordering shifts surrounding items would round it out.

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%, including the duplicate-refusal note on 'video' and the 0-based indexing on 'position', so the schema carries the full parameter burden. The description adds no syntax or format detail beyond what the schema already provides, making baseline 3 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?

States a specific verb ('move') and resource ('video ... in one of your playlists') plus the modifier 'to another position', which precisely distinguishes it from siblings like add_video_to_playlist and remove_from_playlist. An agent can identify the operation without opening the schema.

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?

The description gives no when-to-use guidance, no alternatives, and no prerequisites. It doesn't say to use add_video_to_playlist for insertion or explain the reorder-vs-add distinction; the only cue is the tool name itself.

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

post_commentPost CommentB

Post a top-level comment on a video as the authorized user.

Quota: 50 units.

NameRequiredDescriptionDefault
textYesThe comment.
videoYesVideo ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
textYes
likesNo
authorYes
statusNoModeration status, where YouTube reports it.
video_idNo
parent_idNoReplies only: the comment replied to.
updated_atNo
reply_countNoTop-level comments only.
published_atYes
author_channel_idNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true), so the agent knows this is a non-idempotent write. The description adds real value with the '50 units' quota cost and the fact that the action is attributed to the authorized user. It does not say what happens on duplicate posts or failure, which is the main remaining gap.

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 lines: the action first, the quota second. No filler, no restatement of the title, and the one non-obvious fact (cost) is isolated so it is easy to scan.

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, return values need not be explained, and the full-coverage schema covers parameters. What an agent needs to invoke correctly is present; only the when-versus-reply_to_comment routing is left implicit.

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 all three parameters (text, video, my_channel) documented in the schema itself, so the baseline is 3. The description adds no format or constraint detail beyond what the schema provides.

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 ('Post a ... comment on a video') and the 'top-level' qualifier implicitly separates it from reply_to_comment in the sibling list. It stops short of naming the sibling alternative, so the differentiation is inferable rather than explicit.

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 use this versus reply_to_comment or edit_comment, and no stated prerequisites beyond 'as the authorized user'. The only extra context is the quota, which is a cost note rather than usage guidance.

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

rate_videoRate VideoA
Idempotent

Like or dislike a video as the authorized user, or clear the rating with none.

Quota: 50 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
ratingYeslike, dislike, or none.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
ratingYes
video_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true), so safety is covered. The description adds genuinely new context beyond the schema: an explicit quota cost ("50 units") and that the action is performed as the authorized user, both of which affect how an agent should budget and target the call.

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 core action and followed by the quota constraint. No filler, hedging, or restated title text; every phrase earns its place.

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?

The tool is a simple three-parameter mutation, an output schema exists so return values need no explanation, and annotations cover the safety profile. Action, quota, and actor context are all present; only the absence of sibling routing (e.g., pointing to get_my_ratings for reads) leaves a small 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 all three parameters are already documented, which sets the baseline at 3. The description only restates the rating enum values, adding minor value by clarifying that "none" clears an existing rating rather than applying a neutral one.

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 verb (rate: like/dislike/clear) against a specific resource (a video) and clarifies the three rating outcomes, so an agent immediately knows the effect. It does not name or differentiate itself from any sibling such as get_my_ratings (the read counterpart), which keeps it just short of a 5.

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?

"as the authorized user" implies this operates on the caller's own account, and the rating values enumerate the intended actions, giving implied usage context. However, there is no explicit when-to-use/when-not guidance and no routing to alternatives like get_my_ratings for reading existing ratings, so it stays at 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.

reject_commentsReject CommentsA
DestructiveIdempotent

Reject comments on your videos, hiding them from viewers. They can still be approved later.

Quota: 50 units.

NameRequiredDescriptionDefault
commentsYesComment IDs or links. 50 quota units per 50 comments.
ban_authorNoAlso reject all future comments on your channel by each comment's author.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
statusYes
comment_idsYes
authors_bannedNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare write, destructive, idempotent, and open-world hints. The description adds the concrete effect (hiding from viewers), reversibility, and a quota note, which goes beyond the structured annotations. The quota is also stated in the schema, and there is a minor inconsistency (description says '50 units', schema says '50 quota units per 50 comments'), but the added behavioral context is still valuable.

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 sentences, front-loaded with purpose and effect, with no wasted words. The quota note is short and necessary.

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 3-parameter mutation tool with full annotations and an output schema, the description covers what the tool does, its reversibility, and its cost. It does not explain return values (not needed due to output schema) but is otherwise complete; minor gaps like permission requirements are not critical.

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 baseline is 3. The description does not add parameter-specific details beyond what the schema already provides (the quota note is repeated in 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 (Reject) and resource (comments on your videos), and the phrase 'can still be approved later' differentiates it from permanent deletion tools like delete_comment. However, it does not explicitly name alternatives such as hold_comments or approve_comments, so it falls short of a 5.

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?

Implies usage by noting that rejected comments can be approved later, suggesting use when you want to hide but retain the option to restore. Yet there is no explicit when-to-use/when-not guidance or named alternatives among sibling tools.

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

remove_from_playlistRemove From PlaylistA
DestructiveIdempotent

Remove a video from one of your playlists, every time it appears. The video itself is not affected.

YouTube can't look up entries of a deleted video, so for a deleted or unknown video the whole playlist is read: 1 more unit per 50 entries.

Quota: 51 units.

NameRequiredDescriptionDefault
videoYesVideo ID or URL.
playlistYesPlaylist ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
removedYesHow many occurrences were removed; 0 if the video wasn't in the playlist.
video_idYes
playlist_idYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint=true), the description precisely scopes what is destroyed: entries, not the video. It also discloses quota cost (51 units) and the edge-case behavior and extra cost when the video is deleted/unknown, which the agent cannot get from annotations or schema.

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?

Front-loaded with the action and its scope in the first sentence, then a clarification, then quota facts in a compact numbered form. Every sentence carries information an agent needs; nothing is wasted.

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?

An output schema exists, so return values need not be explained. The description covers the mutation scope, edge-case behavior for deleted videos, and quota costs, which is everything an agent needs to call this correctly and predictably.

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%, so all three parameters are documented in the schema itself, including the my_channel fallback to the default channel. The description adds no parameter-level syntax or constraints beyond that, so baseline 3 applies.

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 and resource (remove a video from a playlist) and adds the key scope qualifier 'every time it appears,' which distinguishes it from add_video_to_playlist, move_in_playlist, and delete_video. The explicit 'video itself is not affected' prevents confusion with delete_video.

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 makes the operating context clear (playlist-entry removal, all occurrences, video unaffected), which implicitly separates it from playlist-mutating siblings. It does not explicitly name alternatives such as move_in_playlist or delete_playlist, so usage is clear but not routed.

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

remove_watermarkRemove WatermarkA
DestructiveIdempotent

Remove the watermark from your videos. Succeeds when there is none.

Quota: 51 units.

NameRequiredDescriptionDefault
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
activeYes
cornerNo
from_endNo
channel_idYes
start_secondsNo
duration_secondsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds real operational context beyond that: the quota cost of 51 units and confirmation of idempotent behavior ('succeeds when there is none'), which an agent needs for cost-aware planning.

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 plus a quota line, with the action front-loaded and no filler. The 'Succeeds when there is none' fragment is slightly terse but earns its place by signaling idempotency.

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?

For a single-parameter mutation with rich annotations and an output schema, the description supplies everything an agent needs: purpose, idempotency, and quota cost. Return-value details are correctly delegated to the output schema.

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?

Only one parameter (my_channel) and schema description coverage is 100%, so the schema fully documents it. The description adds nothing about the channel selector, so baseline 3 applies.

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 and resource ('Remove the watermark from your videos'), and is unambiguously distinct from the sibling set_watermark. An agent knows exactly what operation this performs without opening the schema.

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?

Usage is implied by the name and the note that it succeeds when no watermark exists, but there is no explicit 'use this when...' guidance or routing to set_watermark as the inverse operation. The cue about succeeding when none exists is helpful context but not full when-to-use guidance.

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

reply_to_commentReply To CommentB

Reply to a top-level comment as the authorized user.

Quota: 50 units.

NameRequiredDescriptionDefault
textYesThe reply.
commentYesComment ID or link. Replying to a reply adds to the same thread.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
textYes
likesNo
authorYes
statusNoModeration status, where YouTube reports it.
video_idNo
parent_idNoReplies only: the comment replied to.
updated_atNo
reply_countNoTop-level comments only.
published_atYes
author_channel_idNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description's one genuine addition beyond structured data is the quota cost ('50 units'), which is useful. It omits any warning that non-idempotent retries can post duplicate replies, and doesn't clarify what 'authorized user' requires.

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, zero filler, with the core action front-loaded and the quota note clearly separated. Nothing is padded.

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 no explanation, and the schema fully documents parameters. Still, for a non-idempotent mutation with openWorldHint=true, the description says nothing about permission requirements, threading side effects, or what the quota unit represents, leaving meaningful gaps for an agent deciding whether to call it.

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 all three parameters are documented in the schema, including channel selection and the thread behavior of the comment ID. The description adds nothing beyond that baseline and slightly muddies it by saying 'top-level comment' while the schema allows replying to a reply.

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 ('Reply to a top-level comment') plus the acting identity ('as the authorized user'), so the operation is unambiguous. It does not, however, distinguish itself from nearby siblings like post_comment, edit_comment, or list_replies, leaving the agent to infer the boundary.

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 when-to-use statement, no comparison to post_comment (which presumably starts a new thread), and no stated preconditions such as owning the comment or having reply permission. The agent must infer the use case from the name alone.

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

set_channel_bannerSet Channel BannerA
DestructiveIdempotent

Upload and set your channel's banner. Use a 16:9 image of at least 2048x1152, at most 6 MB.

Quota: 101 units.

NameRequiredDescriptionDefault
imageYesPath to a JPEG or PNG.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
titleNo
countryNo
keywordsNo
languageNo
banner_urlNo
channel_idYes
descriptionNo
trailer_video_idNoShown to visitors who aren't subscribed.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the write, destructive, idempotent, and open-world profile, so the description does not need to restate them. It adds the 101-unit quota, a useful operational cost, but omits permission requirements, what happens to an existing banner, and other behavioral details beyond quota and image constraints.

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 with zero filler. The purpose is front-loaded, followed by necessary input requirements and quota in a compact structure.

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, full schema descriptions, and annotations covering safety, the description supplies the key missing input constraints and quota. It could mention replacement behavior or channel-selection alternatives, but those gaps are minor for a simple banner-setting tool.

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?

Schema coverage is 100%, so the schema already documents both parameters. The description adds meaningful constraints for the image parameter—16:9 aspect ratio, minimum 2048x1152, maximum 6 MB—that go beyond the schema's 'Path to a JPEG or PNG.' It does not add anything for my_channel, but the schema covers that fully.

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 states a specific verb and resource: 'Upload and set your channel's banner.' This clearly separates it from sibling mutators such as set_watermark and set_thumbnail, which operate on different channel assets.

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?

No when-to-use guidance or alternatives are provided. The description focuses on image requirements and quota, not on when to choose this over set_watermark, update_channel, or other banner-related operations.

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

set_playlist_thumbnailSet Playlist ThumbnailA
DestructiveIdempotent

Set the custom thumbnail of one of your playlists, replacing any current one.

Quota: 101 units.

NameRequiredDescriptionDefault
imageYesPath to a square JPEG or PNG, at most 50 MB.
playlistYesPlaylist ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
widthNo
heightNo
image_idYes
playlist_idYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare destructiveness, idempotency, and open-world behavior, but the description adds useful context by stating that the current thumbnail is replaced and disclosing a quota cost of 101 units. It does not describe authentication requirements or error behavior, but that is less critical 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 with the core action front-loaded and the quota cost separated cleanly. Every sentence adds useful information without repetition.

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 and rich annotations present, the description supplies the key missing behavioral details: replacement of the existing thumbnail and quota cost. It is largely complete for a destructive mutation tool, though it could more explicitly route the agent away from related thumbnail 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 description coverage is 100%, so the schema already documents the playlist, image path, and channel selector. The description does not add parameter-level meaning beyond what the structured schema provides, making the baseline score 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 states a specific verb and resource: setting a custom thumbnail for a playlist, and explicitly notes it replaces the current thumbnail. This clearly distinguishes it from siblings like set_thumbnail and set_channel_banner by naming the playlist resource.

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 gives clear context that this applies to one of the user's playlists and replaces an existing thumbnail, which is enough to infer when to use it. It does not explicitly name alternatives or exclusions, so it falls short of the top score.

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

set_thumbnailSet ThumbnailA
DestructiveIdempotent

Set a video's custom thumbnail. The channel must be verified.

Quota: 50 units.

NameRequiredDescriptionDefault
imageYesPath to a JPEG or PNG, at most 50 MB.
videoYesVideo ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
video_idYes
thumbnail_urlNo

TDQS

A3.8/5.0
Behavior4/5

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

With annotations already declaring destructiveHint=true and idempotentHint=true, the bar is lower, and the description still adds two substantive facts: a verification prerequisite (an auth/setup requirement not in any structured field) and a 'Quota: 50 units' cost disclosure. It doesn't cover whether an existing thumbnail is replaced or error behavior, so not 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: the action first, then prerequisite and quota on separate lines. Every clause carries information and nothing is buried.

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?

A rich output schema exists and annotations cover the mutation/idempotency profile, so the description needn't explain return values. Prerequisite and quota are supplied; only the overwrite/error semantics are left implicit, which is a minor gap for a 3-param tool.

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% — the image format/size limit, video ID-or-URL, and channel selection are all documented in the schema. The description adds no parameter meaning 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: setting a video's custom thumbnail. The resource ('video's') implicitly separates it from siblings like set_playlist_thumbnail and set_channel_banner, but the description never explicitly names those alternatives.

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?

Provides one real prerequisite — 'The channel must be verified' — which is actionable context an agent needs before calling. However, there is no guidance on when to use this over the sibling thumbnail/banner tools, nor on what happens to an existing thumbnail.

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

setup_guideSetup GuideA
Read-onlyIdempotent

What is left before the user's channel can be used: a one-time Google Cloud setup, then a Google sign-in.

The steps happen in the user's browser, so walk them through one step at a time. Once ready, running the sign-in again connects another channel.

Quota: no YouTube Data API units.

NameRequiredDescriptionDefault
projectNoGoogle Cloud project ID, once known. The links then open with that project selected.

Output Schema

NameRequiredDescription
readyYesAt least one channel is logged in.
stepsYesWhat is left to do, in order. Empty when ready.
channelsYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds genuine context beyond them: the steps execute in the user's browser, they must be presented one at a time, and re-running sign-in connects an additional channel. The 'Quota: no YouTube Data API units' note is useful operational detail for an agent managing API budget.

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?

Three short sentences, front-loaded with the state the tool reports, and each sentence carries distinct information (purpose, interaction mode, follow-on behavior, quota). No filler.

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?

An output schema exists so return values need not be explained, and annotations already carry the safety profile. For a read-only onboarding/status tool with one fully documented optional parameter, nothing an agent needs to call it correctly 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 coverage is 100% for the single optional 'project' parameter, so the schema fully documents its meaning and default. The description adds no syntax or format detail for it, which is the correct baseline when the schema does 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 states what the tool surfaces: what remains before the channel is usable (a one-time Google Cloud setup followed by a Google sign-in). The verb is somewhat implicit — it reads as a state report rather than naming the action — but the resource and content are clear and no sibling tool overlaps with setup/onboarding.

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?

It gives interaction guidance ('walk them through one step at a time') and hints at the follow-on case ('running the sign-in again connects another channel'), which implies when to use it. However, it never states explicitly when to invoke this versus other tools or what condition triggers it.

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

set_watermarkSet WatermarkA
DestructiveIdempotent

Set the watermark shown over all your videos, replacing any current one. Viewers click it to subscribe.

Quota: 51 units.

NameRequiredDescriptionDefault
imageYesPath to a square JPEG or PNG, at least 150x150, at most 1 MB.
startNoSeconds from the start of the video when it appears, or from its end when counting from the end.
cornerNoWhere it appears.bottom-right
durationNoSeconds to show it. Until the end of the video when omitted.
from_endNoCount start back from the end of the video.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
activeYes
cornerNo
from_endNo
channel_idYes
start_secondsNo
duration_secondsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the destructive overwrite is partly covered structurally; the description reinforces it with 'replacing any current one' and adds genuinely new context: viewers click the watermark to subscribe, and the quota cost of 51 units.

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 core action and effect, with the quota note cleanly separated. No wasted text, though it is quite terse given the six parameters involved.

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 and annotations carry the safety profile, so the description need not explain returns. It covers purpose, overwrite behavior, and quota cost, leaving little an agent needs missing before calling.

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 all six parameters (image constraints, start, corner, duration, from_end, my_channel) are already fully documented in the schema. The description adds no parameter-level meaning, which is the expected baseline of 3 when the schema does the heavy lifting.

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 and adds scope: the watermark applies to ALL videos, and setting it replaces any current one. This implicitly separates it from remove_watermark, but the sibling is not named explicitly, so it falls short of a 5.

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 phrase 'replacing any current one' implies the use case (overwrite an existing watermark), but there is no explicit when-to-use guidance or reference to the alternative tool (remove_watermark). Usage is implied rather than stated.

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

subscribeSubscribeA
Idempotent

Subscribe the authorized user to a channel. Already being subscribed is fine.

Quota: 51 units.

NameRequiredDescriptionDefault
channelYesUC… channel ID, @handle, or channel URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
urlYes
titleNo
channel_idYes
descriptionNo
subscribed_atNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds value beyond them by confirming idempotency in plain language and disclosing a quota cost of 51 units, which is useful operational 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 front-loaded, consisting of two short sentences plus a quota line. Every element earns its place: the core action, the idempotency reassurance, and the cost information.

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 two-parameter mutation with rich annotations and an output schema, the description is nearly complete: it covers the action, idempotency, and quota. The only notable omission is explicit usage guidance relative to sibling tools, which keeps it from full completeness.

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 both 'channel' and 'my_channel' in detail. The description adds no parameter-specific meaning beyond what the schema provides, making the baseline score of 3 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 states a specific verb and resource: 'Subscribe the authorized user to a channel.' This clearly distinguishes the tool from the sibling 'unsubscribe' and from read-oriented tools like 'list_subscriptions' without needing to name them.

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 such as 'unsubscribe' or 'list_subscriptions.' The statement 'Already being subscribed is fine' is behavioral context, not usage guidance, and no exclusions or preconditions are given.

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

unsubscribeUnsubscribeA
DestructiveIdempotent

Unsubscribe the authorized user from a channel. Not being subscribed is fine.

Quota: 51 units.

NameRequiredDescriptionDefault
channelYesUC… channel ID, @handle, or channel URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
channel_idYes
was_subscribedYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true; the description reinforces idempotency with 'Not being subscribed is fine' and adds genuinely new operational context: a quota cost of 51 units. It does not state auth/scope requirements or what happens to subscription history, keeping it below 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 plus a quota line, with the action front-loaded and no filler. Every element carries information an agent needs.

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 described, and both parameters are schema-documented; the quota note rounds out the picture. What remains missing is authorization scope requirements and confirmation of what state changes on the channel, which for a destructive operation would be worth stating.

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 'channel' and 'my_channel' are fully documented in the schema itself. The description adds no syntax, format, or defaulting nuance beyond it, so the baseline 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 ('Unsubscribe') and resource ('the authorized user from a channel'), which is unambiguous and inherently distinguished from the sibling 'subscribe'. It stops short of explicitly naming a sibling or scoping the effect, but an agent cannot confuse it with anything else in the list.

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 single-purpose nature makes usage obvious, and 'Not being subscribed is fine' signals it is safe to call even when unnecessary. However, there is no explicit statement of when to prefer this over managing subscriptions another way, nor prerequisites such as required scopes.

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

update_captionUpdate CaptionA
DestructiveIdempotent

Replace the file of a caption track on one of your videos, or show or hide the track.

Quota: 502 units.

NameRequiredDescriptionDefault
fileNoPath to the new caption file, at most 100 MB.
nameNoName of the track, when the video has several in that language.
draftNoWhether the track is hidden from viewers.
videoYesVideo ID or URL.
languageYesLanguage of the track, e.g. en or en-US.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYesasr: made by YouTube's speech recognition. forced: shown when no track is chosen.
nameNo
draftNoNot shown to viewers yet.
statusNoserving, syncing, or failed.
languageYes
video_idYes
updated_atNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the description adds a genuinely new trait, the quota cost of 502 units, which is not in any structured field. It also makes explicit that the tool has two distinct effects (file replacement vs. visibility toggle), though it does not say whether a replace is reversible or what happens to an existing track's name/draft state.

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: the operation and its two modes are front-loaded, and the quota note follows. Nothing is wasted and nothing is buried.

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?

Output schema and full parameter descriptions exist, and the description covers both operational modes plus cost, which is sufficient for correct invocation. It could state that at least one of file/draft must be supplied, but the remaining gap is minor.

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 every parameter including the 100 MB file limit and the my_channel targeting is already documented in the schema. The description's 'show or hide the track' loosely maps to the draft flag but adds no format or syntax detail beyond the schema, so baseline 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 and resource ('Replace the file of a caption track') and adds the second mode ('show or hide the track'), which distinguishes it from upload_caption, delete_caption and list_captions. It stops short of naming those siblings, so an agent must infer that this operates on an existing track rather than creating one.

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?

Usage is only implied: 'replace the file' suggests an existing track, and the show/hide clause hints at the draft flag, but there is no explicit when-to-use versus upload_caption (add a new track) or delete_caption. No prerequisites or exclusions are stated.

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

update_channelUpdate ChannelA
DestructiveIdempotent

Change your channel's about info. Only the fields you pass change. The name can only be changed in Studio.

Quota: 51 units.

NameRequiredDescriptionDefault
countryNoISO 3166-1 alpha-2 country code.
trailerNoVideo (ID or URL) shown to visitors who aren't subscribed.
keywordsNoChannel keywords, replacing the current ones. An empty list removes them all.
languageNoLanguage of the channel's title and description, e.g. en or de. If the channel has none, YouTube may pick one on any change; pass it to choose.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
descriptionNoChannel description.

Output Schema

NameRequiredDescription
titleNo
countryNo
keywordsNo
languageNo
banner_urlNo
channel_idYes
descriptionNo
trailer_video_idNoShown to visitors who aren't subscribed.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds genuine context the annotations lack: a quota cost ('51 units') and confirmation that this is a partial-update operation. It does not explain what destruction means concretely (e.g. that keywords replace the existing set), which the schema carries instead.

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?

Three short sentences, front-loaded with the primary purpose, then the patch rule, then the exclusion. Every sentence carries distinct information; the quota note is set off and easy to scan.

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 described, and the schema fully documents all six optional parameters. Combined with annotations covering safety and the description covering quota and patch behavior, an agent has what it needs. The only gap is concrete disclosure of replacement semantics, which the schema partially covers.

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 all six parameters carry individual documentation, so the baseline is 3. The description's 'only the fields you pass change' adds a useful cross-parameter rule, but it adds no syntax or format 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: 'Change your channel's about info.' It also carves out a hard scope limit ('The name can only be changed in Studio'), which separates it from sibling tools that manage other channel assets. It is clear, though it never explicitly names the sibling it complements (e.g. set_channel_banner, set_watermark).

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?

'Only the fields you pass change' establishes patch semantics, telling the agent that omitting a field is safe rather than destructive. The note that the name must be changed in Studio is an explicit when-not pointer to another surface. No guidance is offered on when to prefer this over the banner/watermark siblings, but the routing hints are useful.

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

update_playlistUpdate PlaylistB
DestructiveIdempotent

Change one of your playlists. Only the fields you pass change.

Quota: 51 units.

NameRequiredDescriptionDefault
titleNoNew title.
privacyNoNew privacy status.
languageNoLanguage of the title and description, e.g. en-US.
playlistYesPlaylist ID or URL.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
descriptionNoNew description.

Output Schema

NameRequiredDescription
idYes
urlYes
titleYes
privacyNo
languageNoLanguage of the title and description, e.g. en-US.
channel_idNo
item_countNo
descriptionNo
published_atNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is largely covered. The description adds two useful non-schema facts: partial-update semantics ('Only the fields you pass change') and a 51-unit quota cost. However it never explains the destruction the annotation warns about (overwriting title/description, or a privacy flip to public) or any permission requirement, so it stays at baseline-plus.

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, zero filler, with the core action and the partial-update guarantee front-loaded before the quota note. Every sentence earns its place.

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?

Output schema exists, so return values need not be explained, and annotations carry the safety profile. Still missing for a 6-param destructive mutation: ownership/auth expectations, the effect of each optional field being omitted, and consequences of changing privacy, so the description is adequate but not complete.

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 all six parameters (title, privacy, language, playlist, my_channel, description) are already documented in the schema. The description adds no syntax, format, or constraint 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 ('Change one of your playlists'), which is enough for an agent to know it mutates an existing playlist. It lacks any differentiation from siblings such as create_playlist, delete_playlist, or update_video, and 'change' is looser than 'update', so it does not reach 5.

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 when-to-use, when-not-to-use, or alternative-tool guidance at all. The only context given is the partial-update rule and a quota cost, neither of which tells an agent when this tool is the right choice over create_playlist or list_playlists.

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

update_sectionUpdate SectionA
DestructiveIdempotent

Change a section on your channel's home page. Only the fields you pass change.

Quota: 51 units.

NameRequiredDescriptionDefault
titleNoNew title.
sectionYesSection ID, as listed for your channel.
channelsNoChannels to show instead of the current ones (UC… IDs, @handles, or URLs).
positionNoNew 0-based position on the home page.
playlistsNoPlaylists to show instead of the current ones (IDs or URLs).
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
typeYes
titleNo
positionNo
channel_idsNo
playlist_idsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context: PATCH-style partial-merge semantics ('Only the fields you pass change') and a concrete quota cost of 51 units, which the agent cannot get from structured fields.

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 core action and immediately followed by the one non-obvious semantic rule plus the quota cost. No filler.

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 annotations plus the schema carry most of the load. Still, for a destructive mutation tool the description omits permission requirements and what 'change' does to fields not passed when replacing lists, leaving a modest 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 all six parameters (section, title, channels, position, playlists, my_channel) are already documented in the schema, including accepted ID/handle/URL formats. The description adds no per-parameter meaning, so the baseline 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 and resource ('Change a section on your channel's home page'), which cleanly separates it from sibling mutations add_section and delete_section. It does not explicitly name those siblings, so an agent must infer the boundary from the verb alone.

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?

No when-to-use guidance is given. The description never says to prefer add_section for creation or delete_section for removal, nor does it state any prerequisite such as the section already existing or the required auth scope.

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

update_videoUpdate VideoA
DestructiveIdempotent

Change a video's metadata. Only the fields you pass change; the rest keep their values.

Quota: 51 units.

NameRequiredDescriptionDefault
tagsNoNew tags, replacing the current ones. An empty list removes all tags. YouTube may store them in a different order.
titleNoNew title.
videoYesVideo ID or URL.
privacyNoNew privacy status. Making a scheduled video public or unlisted cancels the schedule.
languageNoLanguage of the title and description, e.g. en-US.
ai_contentNoWhether AI made realistic content: a real person saying or doing something they didn't, altered footage of a real event or place, a realistic scene that didn't happen, or music that's the video's focus. Not for scripts, captions, or obviously unreal content. Left out, the current answer stays.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
publish_atNoSchedule publication at this date or datetime. The video must end up private.
category_idNoNew category ID (see the video categories listing).
descriptionNoNew description.
made_for_kidsNoWhether the video is made for kids (COPPA).
audio_languageNoLanguage spoken in the video, e.g. en-US.
paid_promotionNoWhether the video includes paid promotion: a sponsorship, product placement, or endorsement.

Output Schema

NameRequiredDescription
idYes
urlYes
tagsNoIn the order YouTube stores them, which may differ from yours.
statsNo
titleNo
privacyNo
durationNo
languageNoLanguage of the title and description, e.g. en-US.
ai_contentNoDeclared to contain realistic AI-made content, as set by this upload or update. YouTube doesn't report it when reading a video.
channel_idNo
publish_atNo
studio_urlNoEdit page in YouTube Studio; only for videos on channels you're logged in to.
category_idNo
descriptionNo
published_atNo
channel_titleNo
upload_statusNouploaded, processed, failed, rejected, or deleted.
audio_languageNoLanguage spoken in the video, e.g. en-US.
paid_promotionNoDeclared to include paid promotion.
duration_secondsNo
rejection_reasonNoWhy YouTube rejected the video, e.g. copyright, duplicate, length, termsOfService. YouTube reports no reason for a video kept private because its API project isn't verified.
upload_failure_reasonNoWhy a failed upload failed, e.g. codec, conversion, emptyFile, invalidFile, tooSmall.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: partial-update semantics and a quota cost of 51 units. It stops short of disclosing the practical consequences of the destructive hint (e.g., unpublishing a public video, cancelling a scheduled publish) or any ownership/permission requirements, which the schema only hints at for the schedule case.

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 and a quota line, all front-loaded with the core behavior first. Nothing is redundant or padded, and the partial-update rule is stated before the quota note.

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 no explanation, and the schema thoroughly documents all 13 parameters. For a 13-parameter destructive mutation on an open-world system, though, the description omits prerequisites (must own the video), what happens on invalid combinations (e.g., publish_at with a non-private outcome), and what error surfaces look like. Adequate but thin for the complexity.

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% across all 13 parameters, with per-field detail including enum-ish values, nullability and side effects, so the schema carries the burden. The description's "only the fields you pass change" adds cross-parameter semantics the schema can't express, but nothing else about individual parameters is contributed. Baseline 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?

"Change a video's metadata" gives a specific verb and resource, which cleanly separates it from update_channel, update_playlist, upload_video and delete_video in the sibling list. It does not explicitly name an alternative, but the resource scope leaves little ambiguity. Slight imprecision: privacy and publish_at are more than "metadata," so the stated scope under-describes the tool.

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?

"Only the fields you pass change; the rest keep their values" is real guidance on how to call it (partial update semantics) and usefully implies you don't need to resend everything. However, there is no when-to-use vs. when-not guidance: no mention that thumbnails go to set_thumbnail, playlist placement to move_in_playlist, or that deletion is delete_video. Usage is implied rather than stated.

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

upload_captionUpload CaptionB

Add a caption track to one of your videos from a caption file, such as SRT or VTT.

Quota: 400 units.

NameRequiredDescriptionDefault
fileYesPath to the caption file, at most 100 MB.
nameNoTrack name viewers see next to the language. Two tracks in one language need different names.
draftNoUpload it hidden from viewers.
videoYesVideo ID or URL.
languageYesLanguage of the captions, e.g. en or en-US.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

NameRequiredDescription
idYes
kindYesasr: made by YouTube's speech recognition. forced: shown when no track is chosen.
nameNo
draftNoNot shown to viewers yet.
statusNoserving, syncing, or failed.
languageYes
video_idYes
updated_atNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the safety profile is covered. The description adds genuinely useful context in the quota cost (400 units) and the 100 MB/file format constraint, but omits behavioral questions the annotations don't answer, e.g. what happens if a track already exists for that language.

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 lines: the operation first, the quota cost second. No redundancy with the title and no wasted words.

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?

Output schema exists so return values need not be explained, and the schema fully documents the six parameters. Annotations carry the mutation profile. The only real gap is the absence of any statement about duplicate/language-collision behavior or required permissions when adding a track.

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 every parameter (file, name, draft, video, language, my_channel) is already documented in the schema. The description adds only the SRT/VTT hint for the file format; it says nothing about the draft or name parameters that the schema does not already cover. Baseline 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 and resource ('Add a caption track to one of your videos') plus the accepted source formats (SRT/VTT), so the operation is unmistakable. It does not contrast itself with the sibling update_caption or list_captions, so the agent gets no explicit disambiguation.

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?

No when-to-use or when-not-to-use guidance and no mention of the closest sibling, update_caption, which an agent could easily confuse with this tool. The description only implies the context (you have a caption file for a video) without stating it or naming alternatives.

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

upload_videoUpload VideoA

Upload a video file from disk (resumable, reports progress).

Category and languages left out are copied from your most recent public upload (among your last 150), so the video matches the rest of your channel; with none, the category is 22 (People & Blogs). YouTube keeps processing the video after this returns, and its duration and statistics appear only once that ends. Checking whether processing has finished tells you when, or why it failed.

Quota: 1 of the project's 100 daily upload calls, plus up to 7 units.

NameRequiredDescriptionDefault
fileYesPath to the local video file.
tagsNoKeyword tags. YouTube may store them in a different order.
titleYesVideo title.
privacyNoPrivacy status. Must be private when publish_at is set.private
languageNoLanguage of the title and description, e.g. en-US.
ai_contentNoWhether AI made realistic content: a real person saying or doing something they didn't, altered footage of a real event or place, a realistic scene that didn't happen, or music that's the video's focus. Not for scripts, captions, or obviously unreal content.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.
publish_atNoSchedule publication at this date or datetime; YouTube makes the video public then.
category_idNoCategory ID (see the video categories listing).
descriptionNoVideo description.
made_for_kidsNoWhether the video is made for kids (COPPA).
audio_languageNoLanguage spoken in the video, e.g. en-US.
paid_promotionNoWhether the video includes paid promotion: a sponsorship, product placement, or endorsement.

Output Schema

NameRequiredDescription
idYes
urlYes
tagsNoIn the order YouTube stores them, which may differ from yours.
statsNo
titleNo
privacyNo
durationNo
languageNoLanguage of the title and description, e.g. en-US.
ai_contentNoDeclared to contain realistic AI-made content, as set by this upload or update. YouTube doesn't report it when reading a video.
channel_idNo
publish_atNo
studio_urlNoEdit page in YouTube Studio; only for videos on channels you're logged in to.
category_idNo
descriptionNo
published_atNo
channel_titleNo
upload_statusNouploaded, processed, failed, rejected, or deleted.
audio_languageNoLanguage spoken in the video, e.g. en-US.
paid_promotionNoDeclared to include paid promotion.
duration_secondsNo
rejection_reasonNoWhy YouTube rejected the video, e.g. copyright, duplicate, length, termsOfService. YouTube reports no reason for a video kept private because its API project isn't verified.
upload_failure_reasonNoWhy a failed upload failed, e.g. codec, conversion, emptyFile, invalidFile, tooSmall.

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: uploads are resumable and report progress, category/language default inheritance with the 'none → 22' fallback, the call returns before YouTube finishes processing, and the hard quota cost (1 of 100 daily upload calls, plus up to 7 units). The async-after-return caveat is exactly the kind of trait an agent cannot infer from destructiveHint/idempotentHint alone.

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?

Front-loads the core action and its two traits in the first sentence, then spends the remaining sentences on default inheritance, async completion, and quota — every sentence supplies non-redundant information. No filler or restatement of the tool title.

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?

For a 13-parameter mutation tool with an output schema present, the description covers the gaps that matter: defaulting behavior, asynchronous processing, failure diagnosis path, and quota cost. Return-value detail is correctly left to the output schema.

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?

Schema coverage is 100%, so parameters are already documented; the description goes further by explaining the semantic default behavior for the nullable category_id and language fields, which the schema does not state. It does not add meaning for the remaining booleans (ai_content, paid_promotion) since those already carry rich schema text.

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 and resource ('Upload a video file from disk') plus distinguishing traits (resumable, reports progress), which separates it from update_video and set_thumbnail in the sibling list. An agent can identify this as the create-a-video operation without opening the schema.

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?

Gives clear context for when defaults apply (category/languages inherited from the last public upload, fallback to 22) and points to a follow-up step: 'Checking whether processing has finished tells you when, or why it failed.' It never explicitly excludes cases (e.g. use update_video for an already-uploaded video) and never names get_processing_status, so routing is implied rather than stated.

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. 14 tool updatesv0.7.1
    • Addeddelete_caption
    • Changeddelete_comment1 field changed
      • changedOutput schema / properties / kind / enum
        Previous value: -[
        -  "video",
        -  "playlist",
        -  "comment",
        -  "section"
        -]New value: +[
        +  "video",
        +  "playlist",
        +  "comment",
        +  "section",
        +  "caption"
        +]
    • Changeddelete_playlist1 field changed
      • changedOutput schema / properties / kind / enum
        Previous value: -[
        -  "video",
        -  "playlist",
        -  "comment",
        -  "section"
        -]New value: +[
        +  "video",
        +  "playlist",
        +  "comment",
        +  "section",
        +  "caption"
        +]
    • Changeddelete_section1 field changed
      • changedOutput schema / properties / kind / enum
        Previous value: -[
        -  "video",
        -  "playlist",
        -  "comment",
        -  "section"
        -]New value: +[
        +  "video",
        +  "playlist",
        +  "comment",
        +  "section",
        +  "caption"
        +]
    • Changeddelete_video1 field changed
      • changedOutput schema / properties / kind / enum
        Previous value: -[
        -  "video",
        -  "playlist",
        -  "comment",
        -  "section"
        -]New value: +[
        +  "video",
        +  "playlist",
        +  "comment",
        +  "section",
        +  "caption"
        +]
    • Changedget_analytics8 fields changed
      • changedInput schema / properties / by / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "day",
        -      "month",
        -      "video",
        -      "country",
        -      "device",
        -      "os",
        -      "traffic-source",
        -      "playback-location",
        -      "age",
        -      "gender",
        -      "subscribed"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "day",
        +      "month",
        +      "video",
        +      "country",
        +      "device",
        +      "os",
        +      "traffic-source",
        +      "traffic-source-detail",
        +      "playback-location",
        +      "age",
        +      "gender",
        +      "subscribed",
        +      "content-type",
        +      "sharing-service",
        +      "elapsed"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / by / description
        Previous value: -"Break the numbers down by this dimension; its column is named as given here. Omit for totals.\nBy month, the range widens to whole months."New value: +"Break the numbers down by this dimension; its column is named as given here. Omit for totals.\nBy month, the range widens to whole months. By elapsed: the audience retention of exactly one\nvideo, a row per 1% of its length (0.01 to 1). By traffic-source-detail, which needs\ntraffic_source: the search terms behind YT_SEARCH, the videos behind RELATED_VIDEO, the sites\nbehind EXT_URL."
      • addedInput schema / properties / content_type
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "videoOnDemand",
        +        "shorts",
        +        "liveStream"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Only long-form videos (videoOnDemand), shorts, or live streams (liveStream), as the\ncontent-type breakdown names them. Not by elapsed."
        +}
      • addedInput schema / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Only viewers in this country, e.g. US. Not by elapsed."
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of rows. Breaking down by video returns at most 200, 25 by default;\nother breakdowns return every row by default."New value: +"Maximum number of rows. Breaking down by video returns at most 200, 25 by default; by\ntraffic-source-detail, at most 25. Other breakdowns return every row by default."
      • changedInput schema / properties / metrics / description
        Previous value: -"Metric names from https://developers.google.com/youtube/analytics/metrics, e.g. views,\nestimatedMinutesWatched, subscribersGained. Defaults to views, watch time, average view\nduration, likes, comments, and subscribers gained and lost. By device, os, traffic-source,\nplayback-location or subscribed, only watch metrics work (views, estimatedMinutesWatched,\naverageViewDuration, averageViewPercentage), and those are the default. By age or gender,\nonly viewerPercentage works."New value: +"Metric names from https://developers.google.com/youtube/analytics/metrics, e.g. views,\nestimatedMinutesWatched, subscribersGained. Defaults to views, watch time, average view\nduration, likes, comments, and subscribers gained and lost. By device, os, traffic-source,\nplayback-location or subscribed, only watch metrics work (views, estimatedMinutesWatched,\naverageViewDuration, averageViewPercentage), and those are the default. By age or gender,\nonly viewerPercentage works. By elapsed: audienceWatchRatio (share of viewers watching at that\npoint, above 1 with rewatches) and relativeRetentionPerformance (0 to 1, against videos of\nsimilar length) by default, or startedWatching and stoppedWatching. By traffic-source-detail:\nviews and estimatedMinutesWatched. By sharing-service: shares."
      • changedInput schema / properties / sort / description
        Previous value: -"Metric or dimension to sort by; prefix with - for descending, e.g. -views. Defaults to\nchronological by day or month, and to the first metric, descending, by anything else."New value: +"Metric or dimension to sort by; prefix with - for descending, e.g. -views. Defaults to\nchronological by day, month or elapsed, and to the first metric, descending, by anything else."
      • addedInput schema / properties / traffic_source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The source to break down by traffic-source-detail, as the traffic-source breakdown names\nit, e.g. YT_SEARCH. Only with that breakdown."
        +}
    • Addedget_impressions
    • Addedget_transcript
    • Addedlist_captions
    • Changedsearch1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results. Each page of up to 50 costs 100 quota units."New value: +"Maximum number of results."
    • Changedset_playlist_thumbnail1 field changed
      • changedInput schema / properties / image / description
        Previous value: -"Path to a square JPEG or PNG, at most 2 MB."New value: +"Path to a square JPEG or PNG, at most 50 MB."
    • Changedset_thumbnail1 field changed
      • changedInput schema / properties / image / description
        Previous value: -"Path to a JPEG or PNG, at most 2 MB."New value: +"Path to a JPEG or PNG, at most 50 MB."
    • Addedupdate_caption
    • Addedupload_caption
  2. 45 tool updatesv0.1.0
    • First observedadd_section
    • First observedadd_video_to_playlist
    • First observedapprove_comments
    • First observedcreate_playlist
    • First observeddelete_comment
    • First observeddelete_playlist
    • First observeddelete_section
    • First observeddelete_video
    • First observededit_comment
    • First observedget_analytics
    • First observedget_channel
    • First observedget_my_ratings
    • First observedget_playlists
    • First observedget_processing_status
    • First observedget_videos
    • First observedhold_comments
    • First observedlist_activities
    • First observedlist_comments
    • First observedlist_my_channels
    • First observedlist_playlist_items
    • First observedlist_playlists
    • First observedlist_replies
    • First observedlist_sections
    • First observedlist_subscriptions
    • First observedlist_video_categories
    • First observedmove_in_playlist
    • First observedpost_comment
    • First observedrate_video
    • First observedreject_comments
    • First observedremove_from_playlist
    • First observedremove_watermark
    • First observedreply_to_comment
    • First observedsearch
    • First observedset_channel_banner
    • First observedset_playlist_thumbnail
    • First observedset_thumbnail
    • First observedset_watermark
    • First observedsetup_guide
    • First observedsubscribe
    • First observedunsubscribe
    • First observedupdate_channel
    • First observedupdate_playlist
    • First observedupdate_section
    • First observedupdate_video
    • First observedupload_video

TDQS

A3.5/5.0

Scored across 51 tools

Disambiguation4/5

Tool purposes are largely distinct, and descriptions clarify tricky pairs such as list_playlists vs get_playlists, comment moderation vs deletion, and analytics vs impressions. With 51 tools, some near-neighbors remain that an agent could misselect, but there are no true duplicates.

Naming Consistency4/5

Almost all names use a snake_case verb_noun pattern like get_videos, create_playlist, and delete_comment. A few are verb-only or noun phrases such as search, subscribe, and setup_guide, which are minor deviations rather than a mixed convention.

Tool Count2/5

51 tools is far beyond a well-scoped MCP surface, even for YouTube's broad domain. Most tools are individually justified, but the overall count will heavily burden tool selection and context.

Completeness5/5

The surface covers CRUD for videos, playlists, comments, captions, channel sections, subscriptions, ratings, uploads, analytics, and impressions. There are no obvious lifecycle dead ends for the stated YouTube management purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers