youtube-kit
Provides tools for managing YouTube channels, including analytics (totals and breakdowns by day, video, country, device, etc.), video operations (upload, update metadata, set thumbnail, like/dislike, delete), comment moderation (list, reply, approve, hold, reject, ban), playlist management (create, update, add/remove/move items), channel info (about, activity, banners, watermarks, sections), search, and subscriptions.
youtube-kit
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.

Quick start
uv tool install youtube-kit
ytk auth login # one-time Google Cloud setup, then pick your channelYou 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
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 othersThe 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 mcpIn 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 @thirdCommands 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 setup does this:
In the Google Cloud Console, create a project and enable YouTube Data API v3 and YouTube Analytics API.
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 domaingithub.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.Under Clients, create a client of type Desktop app and download its JSON.
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 |
| API key for public data |
| Path to the OAuth client JSON |
| Directory of stored logins, one file per channel |
| Channel to work on by default (UC… ID, @handle or exact title), overriding |
| Path to |
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,
@handlesfor channels, and dates or spans like90d.Quota costs up front. Each command's
--helpand 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 statusshows where):[delete_protection] max_views = 100 max_public_age_days = 7Harness 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 toolsadd_sectionAdd SectionA
Add a section to your channel's home page. A channel has at most 10.
Quota: 52 units.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What the section shows. single-playlist needs one playlist, multiple-playlists several playlists and a title, multiple-channels channels and a title. | |
| title | No | Section title, for the multiple-playlists and multiple-channels kinds. | |
| channels | No | Channels to show: UC… IDs, @handles, or channel URLs. | |
| position | No | 0-based position on the home page. Added at the end when omitted. | |
| playlists | No | Playlist IDs or URLs to show. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| type | Yes | |
| title | No | |
| position | No | |
| channel_ids | No | |
| playlist_ids | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL. | |
| playlist | Yes | Playlist ID or URL. | |
| position | No | 0-based position in the playlist. Appends to the end when omitted. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| position | Yes | |
| video_id | Yes | |
| playlist_id | Yes | |
| playlist_item_id | Yes |
TDQS
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.
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.
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.
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.
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.
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 CommentsADestructiveIdempotent
Publish comments on your videos that are held for review or marked as likely spam.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| comments | Yes | Comment IDs or links. 50 quota units per 50 comments. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| comment_ids | Yes | |
| authors_banned | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Playlist title. | |
| privacy | No | Privacy status. | private |
| language | No | Language of the title and description, e.g. en-US. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| description | No | Playlist description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| title | Yes | |
| privacy | No | |
| language | No | Language of the title and description, e.g. en-US. |
| channel_id | No | |
| item_count | No | |
| description | No | |
| published_at | No |
TDQS
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.
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.
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.
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.
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.
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 CommentADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | Comment ID or link. | |
| confirm | No | The comment ID again, passed only after the user has approved deleting this comment. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| already_gone | No | Nothing to delete: it didn't exist or was already deleted. |
TDQS
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.
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.
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.
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.
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.
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 PlaylistADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | The playlist ID again, passed only after the user has approved deleting this playlist. | |
| playlist | Yes | Playlist ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| already_gone | No | Nothing to delete: it didn't exist or was already deleted. |
TDQS
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.
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.
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.
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.
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.
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 SectionADestructiveIdempotent
Delete a section from your channel's home page. Its playlists and videos are not affected.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | Section ID, as listed for your channel. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| already_gone | No | Nothing to delete: it didn't exist or was already deleted. |
TDQS
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.
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.
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.
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.
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.
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 VideoADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL. | |
| confirm | No | The video ID again, passed only after the user has approved deleting this video. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| already_gone | No | Nothing to delete: it didn't exist or was already deleted. |
TDQS
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.
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.
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.
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.
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.
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 CommentBDestructiveIdempotent
Replace the text of one of your own comments or replies.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The new text. | |
| comment | Yes | Comment ID or link. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| text | Yes | |
| likes | No | |
| author | Yes | |
| status | No | Moderation status, where YouTube reports it. |
| video_id | No | |
| parent_id | No | Replies only: the comment replied to. |
| updated_at | No | |
| reply_count | No | Top-level comments only. |
| published_at | Yes | |
| author_channel_id | No |
TDQS
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.
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.
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.
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.
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.
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 AnalyticsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | Break the numbers down by this dimension; its column is named as given here. Omit for totals. By month, the range widens to whole months. | |
| sort | No | Metric 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. | |
| limit | No | Maximum number of rows. Breaking down by video returns at most 200, 25 by default; other breakdowns return every row by default. | |
| since | No | First day, inclusive: 2026-01-01, or 90d / 4w before until. Defaults to 28 days before until. | |
| until | No | Last day, inclusive: 2026-01-31, or 7d / 1w ago. Defaults to today. | |
| videos | No | Only these videos (IDs or URLs). | |
| metrics | No | Metric 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_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| since | Yes | |
| until | Yes | |
| columns | Yes | Dimension first (if any), then the metrics, in request order. |
TDQS
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.
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.
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.
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.
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.
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 ChannelARead-onlyIdempotent
Channel metadata, statistics, and uploads playlist ID.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | UC… channel ID, @handle, or channel URL. Omit for your own channel. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| stats | No | |
| title | Yes | |
| handle | No | |
| country | No | |
| description | Yes | |
| published_at | Yes | |
| uploads_playlist_id | No |
TDQS
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.
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.
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.
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.
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.
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 RatingsBRead-onlyIdempotent
Whether the authorized user liked or disliked each video.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| videos | Yes | Video IDs or URLs. Fetched in batches of 50, 1 quota unit per batch. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 PlaylistsBRead-onlyIdempotent
Metadata of one or more playlists: title, description, privacy, and item count.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| playlists | Yes | Playlist IDs or URLs with a list= parameter. Fetched in batches of 50, 1 quota unit per batch. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 StatusBRead-onlyIdempotent
Whether YouTube has finished processing one of your uploads.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Keep 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. | |
| video | Yes | Video ID or URL. | |
| timeout | No | Seconds to wait at most. Callers that can't block for long should wait briefly and check again. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| video_id | Yes | |
| parts_total | No | |
| time_left_ms | No | |
| failure_reason | No | |
| parts_processed | No |
TDQS
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.
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.
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.
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.
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.
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 VideosARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| videos | Yes | Video IDs or URLs. Fetched in batches of 50, 1 quota unit per batch. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 CommentsADestructiveIdempotent
Hide comments on your videos until you review them.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| comments | Yes | Comment IDs or links. 50 quota units per 50 comments. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| comment_ids | Yes | |
| authors_banned | No |
TDQS
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.
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.
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.
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.
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.
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 ActivitiesBRead-onlyIdempotent
A channel's recent activity feed (uploads, playlist additions, and the like).
Quota: 1 unit per page of up to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of activities. | |
| since | No | Only activity at or after this date or datetime (2026-01-01), or this long ago (90d, 4w). | |
| channel | No | UC… channel ID, @handle, or channel URL. Omit for your own channel. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 CommentsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of comments. | |
| order | No | Newest first, or most relevant first. | time |
| video | No | Video ID or URL. Omit for every video on your channel. | |
| search | No | Only comments containing these words. | |
| status | No | Moderation 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_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 ChannelsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 ItemsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of entries. | |
| playlist | Yes | Playlist ID or a URL with a list= parameter. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 PlaylistsCRead-onlyIdempotent
A channel's playlists.
Quota: 1 unit per page of up to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of playlists. | |
| channel | No | UC… channel ID, @handle, or channel URL. Omit for your own channel, including private playlists. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 RepliesCRead-onlyIdempotent
Replies to a top-level comment.
Quota: 1 unit per page of up to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of replies. | |
| comment | Yes | Comment ID or link. A reply's ID or link lists its whole thread. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 SectionsBRead-onlyIdempotent
The sections on a channel's home page.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | UC… channel ID, @handle, or channel URL. Omit for your own channel. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 SubscriptionsARead-onlyIdempotent
Channels the authorized user is subscribed to.
Quota: 1 unit per page of up to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of subscriptions. | |
| order | No | Alphabetical, by relevance, or by activity (unread first). | alphabetical |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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.
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.
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.
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.
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.
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 CategoriesARead-onlyIdempotent
Video categories that can be assigned to uploads in a region, with the IDs to pass as category_id.
Quota: 1 unit.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ISO 3166-1 alpha-2 country code. | US |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 PlaylistADestructiveIdempotent
Move a video to another position in one of your playlists.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL. Refused if the video appears in the playlist more than once. | |
| playlist | Yes | Playlist ID or URL. | |
| position | Yes | New 0-based position. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| position | Yes | |
| video_id | Yes | |
| playlist_id | Yes | |
| playlist_item_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The comment. | |
| video | Yes | Video ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| text | Yes | |
| likes | No | |
| author | Yes | |
| status | No | Moderation status, where YouTube reports it. |
| video_id | No | |
| parent_id | No | Replies only: the comment replied to. |
| updated_at | No | |
| reply_count | No | Top-level comments only. |
| published_at | Yes | |
| author_channel_id | No |
TDQS
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.
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.
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.
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.
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.
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 VideoAIdempotent
Like or dislike a video as the authorized user, or clear the rating with none.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL. | |
| rating | Yes | like, dislike, or none. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rating | Yes | |
| video_id | Yes |
TDQS
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.
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.
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.
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.
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.
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 CommentsADestructiveIdempotent
Reject comments on your videos, hiding them from viewers. They can still be approved later.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| comments | Yes | Comment IDs or links. 50 quota units per 50 comments. | |
| ban_author | No | Also reject all future comments on your channel by each comment's author. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| comment_ids | Yes | |
| authors_banned | No |
TDQS
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.
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.
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.
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.
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.
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 PlaylistADestructiveIdempotent
Remove a video from one of your playlists, every time it appears. The video itself is not affected.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL. | |
| playlist | Yes | Playlist ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| removed | Yes | How many occurrences were removed; 0 if the video wasn't in the playlist. |
| video_id | Yes | |
| playlist_id | Yes |
TDQS
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.
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.
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.
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.
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.
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 WatermarkADestructiveIdempotent
Remove the watermark from your videos. Succeeds when there is none.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| active | Yes | |
| corner | No | |
| from_end | No | |
| channel_id | Yes | |
| start_seconds | No | |
| duration_seconds | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reply. | |
| comment | Yes | Comment ID or link. Replying to a reply adds to the same thread. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| text | Yes | |
| likes | No | |
| author | Yes | |
| status | No | Moderation status, where YouTube reports it. |
| video_id | No | |
| parent_id | No | Replies only: the comment replied to. |
| updated_at | No | |
| reply_count | No | Top-level comments only. |
| published_at | Yes | |
| author_channel_id | No |
TDQS
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.
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.
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.
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.
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.
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.
searchSearchARead-onlyIdempotent
Search YouTube for videos, channels, or playlists.
Quota: 100 units per page of up to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | What to search for. | video |
| limit | No | Maximum number of results. Each page of up to 50 costs 100 quota units. | |
| order | No | Sort order. | relevance |
| query | Yes | Search terms. | |
| since | No | Only results published at or after this date or datetime (2026-01-01), or this long ago (90d, 4w). | |
| channel | No | Only results from this channel: UC… ID, @handle, or channel URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| page_token | No | Continue from a previous result's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| total_results | No | Total reported by YouTube; only an estimate for search. |
| next_page_token | No | Pass as page_token to continue; null at the end. |
TDQS
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 covered. The description adds genuinely useful behavioral context beyond the annotations: the quota cost of 100 units per page of up to 50 results, which is a real operational constraint an agent should weigh.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, and the purpose is front-loaded ahead of the cost note. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, 100% parameter coverage, and annotations covering safety, the description needs only to state purpose and any non-structured behavior. It does both, though pagination/auth expectations are left entirely to the schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 8 parameters including enums, defaults, date formats and the page_token continuation. The description adds no parameter-level meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search YouTube') plus the result scope ('videos, channels, or playlists'), so an agent immediately knows what it does. It does not explicitly differentiate itself from the many list_* siblings that also return videos/channels/playlists, leaving that distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the verb: use it when you have search terms and want query-based discovery rather than enumeration. There is no explicit when-to-use, when-not, or pointer to alternatives such as list_videos or get_channel for browsing known entities.
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 BannerADestructiveIdempotent
Upload and set your channel's banner. Use a 16:9 image of at least 2048x1152, at most 6 MB.
Quota: 101 units.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Path to a JPEG or PNG. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| country | No | |
| keywords | No | |
| language | No | |
| banner_url | No | |
| channel_id | Yes | |
| description | No | |
| trailer_video_id | No | Shown to visitors who aren't subscribed. |
TDQS
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.
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.
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.
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.
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.
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 ThumbnailADestructiveIdempotent
Set the custom thumbnail of one of your playlists, replacing any current one.
Quota: 101 units.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Path to a square JPEG or PNG, at most 2 MB. | |
| playlist | Yes | Playlist ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| width | No | |
| height | No | |
| image_id | Yes | |
| playlist_id | Yes |
TDQS
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.
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.
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.
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.
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.
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 ThumbnailADestructiveIdempotent
Set a video's custom thumbnail. The channel must be verified.
Quota: 50 units.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Path to a JPEG or PNG, at most 2 MB. | |
| video | Yes | Video ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| video_id | Yes | |
| thumbnail_url | No |
TDQS
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.
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.
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.
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.
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.
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 GuideARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Google Cloud project ID, once known. The links then open with that project selected. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ready | Yes | At least one channel is logged in. |
| steps | Yes | What is left to do, in order. Empty when ready. |
| channels | Yes |
TDQS
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.
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.
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.
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.
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.
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 WatermarkADestructiveIdempotent
Set the watermark shown over all your videos, replacing any current one. Viewers click it to subscribe.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Path to a square JPEG or PNG, at least 150x150, at most 1 MB. | |
| start | No | Seconds from the start of the video when it appears, or from its end when counting from the end. | |
| corner | No | Where it appears. | bottom-right |
| duration | No | Seconds to show it. Until the end of the video when omitted. | |
| from_end | No | Count start back from the end of the video. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| active | Yes | |
| corner | No | |
| from_end | No | |
| channel_id | Yes | |
| start_seconds | No | |
| duration_seconds | No |
TDQS
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.
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.
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.
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.
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.
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.
subscribeSubscribeAIdempotent
Subscribe the authorized user to a channel. Already being subscribed is fine.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | UC… channel ID, @handle, or channel URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| title | No | |
| channel_id | Yes | |
| description | No | |
| subscribed_at | No |
TDQS
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.
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.
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.
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.
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.
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.
unsubscribeUnsubscribeADestructiveIdempotent
Unsubscribe the authorized user from a channel. Not being subscribed is fine.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | UC… channel ID, @handle, or channel URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| channel_id | Yes | |
| was_subscribed | Yes |
TDQS
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.
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.
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.
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.
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.
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 ChannelADestructiveIdempotent
Change your channel's about info. Only the fields you pass change. The name can only be changed in Studio.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO 3166-1 alpha-2 country code. | |
| trailer | No | Video (ID or URL) shown to visitors who aren't subscribed. | |
| keywords | No | Channel keywords, replacing the current ones. An empty list removes them all. | |
| language | No | Language 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_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| description | No | Channel description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| country | No | |
| keywords | No | |
| language | No | |
| banner_url | No | |
| channel_id | Yes | |
| description | No | |
| trailer_video_id | No | Shown to visitors who aren't subscribed. |
TDQS
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.
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.
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.
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.
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.
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 PlaylistBDestructiveIdempotent
Change one of your playlists. Only the fields you pass change.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title. | |
| privacy | No | New privacy status. | |
| language | No | Language of the title and description, e.g. en-US. | |
| playlist | Yes | Playlist ID or URL. | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| description | No | New description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| title | Yes | |
| privacy | No | |
| language | No | Language of the title and description, e.g. en-US. |
| channel_id | No | |
| item_count | No | |
| description | No | |
| published_at | No |
TDQS
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.
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.
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.
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.
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.
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 SectionADestructiveIdempotent
Change a section on your channel's home page. Only the fields you pass change.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title. | |
| section | Yes | Section ID, as listed for your channel. | |
| channels | No | Channels to show instead of the current ones (UC… IDs, @handles, or URLs). | |
| position | No | New 0-based position on the home page. | |
| playlists | No | Playlists to show instead of the current ones (IDs or URLs). | |
| my_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| type | Yes | |
| title | No | |
| position | No | |
| channel_ids | No | |
| playlist_ids | No |
TDQS
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.
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.
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.
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.
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.
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 VideoADestructiveIdempotent
Change a video's metadata. Only the fields you pass change; the rest keep their values.
Quota: 51 units.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | New tags, replacing the current ones. An empty list removes all tags. YouTube may store them in a different order. | |
| title | No | New title. | |
| video | Yes | Video ID or URL. | |
| privacy | No | New privacy status. Making a scheduled video public or unlisted cancels the schedule. | |
| language | No | Language of the title and description, e.g. en-US. | |
| ai_content | No | Whether 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_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| publish_at | No | Schedule publication at this date or datetime. The video must end up private. | |
| category_id | No | New category ID (see the video categories listing). | |
| description | No | New description. | |
| made_for_kids | No | Whether the video is made for kids (COPPA). | |
| audio_language | No | Language spoken in the video, e.g. en-US. | |
| paid_promotion | No | Whether the video includes paid promotion: a sponsorship, product placement, or endorsement. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| tags | No | In the order YouTube stores them, which may differ from yours. |
| stats | No | |
| title | No | |
| privacy | No | |
| duration | No | |
| language | No | Language of the title and description, e.g. en-US. |
| ai_content | No | Declared to contain realistic AI-made content, as set by this upload or update. YouTube doesn't report it when reading a video. |
| channel_id | No | |
| publish_at | No | |
| studio_url | No | Edit page in YouTube Studio; only for videos on channels you're logged in to. |
| category_id | No | |
| description | No | |
| published_at | No | |
| channel_title | No | |
| upload_status | No | uploaded, processed, failed, rejected, or deleted. |
| audio_language | No | Language spoken in the video, e.g. en-US. |
| paid_promotion | No | Declared to include paid promotion. |
| duration_seconds | No | |
| rejection_reason | No | Why 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_reason | No | Why a failed upload failed, e.g. codec, conversion, emptyFile, invalidFile, tooSmall. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Path to the local video file. | |
| tags | No | Keyword tags. YouTube may store them in a different order. | |
| title | Yes | Video title. | |
| privacy | No | Privacy status. Must be private when publish_at is set. | private |
| language | No | Language of the title and description, e.g. en-US. | |
| ai_content | No | Whether 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_channel | No | Which of your logged-in channels to work on: UC… ID, @handle or exact title. Omit for the default channel. | |
| publish_at | No | Schedule publication at this date or datetime; YouTube makes the video public then. | |
| category_id | No | Category ID (see the video categories listing). | |
| description | No | Video description. | |
| made_for_kids | No | Whether the video is made for kids (COPPA). | |
| audio_language | No | Language spoken in the video, e.g. en-US. | |
| paid_promotion | No | Whether the video includes paid promotion: a sponsorship, product placement, or endorsement. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| tags | No | In the order YouTube stores them, which may differ from yours. |
| stats | No | |
| title | No | |
| privacy | No | |
| duration | No | |
| language | No | Language of the title and description, e.g. en-US. |
| ai_content | No | Declared to contain realistic AI-made content, as set by this upload or update. YouTube doesn't report it when reading a video. |
| channel_id | No | |
| publish_at | No | |
| studio_url | No | Edit page in YouTube Studio; only for videos on channels you're logged in to. |
| category_id | No | |
| description | No | |
| published_at | No | |
| channel_title | No | |
| upload_status | No | uploaded, processed, failed, rejected, or deleted. |
| audio_language | No | Language spoken in the video, e.g. en-US. |
| paid_promotion | No | Declared to include paid promotion. |
| duration_seconds | No | |
| rejection_reason | No | Why 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_reason | No | Why a failed upload failed, e.g. codec, conversion, emptyFile, invalidFile, tooSmall. |
TDQS
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.
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.
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.
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.
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.
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.
45 tool updates
v0.1.0- First observed
add_section - First observed
add_video_to_playlist - First observed
approve_comments - First observed
create_playlist - First observed
delete_comment - First observed
delete_playlist - First observed
delete_section - First observed
delete_video - First observed
edit_comment - First observed
get_analytics - First observed
get_channel - First observed
get_my_ratings - First observed
get_playlists - First observed
get_processing_status - First observed
get_videos - First observed
hold_comments - First observed
list_activities - First observed
list_comments - First observed
list_my_channels - First observed
list_playlist_items - First observed
list_playlists - First observed
list_replies - First observed
list_sections - First observed
list_subscriptions - First observed
list_video_categories - First observed
move_in_playlist - First observed
post_comment - First observed
rate_video - First observed
reject_comments - First observed
remove_from_playlist - First observed
remove_watermark - First observed
reply_to_comment - First observed
search - First observed
set_channel_banner - First observed
set_playlist_thumbnail - First observed
set_thumbnail - First observed
set_watermark - First observed
setup_guide - First observed
subscribe - First observed
unsubscribe - First observed
update_channel - First observed
update_playlist - First observed
update_section - First observed
update_video - First observed
upload_video
TDQS
Scored across 45 tools
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.
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.
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.
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
Related MCP Connectors
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
YouTube discovery, transcripts, library search, and monitors with API keys or OAuth.
YouTube search, whole channels, video stats, comments and full transcripts with timestamps.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA fully functional MCP server and CLI for YouTube to automate YouTube operation.699Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with the YouTube Data API, allowing users to search videos, get video and channel details, analyze trends, and fetch video transcripts.-
- FlicenseNot gradedqualityDmaintenanceProvides YouTube video search, comment analysis, AI-powered text tools, and content generation via MCP protocol and REST API.11 npm7-
- FlicenseBqualityDmaintenanceMCP server for YouTube Data API v3 enabling video search, channel lookup, trending content, comments, and playlist management.11-