YouTube Personal Playlist noAPI MCP
Allows managing your own YouTube playlists using browser cookies without requiring the Google API, including listing playlists, creating, renaming, setting descriptions, adding and removing videos, deleting playlists, and checking account/cookie authentication status.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YouTube Personal Playlist noAPI MCPlist my YouTube playlists"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
YouTube Personal Playlist noAPI MCP
Manage your own YouTube playlists from any MCP-capable agent using your existing YouTube browser cookies. No Google API key, Google Cloud project, or OAuth app is required.
This package is a local stdio MCP executable, not a backend service. The agent starts it when needed and it exits with the agent/client.
Run directly from GitHub
Prerequisite: Node.js 20 or newer. No clone, global install, or npm registry publish is required.
YOUTUBE_COOKIE_FILE="$HOME/.config/youtube-personal-playlist-noapi-mcp/cookies.txt" \
npx -y github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#mainThis is a stdio MCP executable: use it as the command in an MCP client, rather than expecting a terminal UI. It can start with no credentials; paste cookies to a trusted agent and have it call youtube_cookie_set.
The command above is verified with npm 11.19.1. npm 12.2.0 disables Git dependencies by default; use the tested npm 12 command below instead.
YOUTUBE_COOKIE_FILE="$HOME/.config/youtube-personal-playlist-noapi-mcp/cookies.txt" \
npm exec --yes --allow-git=all github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#mainMCP client configuration
{
"mcpServers": {
"youtube-playlists": {
"command": "npx",
"args": ["-y", "github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#main"],
"env": {
"YOUTUBE_COOKIE_FILE": "/absolute/path/to/cookies.txt"
}
}
}
}For npm 12, use this configuration instead:
{
"command": "npm",
"args": ["exec", "--yes", "--allow-git=all", "github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#main"]
}Related MCP server: youtube-playlist-mcp
Cookie location
Cookie storage is intentionally high-level and predictable.
Priority:
--cookie-file /path/to/cookies.txtYOUTUBE_COOKIE_FILE=/path/to/cookies.txt$XDG_CONFIG_HOME/youtube-personal-playlist-noapi-mcp/cookies.txt~/.config/youtube-personal-playlist-noapi-mcp/cookies.txt
The MCP stores normalized cookies with mode 0600 and never returns cookie values.
Example custom location:
YOUTUBE_COOKIE_FILE="$HOME/.config/my-youtube/cookies.txt" \
npx -y github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#mainor:
npx -y github:bigbatmanorg/youtube-personal-playlist-noapi-mcp#main \
--cookie-file "$HOME/.config/my-youtube/cookies.txt"Tools
youtube_cookie_set— accepts pasted Netscape cookies.txt content or a raw Cookie header, stores it, and immediately verifies account + playlist access.youtube_cookie_status— shows the configured path and tests current authentication.youtube_account_infoyoutube_list_playlistsyoutube_get_playlistyoutube_create_playlistyoutube_rename_playlistyoutube_set_playlist_descriptionyoutube_add_videosyoutube_remove_videosyoutube_delete_playlist
One-command full-cycle test from pasted cookies
This is the strongest test. It starts the MCP with no assumed session, reads pasted cookie text from stdin, calls youtube_cookie_set, stores the cookie at the configured path, verifies authentication, lists/reads playlists, creates a disposable playlist, renames it, sets a description, adds/removes a test video, verifies each state change, deletes the temporary playlist, and exercises the real MCP protocol end-to-end.
Interactive:
npm run test:full -- --cookie-file "$HOME/.config/youtube-personal-playlist-noapi-mcp/test-cookies.txt"Paste your full Netscape cookie export or raw Cookie: header, then press Ctrl-D.
Or pipe an export:
cat ~/Downloads/youtube-cookies.txt | \
npm run test:full -- --cookie-file "$HOME/.config/youtube-personal-playlist-noapi-mcp/test-cookies.txt"A successful run ends with:
RESULT: READYThe full test temporarily modifies the authenticated YouTube account by creating a test playlist. It deletes that playlist in cleanup even when an intermediate test fails.
Other tests
Offline unit suite (no cookies, no network):
npm testRead-only live verification:
npm run verifyLive write verification using the stored cookie:
npm run test:liveMCP protocol smoke test:
npm run test:mcpTest the actual npm tarball/install shape:
npm run test:packageDocker Agent example
See examples/docker-agent.yaml. The MCP can be consumed directly from GitHub through npx; there is no MCP source code to copy into every agent project.
Upgrade policy
youtubei.js is exactly pinned. Do not upgrade it blindly. The compatibility boundary is isolated in src/youtube/compat.mjs, so upstream request-shape changes should require a small targeted change rather than touching the MCP API.
Test a candidate in a disposable copy:
npm run test:upgrade -- 18.2.0 --cookie-file "$HOME/.config/youtube-personal-playlist-noapi-mcp/cookies.txt"Use latest instead of a version to probe the newest release. Without a cookie path it runs only the offline compatibility checks; with a cookie path it also runs read-only and live write verification.
Before publishing any release:
npm run release:checkThen run npm run test:full with a real pasted cookie. Treat RESULT: READY from that full-cycle test as the live release gate.
Security note
YouTube browser cookies are account credentials. youtube_cookie_set exists specifically for users who deliberately want to paste those credentials through their MCP-capable agent. The server never echoes stored cookie values and sanitizes known cookie fields from returned errors. Use only with agents/frontends you trust.
Troubleshooting
COOKIE_FILE_NOT_FOUNDmeans the configured cookie path does not exist yet. Start the MCP without credentials and useyoutube_cookie_set, or provide the correct absoluteYOUTUBE_COOKIE_FILEpath.NOT_LOGGED_INmeans the exported YouTube cookies have expired or do not authenticate the intended account. Export fresh cookies and set them again.npm 12 reporting
EALLOWGITrequires the per-command--allow-git=allflag shown above. Do not disable npm security globally.
Available Tools
11 toolsyoutube_account_infoB
Get concise account identity for the authenticated YouTube session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses only that the call is a read ('Get'). It omits the implied authentication prerequisite (the sibling youtube_cookie_set strongly suggests a session/cookie must exist first), whether it fails when unauthenticated, and any rate-limit or caching 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?
A single front-loaded sentence with no waste. It is arguably under-specified rather than verbose, but as written it 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?
There is no output schema, so the description should describe what 'account identity' contains (channel name, handle, ID, email?), but it does not. For a trivial no-arg read this is a modest gap, not a fatal one.
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; there is nothing for the description to disambiguate. Schema coverage is 100% and the empty schema is consistent with the description.
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 ('Get') and resource ('account identity') and adds the scoping qualifier 'for the authenticated YouTube session', which distinguishes it from the cookie and playlist siblings. However, 'identity' is left undefined and the description never names what is retrieved, so an agent can't fully predict the payload.
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 the alternatives (e.g., youtube_cookie_status for auth state). The purpose implies a diagnostic use case, but nothing in the text tells the agent when to reach for this tool versus the cookie tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_add_videosC
Add video IDs to an editable playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| video_ids | Yes | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and falls well short. For a mutation it never states that authentication is required, whether the caller must own the playlist, whether duplicate videos are skipped or error, or what partial-failure behavior looks like when adding many IDs.
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?
A single clean, front-loaded sentence with no filler or repetition. It is economically sized, though the brevity reflects under-specification rather than deliberate pruning of non-essential detail.
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?
A two-parameter mutation with no annotations, no output schema, and 0% schema description coverage needs the description to explain preconditions, auth, and failure modes. None of that is present, leaving the agent guessing about how to call it safely.
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 0% for both parameters, so the description must compensate, but it only loosely echoes 'video IDs' and 'playlist'. It omits the maxItems=50/minItems=1 constraints on video_ids, the required string format/minLength for playlist_id, and how ordering of the array is interpreted.
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 (add) and resource (video IDs to a playlist), so an agent can distinguish it from siblings like youtube_remove_videos or youtube_get_playlist. It does not explicitly name an alternative tool or scope the operation further, 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?
The phrase 'editable playlist' hints at a precondition, but there is no explicit when-to-use guidance, no statement of what makes a playlist non-editable, and no routing to alternatives such as youtube_remove_videos or youtube_get_playlist for inspecting existing contents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_cookie_setB
Store pasted YouTube cookies at the configured cookie path and verify login + playlist access.
| Name | Required | Description | Default |
|---|---|---|---|
| cookies | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two real behaviors: it persists credentials to a configured cookie path (a disk write) and it performs a login/playlist verification pass. However, it omits overwrite semantics, what happens if verification fails, and any security/permission notes, so it is only partially transparent.
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?
A single well-formed sentence with no filler, and the primary action is front-loaded ahead of the verification behavior. It is terse but not padded, which is appropriate for a one-parameter tool.
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 one-parameter tool with no output schema, the description covers the action and the verification side effect, which is reasonably complete. It still leaves the agent unsure about the outcome reporting on success/failure and the interaction with the other youtube_cookie_* tool, so it falls short of fully sufficient.
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 single parameter has 0% schema description coverage, so the description must compensate. 'Pasted YouTube cookies' hints that the string is raw browser-copied cookie data rather than a file path or token, which adds some value, but it does not specify the expected format (Netscape, header string, JSON) or whether the value is truncated/validated.
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+resource ('Store pasted YouTube cookies') plus a secondary effect ('verify login + playlist access'), which is far more informative than the bare name. It is implicitly distinguishable from the read-only sibling youtube_cookie_status, but it never names that sibling or otherwise explicitly contrast with it.
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/when-not guidance. The phrase 'pasted cookies' weakly implies this is used after a user supplies raw cookie data, but the description never states prerequisites (e.g. must be run before other YouTube tools work) nor points to youtube_cookie_status as the way to check state instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_cookie_statusA
Show where cookies are stored and test whether the stored cookies currently authenticate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully conveys that this is a read/diagnostic operation that both reports a location and validates auth, but it does not disclose whether the authentication test performs network calls, mutates or refreshes cookie state, or requires any setup.
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?
A single compact sentence that front-loads the two things the tool does with no filler. Every clause 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?
There is no output schema and no annotations, so the description is the only source of information about results. It hints at output (storage path, pass/fail auth test) but does not describe the return format or how to interpret the authentication result, leaving a meaningful gap for a diagnostic 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?
The tool takes zero parameters, so the schema is trivially complete and the baseline for a no-parameter tool applies. There is nothing for the description to clarify beyond that.
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 two concrete behaviors: reporting cookie storage location and testing whether stored cookies authenticate. This is a specific verb+resource statement that an agent can act on, and it implicitly separates this diagnostic tool from the mutating sibling youtube_cookie_set.
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: it is a diagnostic to run when you want to know whether stored cookies still work. There is no explicit when-to-use, no stated prerequisite (e.g., run before youtube_cookie_set or prior to authenticated calls), and no mention of the sibling it complements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_create_playlistC
Create an editable playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| video_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It says the playlist is 'editable' but does not disclose whether authentication is required, whether the playlist is private/public/unlisted by default, what permissions are needed, or any rate limits. Minimal for a mutation tool.
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?
One short sentence, front-loaded verb+resource. Efficient and readable, though its brevity is partly because it omits useful 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 mutation tool with no annotations, no output schema, and 0% parameter description coverage, the description is too sparse. It omits authentication requirements, default visibility, and parameter semantics that an agent needs 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 coverage is 0% and the description does not mention any parameters. The agent cannot learn from the description that 'title' is required, its 150-char limit, or that 'video_ids' accepts up to 50 items. The description fails to compensate for the absent schema descriptions.
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 ('Create an editable playlist') and even hints at a distinguishing trait ('editable'), but it does not differentiate from sibling tools like youtube_add_videos or youtube_rename_playlist beyond the basic create action. Adequate but thin.
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 mention of prerequisites (e.g., whether an authenticated cookie must be set via youtube_cookie_set first), no alternatives. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_delete_playlistC
Delete an editable playlist. This is destructive.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the key trait that the operation is destructive, which is genuinely useful, but it omits whether deletion is permanent, what happens to the playlist's videos, and whether authorization is required.
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 destructive warning front-loaded after the action statement; nothing is wasted. It is arguably too terse, but there is no filler or redundancy.
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 destructive single-parameter tool with no annotations, no output schema, and 0% parameter coverage, the description should cover reversibility, permissions, and ID semantics. It only flags destructiveness, leaving the agent without the context needed to invoke it safely.
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 0% and the single playlist_id parameter is documented only as a non-empty string. The description adds no format, source, or acquisition guidance (e.g., where to get the ID, whether it accepts a URL or bare ID), so it fails to compensate for the coverage gap.
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 (delete) and resource (editable playlist), which distinguishes it from siblings like youtube_list_playlists, youtube_rename_playlist, and youtube_remove_videos. However, it does not explicitly name an alternative or clarify what an 'editable' playlist means relative to the other playlist tools.
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 versus alternatives (e.g., youtube_remove_videos for clearing contents), nor any prerequisites such as authentication or ownership requirements. The word 'editable' faintly implies a constraint but never explains it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_playlistB
Get one playlist page. page is 1-based; use next_page when has_more is true.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses pagination semantics (one page at a time, has_more flag, next_page field) but says nothing about read-only safety, auth/cookie requirements, rate limits, or what a page contains.
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 compact clauses with the core action front-loaded and zero filler. Slightly cryptic — 'one playlist page' could be clearer — but efficiently sized for the tool's simplicity.
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 small 3-param read tool with no output schema or annotations, the description covers pagination mechanics but leaves limit semantics and auth/cookie prerequisites unstated, leaving gaps an agent would have to guess at.
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 0% for 3 parameters. The description explains that page is 1-based and ties into has_more/next_page, partially compensating, but limit and playlist_id format/meaning are undocumented in both schema and description.
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 ('Get one playlist page'), which is clear and separable from siblings like youtube_list_playlists (listing playlists vs. fetching one). However, it never names or distinguishes itself from an alternative, and the object of the fetch (the playlist's videos?) is left implicit.
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 sentence 'use next_page when has_more is true' gives actionable iteration guidance, but there is no when-to-use/when-not guidance relative to siblings such as youtube_list_playlists or youtube_add_videos, and no prerequisites (e.g. whether auth/cookie setup is required).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_list_playlistsA
List account-visible playlists as compact normalized data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It hints at the return shape ('compact normalized data') and listing is inherently a non-mutating read, but it never states read-only behavior, authentication requirements, pagination, or result limits. Some value added, but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and scope lead. Nothing could be trimmed without losing meaning.
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-parameter, non-mutating list tool with no output schema, this covers the essentials: what is listed and the rough shape of the data. It could say more about authentication, pagination, ordering, or the normalization applied, which 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?
The tool takes zero parameters, so per the rubric the baseline is 4. There are no parameter semantics for the description to clarify or omit.
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 ('playlists') with a scope qualifier ('account-visible'), which cleanly separates it from the singular youtube_get_playlist sibling. It stops short of naming any sibling explicitly, so it lands at 4 rather than 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 'account-visible' scope implies when this tool applies (enumerate all playlists the account can see) versus fetching one by ID, but there is no explicit when-to-use statement or mention of the alternatives in the sibling set. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_remove_videosB
Remove video IDs from an editable playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| video_ids | Yes | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose mutating behavior. It states the action but omits whether removal requires ownership, is reversible, how partial failures are handled, or batch limits. For a destructive mutation, this is a significant 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?
A single front-loaded sentence with no filler. It is appropriately sized for its scope.
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 no annotations, no output schema, and 0% parameter descriptions, the definition is under-specified for a mutation tool. It covers the basic action but lacks prerequisites, side effects, and return/error behavior.
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 0%, so the description should explain parameter meaning. It mentions 'video IDs' and 'playlist' in natural language, but adds no format, constraints (max 50 items, string IDs), or required-ness beyond what the schema already implies. It fails to compensate for the coverage gap.
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 'Remove' and resource 'video IDs' with scope 'from an editable playlist', making the action clear. It implies differentiation from youtube_add_videos but does not explicitly name or contrast with siblings like youtube_delete_playlist.
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 'editable playlist' implies a precondition, but there is no explicit when-to-use, when-not-to-use, or alternative tool guidance. An agent can infer this is for removing items rather than deleting the playlist, but no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_rename_playlistC
Rename an editable playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation and hints at an ownership/permission requirement via 'editable', but says nothing about OAuth needs, quota cost, whether the old name is recoverable, or what happens to a nonexistent/unowned playlist_id.
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?
A single short sentence with no filler, which is structurally clean. However, it is terse to the point of under-specification rather than being a model of concise completeness.
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 two-parameter mutation with no annotations and no output schema, the description omits which playlists qualify as editable, permission requirements, and error/return behavior. What an agent needs to invoke it confidently is largely 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 0% and the description mentions no parameters at all, so neither playlist_id's format nor name's constraints (schema-only maxLength 150, minLength 1) are clarified in prose. Two required parameters remain semantically bare.
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 (Rename) and resource (playlist), so the action is unambiguous. It does not differentiate from siblings such as youtube_set_playlist_description or youtube_create_playlist beyond the verb itself, but the core purpose is clear.
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 qualifier 'editable' implicitly signals a precondition (you must have edit rights on the playlist), which is the only usage guidance offered. There is no explicit statement of when to use this versus alternatives like set_playlist_description, nor any exclusions or auth prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_set_playlist_descriptionC
Set an editable playlist description.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It discloses only that this is a mutation tool and that the playlist must be editable, but says nothing about permissions, whether the description is replaced entirely, API limits, or error 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?
The description is a single short sentence with no filler and is front-loaded with the verb and resource. It is concise, though arguably too terse for a mutation tool whose behavior is otherwise undocumented.
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 zero annotations, no output schema, and 0% schema description coverage, the description is incomplete for a mutation tool. It does not cover permissions, return behavior, validation constraints, or how it relates to sibling playlist-editing tools.
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 0%, and the description does not explain the required 'playlist_id' parameter or the 'description' parameter's 5000-character limit. It only loosely identifies that a playlist description is being set, leaving parameter semantics largely undocumented.
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 ('Set') and resource ('playlist description'), and adds the qualifier 'editable'. It is clear what the tool does, but it does not explicitly distinguish itself from sibling playlist-mutation tools such as youtube_rename_playlist.
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 tool versus alternatives like youtube_rename_playlist or when not to use it. It only implies that the operation applies to an editable playlist, with no prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.0.0- First observed
youtube_account_info - First observed
youtube_add_videos - First observed
youtube_cookie_set - First observed
youtube_cookie_status - First observed
youtube_create_playlist - First observed
youtube_delete_playlist - First observed
youtube_get_playlist - First observed
youtube_list_playlists - First observed
youtube_remove_videos - First observed
youtube_rename_playlist - First observed
youtube_set_playlist_description
TDQS
Scored across 11 tools
Each tool targets a distinct operation: cookie management (set/status), account info, playlist listing/retrieval, and playlist mutations (create/delete/rename/description/video add/remove). There is no overlap that would cause an agent to select the wrong tool; even similar-sounding tools like rename_playlist and set_playlist_description are clearly differentiated by their descriptions.
Most tools follow a clear verb_noun pattern with a consistent 'youtube_' prefix (e.g., youtube_list_playlists, youtube_get_playlist, youtube_create_playlist). However, three tools deviate: youtube_cookie_set and youtube_cookie_status use a noun_verb/noun_noun structure, and youtube_account_info is noun_noun. These are minor deviations that remain readable and predictable.
With 11 tools, the set is well-scoped for managing YouTube playlists without an API. It covers authentication, account info, playlist CRUD, and video membership without excessive redundancy. Each tool earns its place and the count is comfortably within the 3–15 ideal range.
The surface covers the core playlist lifecycle: authentication, listing, reading, creating, deleting, renaming, setting descriptions, and adding/removing videos. Minor gaps exist, such as tools for reordering or moving videos within a playlist, but these are non-essential for most workflows and can be worked around.
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
Hosted MCP for YouTube Studio: uploads, metadata, playlists, comments, analytics, captions.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables YouTube playlist curation including inventory, deduplication, merging, and deletion via MCP tools.12MIT
- FlicenseNot gradedqualityBmaintenanceEnables analyzing and managing YouTube playlists, including Watch Later, using InnerTube authentication via browser cookies.-
- AlicenseAqualityCmaintenanceAn MCP server for organizing YouTube playlists via the YouTube Data API v3, enabling playlist and playlist item creation, listing, updating, and deletion through natural language.9MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI coding tools and MCP hosts to search YouTube Music and add or remove tracks on your own playlists through natural-language prompts, authenticated with your Google login. It runs locally over stdio, so credentials and OAuth tokens stay on your machine.-