Skip to main content
Glama
bigbatmanorg

YouTube Personal Playlist noAPI MCP

by bigbatmanorg

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#main

This 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#main

MCP 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 storage is intentionally high-level and predictable.

Priority:

  1. --cookie-file /path/to/cookies.txt

  2. YOUTUBE_COOKIE_FILE=/path/to/cookies.txt

  3. $XDG_CONFIG_HOME/youtube-personal-playlist-noapi-mcp/cookies.txt

  4. ~/.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#main

or:

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_info

  • youtube_list_playlists

  • youtube_get_playlist

  • youtube_create_playlist

  • youtube_rename_playlist

  • youtube_set_playlist_description

  • youtube_add_videos

  • youtube_remove_videos

  • youtube_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: READY

The 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 test

Read-only live verification:

npm run verify

Live write verification using the stored cookie:

npm run test:live

MCP protocol smoke test:

npm run test:mcp

Test the actual npm tarball/install shape:

npm run test:package

Docker 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:check

Then 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_FOUND means the configured cookie path does not exist yet. Start the MCP without credentials and use youtube_cookie_set, or provide the correct absolute YOUTUBE_COOKIE_FILE path.

  • NOT_LOGGED_IN means the exported YouTube cookies have expired or do not authenticate the intended account. Export fresh cookies and set them again.

  • npm 12 reporting EALLOWGIT requires the per-command --allow-git=all flag shown above. Do not disable npm security globally.

Available Tools

11 tools
youtube_account_infoB

Get concise account identity for the authenticated YouTube session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; 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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no mention of 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idsYes
playlist_idYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_create_playlistC

Create an editable playlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
video_idsNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No when-to-use guidance, no 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no statement of when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
playlist_idYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idsYes
playlist_idYes

TDQS

B3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
playlist_idYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYes
playlist_idYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no guidance on when to use this 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.

  1. 11 tool updatesv1.0.0
    • First observedyoutube_account_info
    • First observedyoutube_add_videos
    • First observedyoutube_cookie_set
    • First observedyoutube_cookie_status
    • First observedyoutube_create_playlist
    • First observedyoutube_delete_playlist
    • First observedyoutube_get_playlist
    • First observedyoutube_list_playlists
    • First observedyoutube_remove_videos
    • First observedyoutube_rename_playlist
    • First observedyoutube_set_playlist_description

TDQS

B3.3/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables YouTube playlist curation including inventory, deduplication, merging, and deletion via MCP tools.
    12
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An 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.
    9
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -