Skip to main content
Glama

youtube-kit

CI PyPI Python License: MIT

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, 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 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: uv tool upgrade youtube-kit updates both. 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, playback location, age, gender or subscribed status

Videos

get, categories, upload (resumable, with progress), update metadata, set thumbnail, wait for processing, like or dislike, check your rating, 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: captions, 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 and YouTube Analytics API.

  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)

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.

Deleting

YouTube has no trash, and agents make mistakes. So deleting videos, playlists and comments 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:*)"]}}
  • 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, search 100 per page of 50 results, most writes 50, guarded deletes 52 (they look up the target and check ownership first), and an upload 1,600. ytk analytics uses the separate YouTube Analytics API quota.

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

45 tools
add_sectionAdd SectionA

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

Quota: 52 units.

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON 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_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.

ParametersJSON Schema
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

ParametersJSON 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?

Goes well beyond annotations with cascade semantics ('deleting a top-level comment deletes its replies'), the no-op behavior when confirm is omitted, and an explicit quota cost (52 units). These are exactly the traits annotations (destructive/idempotent) cannot convey.

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, then the alternative, then the confirmation gate, then quota. No filler or restatement of the 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?

Covers ownership limits, cascade effects, the confirmation requirement, the alternative tool, and quota cost; with an output schema present, return-value detail is correctly omitted. Nothing needed to call this safely 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 the baseline is 3, and the description adds genuine value by explaining the runtime consequence of omitting confirm ('nothing is deleted and the error describes the comment'), turning a schema note into actionable behavior. It does not add anything for my_channel beyond 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 ... comments or replies') and immediately scopes ownership ('one of your own'), which cleanly separates it from the redaction path for others' comments. An agent can distinguish this from reject_comments without opening a 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 and the condition that selects it: others' comments on your videos 'can't be deleted, only rejected, which hides them.' It also documents the confirm gate as a precondition, so the agent knows the two-step invocation sequence.

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.

ParametersJSON Schema
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

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

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description goes further by disclosing that deletion is permanent, that contained videos survive, the exact dry-run behavior of the missing 'confirm' argument, and a quota cost of 52 units. That is real operational context beyond the structured hints.

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 front-loaded with its key fact: what happens, what is untouched, what the dry-run does, what it costs. No filler or repetition of the tool name.

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 carry the safety profile, so the description only needs to add what those cannot: permanence, side-effect scope, dry-run semantics, and quota. All four are present, leaving nothing an agent needs 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 the baseline is 3; the description earns above baseline by explaining the runtime effect of the optional 'confirm' parameter (omitting it yields no deletion plus a descriptive error), which is behavior the schema's own field text only implies.

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 playlists') and immediately bounds the blast radius with 'The videos in it are not affected,' which separates it from delete_video and remove_from_playlist without the agent needing to open 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 Guidelines4/5

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

Explicitly describes the two-step workflow: without 'confirm' nothing is deleted and the error is descriptive, so the agent knows it can safely preview before committing. It does not name alternative tools (e.g., update_playlist vs. this) or state prerequisites, so it stops short of a full when/when-not routing statement.

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.

ParametersJSON Schema
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

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

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 safety is largely covered. The description adds genuinely useful context beyond them: playlists and videos are unaffected (scope of destruction) and the operation costs 50 quota units, which matters for a quota-limited API.

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 an isolated quota line. The core action and its non-obvious side effect are front-loaded with zero 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?

With a full schema, an output schema, and destructive/idempotent annotations, the description covers what remains: scope of impact and cost. It could add a pointer to list_sections for retrieving the section ID, but nothing essential 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%, covering both 'section' (ID as listed for your channel) and 'my_channel' (channel selector). The description adds no parameter-level detail, so the baseline of 3 applies since the schema does the heavy lifting.

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 ('Delete a section') and scopes it to the channel's home page, which cleanly separates it from sibling deleters like delete_playlist, delete_video, and delete_comment. An agent can identify the target object 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?

There is no explicit when-to-use or when-not-to-use guidance and no named alternative (e.g., update_section for edits, list_sections for obtaining IDs). Usage is only implied by the verb and the reassurance about side effects; adequate but with a clear gap.

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.

ParametersJSON Schema
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

ParametersJSON 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 declare destructiveHint=true and idempotentHint=true, yet the description adds substantial context they cannot convey: the permanence of the deletion, the hard view/age eligibility limits, the confirm-gate failure mode, and the 52-unit quota cost. This is rich behavioral disclosure 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 short sentences, front-loaded with the action and its permanence, then eligibility limits, then the confirm gate, then quota. No filler and no repetition of the title or 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, so return values need not be explained, and annotations carry the safety profile. Combined with the eligibility limits, confirmation gate, and quota disclosure, an agent has everything needed to invoke this destructive tool responsibly.

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 description coverage is 100%, so the baseline is 3 and the schema already documents 'video', 'confirm', and 'my_channel'. The description nonetheless adds the behavioral consequence of omitting confirm ('nothing is deleted and the error describes the video'), which clarifies the two-phase confirmation semantics beyond the raw 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?

The first sentence states a specific verb and resource ('Permanently delete one of your videos') plus the crucial qualifier that the deletion is permanent. It is unambiguous against siblings like update_video, remove_from_playlist, or delete_comment, which operate on different resources.

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 states the conditions under which this tool works (recent, ≤100 views, uploaded within 7 days if public) and names the fallback for everything else ('Anything else must be deleted in YouTube Studio'). This is exactly the when/when-not/alternative structure an agent needs.

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.

ParametersJSON Schema
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

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

ParametersJSON Schema
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.
sortNoMetric or dimension to sort by; prefix with - for descending, e.g. -views. Defaults to chronological by day or month, and to the first metric, descending, by anything else.
limitNoMaximum number of rows. Breaking down by video returns at most 200, 25 by default; 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).
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.
my_channelNoWhich of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel.

Output Schema

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

TDQS

A4/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 safety is covered. The description adds genuinely non-obvious behavior: recent data is incomplete and keeps growing, and the call draws on a separate quota that consumes zero YouTube Data API units — a cost signal an agent planning a multi-call workflow actually needs.

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 capability statement is front-loaded in one line, followed by two short paragraphs that each carry a distinct operational fact (data latency, separate API/quota). No sentence repeats the name, the annotations, or the 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?

With an output schema present and all eight parameters fully documented in the schema, the description only needs to carry setup and freshness context, which it does. A brief note on how to combine dimensions and metrics would round it out, but nothing an agent needs to invoke 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% and each parameter carries a rich description (dimension naming, sort prefixes, 200-row cap for video breakdowns, relative date syntax, metric compatibility per dimension), so the schema does all the work. The tool description itself contributes no parameter-level information, which is the baseline-3 case.

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 first sentence names the exact resource and the two output shapes it can produce: aggregate totals versus rows broken down by a single dimension. That is specific enough to distinguish it from every sibling in the list, none of which touch analytics. It stops short of a 5 only because it never explicitly contrasts itself with the closest data-reading siblings like get_videos or get_channel.

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 real prerequisites — the separate YouTube Analytics API must be enabled in the same Google Cloud project — and a caveat about when the data is trustworthy (the last two to three days keep growing). What's missing is explicit routing: nothing says to use get_channel or get_videos for non-analytics channel/video metadata instead.

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.

ParametersJSON Schema
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

ParametersJSON 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_my_ratingsGet My RatingsB
Read-onlyIdempotent

Whether the authorized user liked or disliked each video.

Quota: 1 unit.

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON 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_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.

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON 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_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.

ParametersJSON Schema
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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

Quota: 51 units.

ParametersJSON Schema
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

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds valuable context beyond annotations: removal applies to every occurrence of the video in the playlist, the video itself is unaffected, and the operation costs 51 quota units.

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 tight sentences plus a quota note. The core action and its scope are front-loaded, and every clause earns its place by preventing a common misunderstanding or surfacing cost.

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

Completeness4/5

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

Given that annotations cover safety and idempotency, an output schema exists, and the input schema documents all parameters, the description is nearly complete. It could optionally mention permission requirements or error behavior, but 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%, so all three parameters (video, playlist, my_channel) are already documented in the input schema. The description adds no syntax, format, or selection guidance beyond that baseline, so a 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource ('Remove a video from one of your playlists') and adds a distinguishing scope ('every time it appears'), which clearly separates it from siblings like add_video_to_playlist, move_in_playlist, and delete_video. It also clarifies the non-effect on the video itself, preventing 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 gives clear implied context: use this to detach a video from a playlist without deleting the video. It does not explicitly name alternatives or state when-not-to-use, but the 'video itself is not affected' clause effectively contrasts it with delete_video.

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.

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

Output Schema

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesPath to a square JPEG or PNG, at most 2 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

ParametersJSON Schema
NameRequiredDescription
widthNo
heightNo
image_idYes
playlist_idYes

TDQS

A3.6/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, but the description adds two things they do not: that an existing thumbnail is replaced, and that the call costs 101 quota units. Permission/auth requirements are still unstated, so it is 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?

Two short sentences with the action front-loaded and the cost caveat second; every clause carries information and nothing is padded.

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 annotations carry the safety profile. The description covers the destructive replace and the quota cost, leaving only auth/channel-scope caveats 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% – image format/size limits, playlist ID-or-URL, and the my_channel selector are all documented in the schema. The description contributes no additional parameter 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 and resource ('Set the custom thumbnail of one of your playlists'), which is enough to separate it from the sibling set_thumbnail (video) and set_channel_banner. It never names an alternative explicitly, so it stops short of the sibling-differentiation a 5 requires.

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 mention of alternatives such as set_thumbnail or a removal path. The only usable signal is the implicit 'it's the playlist thumbnail tool', which the agent must infer from the resource name alone.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesPath to a JPEG or PNG, at most 2 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

ParametersJSON 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?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds two things the annotations cannot: the verification prerequisite and the 50-unit quota cost, both genuinely actionable. It doesn't say the previous thumbnail is replaced, but the destructive annotation implies 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?

Three short, front-loaded statements with zero filler: the action first, then the prerequisite, then the quota. Every sentence carries distinct 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 need not be described, and the annotations cover the mutation semantics. Adding the auth prerequisite and quota cost makes it nearly complete for a destructive write; only the replacement behavior of the existing thumbnail is left to inference.

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 includes format constraints ('JPEG or PNG, at most 2 MB'), 'Video ID or URL' and the multi-channel selector semantics. With the schema already doing the heavy lifting, the description contributes nothing 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 and resource ('Set a video's custom thumbnail'), which is enough to tell it apart from set_channel_banner and set_watermark. It implicitly distinguishes from the similarly-named sibling set_playlist_thumbnail by scoping to a 'video', though it never names the 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 Guidelines3/5

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

Gives a concrete prerequisite ('The channel must be verified'), which is useful context for when the call will succeed. It stops short of stating when to use this tool versus alternatives like set_playlist_thumbnail or update_video, 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.

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.

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

Output Schema

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON 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_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.

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

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

ParametersJSON Schema
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

ParametersJSON 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_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: 1607 units.

ParametersJSON Schema
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

ParametersJSON 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.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, openWorld=true, idempotent=false, destructive=false) by disclosing default inheritance from the last 150 uploads, the category 22 fallback, resumability, quota cost (1607 units), and the critical async fact that YouTube keeps processing after return so duration/statistics are not immediately available. This is exactly the behavioral surface an agent needs.

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-loads the purpose, then layers defaults, async behavior, and quota. Dense and slightly clause-heavy, but each sentence (defaults, processing lag, quota) contributes operational detail, and nothing is redundant.

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 write tool with an output schema, the description covers the non-obvious gaps: default-inheritance behavior, post-return processing, and quota cost. Return values are delegated to the output schema, which is appropriate.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: category and language default values are inherited from prior uploads rather than defaulting to null as the schema shows. That is genuine added value for two of the thirteen parameters.

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') and immediately frames scope with resumable/progress. An agent can trivially distinguish this from update_video or delete_video without opening a 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 verb and the file/title requirement, but there is no explicit when-to-use or when-not-to-use guidance and no named alternative (e.g., update_video for modifying an existing upload). The pointer to processing-status checking is helpful context but not a tool-selection rule.

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

B3.4/5.0

Scored across 45 tools

Disambiguation4/5

Most tools target distinct resources and actions, but there is overlap between list_playlists and get_playlists, and among approve_comments, hold_comments, and reject_comments. These boundaries are clarified by descriptions, but an agent could still occasionally misselect.

Naming Consistency4/5

Nearly all names use a predictable snake_case verb_noun pattern with consistent prefixes such as get_, list_, update_, delete_, set_, and add_. Minor deviations include setup_guide (not verb_noun) and singular/plural inconsistencies like delete_comment versus approve_comments.

Tool Count2/5

At 45 tools, the server is well above the 25+ threshold for a heavy surface. Although YouTube APIs are broad, many operations could be consolidated or grouped to reduce cognitive load and improve discoverability.

Completeness4/5

Core channel, video, playlist, comment, subscription, and analytics workflows have strong lifecycle coverage. Notable gaps remain for live streaming, captions, and some playlist-item metadata edits, but most common channel-management tasks are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers