Skip to main content
Glama
Thib-ai

yt-playlist-organizer-mcp

by Thib-ai

yt-playlist-organizer-mcp

An MCP server for organizing YouTube playlists via the YouTube Data API v3.

It does exactly one thing and nothing more: create, list, update, and delete playlists and their playlist items. It does not touch videos, channels, captions, comments, subscriptions, or any other YouTube Data API resource.

Built with the official @modelcontextprotocol/sdk and the YouTube Data API v3 REST endpoints (no heavy googleapis dependency).

Tools

Everything this server does. There are no other tools.

Playlists (/playlists)

Tool

HTTP

Quota

Description

playlists_list

GET

1

List playlists by id, channelId, or mine=true.

playlists_insert

POST

50

Create a playlist (requires title).

playlists_update

PUT

50

Modify a playlist (requires id + title).

playlists_delete

DELETE

50

Delete a playlist (requires id).

PlaylistItems (/playlistItems)

Tool

HTTP

Quota

Description

playlistItems_list

GET

1

List items by playlistId or id.

playlistItems_insert

POST

50

Add a videoId to a playlistId.

playlistItems_update

PUT

50

Modify a playlist item (e.g. its position).

playlistItems_delete

DELETE

50

Remove a playlist item (requires id).

Plus auth_status to check which credentials are configured.

Related MCP server: youtube-mcp

Configuration

This server only ever calls the /playlists and /playlistItems endpoints. The rest of the YouTube Data API is out of scope.

The server reads two environment variables:

Variable

Purpose

YOUTUBE_API_KEY

Google API key. Enables public reads (playlists_list, playlistItems_list).

YOUTUBE_ACCESS_TOKEN

OAuth2 access token. Required for write tools and mine=true.

See .env.example.

  • Reads (..._list) work with just an API key (or an access token).

  • Writes (insert/update/delete) and mine=true require an OAuth2 access token with the scopes youtube, youtube.force-ssl, or youtubepartner.

Getting OAuth2 credentials

  1. Create a project in Google Cloud Console.

  2. Enable the YouTube Data API v3.

  3. Create an OAuth2 client ID (Desktop app) and download the JSON.

  4. Exchange credentials for an access token (e.g. via google-auth-oauthlib on Python, or a local OAuth flow service). Set YOUTUBE_ACCESS_TOKEN=<token>.

  5. (Optional) Create an API key for simpler read-only use.

Nix

This is NixOS-friendly. Both a flake and a shell.nix are provided.

# Enter the dev shell (node + typescript toolchain)
nix develop

# or, non-flake:
nix-shell

Build

npm install        # install node deps (zod + MCP SDK)
npm run build      # emits dist/
npm run typecheck  # tsc --noEmit

Run locally

# Reads only (API key):
YOUTUBE_API_KEY=... node dist/index.js

# Reads + writes/mine (OAuth access token):
YOUTUBE_ACCESS_TOKEN=... node dist/index.js

Wiring into opencode

Add the following to ~/.config/opencode/opencode.jsonc under mcp:

"mcp": {
  "yt-playlist-organizer-mcp": {
    "type": "local",
    "command": ["node", "<path-to-repo>/dist/index.js"],
    "enabled": true,
    "environment": {
      "YOUTUBE_API_KEY": "{file:~/.secrets/yt-api-key}",
      "YOUTUBE_ACCESS_TOKEN": "{file:~/.secrets/yt-access-token}"
    }
  }
}

Replace <path-to-repo> with the absolute path where you cloned it, or install it via npm to run it by name:

npm install -g .
# then use:  "command": ["yt-playlist-organizer-mcp"]

To run it through the Nix shell instead, use the same key but change command:

"command": ["nix", "develop", "<path-to-repo>", "--command", "node", "dist/index.js"],

Notes

  • Quota costs are per the official API docs and documented per tool.

  • part values are validated against the valid sets for each resource.

  • playlists_list / playlistItems_list require exactly one filter parameter; otherwise input validation rejects the call.

  • Update tools (playlists_update, playlistItems_update) read the existing resource first and preserve any omitted fields (e.g. description, privacyStatus, position, contentDetails), rather than clearing them. Each update therefore costs an extra read against your quota.

  • startAt/endAt are provided in seconds and converted to ISO 8601 durations (PT1M30S) before being sent to the API.

  • This server cannot handle the default "Watch Later" playlist (WL). It is a constant (not a real playlist ID) in the public YouTube API, and there is no supported way to modify it via the API. See Stack Overflow for details.

Development

npm install
npm test         # vitest unit tests
npm run typecheck
npm run build

License

MIT

Available Tools

9 tools
auth_statusA

Check whether API key and/or OAuth access token are configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It indicates a read-only check of configuration state, which is transparent about the absence of side effects. However, it does not disclose what the tool returns (e.g., a boolean, status object) or any potential error conditions (e.g., if no auth is configured).

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action verb. Every word contributes meaning, and there is no redundant information.

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

Completeness4/5

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

For a tool with no parameters, no output schema, and a simple purpose, the description adequately explains what the tool does. It lacks details about return format or edge cases, but given the low complexity, this is sufficient for an agent to understand the tool's core function.

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 has zero parameters, so the schema provides no information to augment. The baseline for zero parameters is 4, and the description does not need to explain any parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('API key and/or OAuth access token'). It naturally distinguishes from sibling playlist-related tools, which are all CRUD operations, by focusing on authentication status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage (when you need to verify auth configuration) but provides no explicit guidance on when to use it vs alternatives, nor any exclusions. Since no sibling tool serves a similar purpose, the implied context is somewhat clear but could be more direct.

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

playlistItems_deleteA

Remove a playlist item from a playlist. Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe playlist item ID to delete. Required.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about quota cost (50 units) and authentication (requires OAuth access token). However, it does not mention the destructive permanence of the deletion, potential side effects, or error conditions, which would be valuable for a delete operation.

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

Conciseness5/5

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

The description is concise, front-loaded with the primary purpose, and includes only essential operational details (quota and auth). No wasted words or redundant information—perfectly sized for a simple deletion tool.

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?

The tool is relatively simple with one required parameter and no output schema, so the description is adequate but not thorough. It lacks information about return values, idempotency, or ownership requirements. Given no annotations to supplement safety or side-effect context, the description could go further (e.g., 'This permanently removes the item') to fully inform the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% with each parameter having a description, so the baseline is 3. The tool description adds no extra parameter semantics beyond what the schema already provides; it doesn't explain the relationship between params or usage nuances.

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

Purpose5/5

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

The description clearly states the action ('Remove a playlist item') and the resource ('from a playlist'), which is specific and distinguishes it from sibling tools like playlists_delete (which deletes an entire playlist). The verb and object are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage (when you need to remove a playlist item) but provides no explicit when-to-use or when-not-to-use context relative to alternatives. It mentions the OAuth requirement, which is a prerequisite, but does not offer guidance on when to choose this over other playlist item operations.

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

playlistItems_insertA

Add a video (videoId) to a playlist (playlistId). startAt/endAt are in seconds and converted to ISO 8601 durations. Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoMaximum 280 characters. Note associated with the playlist item.
partNoResource properties to set and return. Options: contentDetails, id, snippet, status.snippet
endAtNoEnd time in seconds of the video portion to play (contentDetails).
startAtNoStart time in seconds of the video portion to play (contentDetails).
videoIdYesThe YouTube video ID to add to the playlist. Required.
positionNoThe 0-based position of the item. Only if the playlist uses manual ordering.
playlistIdYesThe ID of the playlist to add the item to. Required.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well by disclosing quota cost (50 units), OAuth requirement, and the conversion of startAt/endAt to ISO 8601 durations. It clearly implies a mutating operation (

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core action, and then provides key behavioral details (quota, auth, time conversion). No fluff or repetition.

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

Completeness4/5

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

Despite having 9 parameters and no output schema, the description covers essential operational context (auth, quota) and explicitly addresses the less-obvious startAt/endAt semantics. While it could mention error conditions or the response format, the schema descriptions cover the parameters well, and the description feels adequate for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that startAt/endAt are in seconds and converted to ISO 8601 durations, which is not in the schema descriptions. It also reinforces the role of videoId and playlistId by naming them in the action.

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

Purpose5/5

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

The description clearly states 'Add a video (videoId) to a playlist (playlistId)', which uses a specific verb and resource, and distinguishes it from sibling tools like playlistItems_update and playlistItems_delete by focusing on insertion. The mention of startAt/endAt also differentiates it as an add operation with timing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage for adding an item to a playlist but provides no explicit when-to-use versus alternatives or exclusions. It does not reference sibling tools or state conditions like 'do not use if the item already exists', leaving the context implicit.

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

playlistItems_listA

Get items in a YouTube playlist. Requires exactly one filter: playlistId or id. If both are omitted the call is rejected. Quota cost: 1 unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoComma-separated list of playlist item IDs to retrieve.
partNoComma-separated playlistItem resource properties to include. Options: contentDetails, id, snippet, status.snippet,contentDetails,status
videoIdNoReturn only playlist items that contain the specified video.
pageTokenNoToken identifying a specific page in the result set.
maxResultsNoMaximum items to return, 0-50. Default 5.
playlistIdNoThe ID of the playlist whose items to retrieve.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A4.4/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the burden of revealing behavior. It discloses that the call will be rejected if both filters are omitted, and mentions the quota cost. It does not elaborate on pagination or other behaviors, but the schema already hints at pagination via pageToken and maxResults parameters.

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

Conciseness5/5

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

The description is concise, consisting of three short sentences. It is well-structured: first states the action, then the key constraint, and finally the quota. No unnecessary words or redundancy.

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

Completeness4/5

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

Given the schema provides parameter descriptions and the description adds the filter requirement and quota, the tool is fairly well-covered. It lacks explicit mention of output formatting, but since no output schema is provided, it is acceptable. Overall, it is sufficient for a developer to understand how to call the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The description adds meaning beyond the schema by specifying the mutual exclusivity requirement for playlistId and id. This is critical for correct usage and is not evident from individual parameter descriptions. It also clarifies that at least one of these two must be provided, which is a valuable addition.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get items in a YouTube playlist.' It specifies the resource (playlist items) and the action (getting/listing), which distinguishes it from sibling tools like insert, update, or delete. The mention of the required filter (playlistId or id) further clarifies its specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides important usage constraints: it requires exactly one of playlistId or id, and warns that omitting both will cause rejection. It also notes the quota cost, which helps users understand the resource implication. However, it does not explicitly contrast with sibling tools for when to use this vs. others, though the purpose makes it obvious.

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

playlistItems_updateA

Modify a playlist item (e.g. its position). Omitted snippet/contentDetails fields are preserved. Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe playlist item ID to update. Required.
noteNoMaximum 280 characters. Note associated with the playlist item.
partNoResource properties to override and return. Must include 'snippet'.snippet,contentDetails
endAtNoEnd time in seconds of the video portion to play (contentDetails).
startAtNoStart time in seconds of the video portion to play (contentDetails).
videoIdYesThe video ID of the item. Required.
positionNoThe new 0-based position of the item. Only if the playlist uses manual ordering.
playlistIdYesThe ID of the playlist containing the item. Required.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it discloses partial-update behavior ('Omitted snippet/contentDetails fields are preserved'), quota cost (50 units), and OAuth requirement. It does not mention errors or return value, but the core behavioral traits are transparent.

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

Conciseness5/5

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

Two sentences, front-loaded with the verb and resource, and every sentence adds distinct value: operation, preservation semantics, quota, and auth. No redundancy or filler.

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

Completeness4/5

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

Despite no output schema and no annotations, the description plus a fully self-documenting schema covers the key invocation needs: what it modifies, partial-update semantics, auth, and quota. It does not describe exact response/error behavior, which is less critical for this update tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds only a position example and field-preservation semantics, not per-parameter detail, but the schema already documents all 10 parameters well.

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

Purpose4/5

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

The description clearly states the operation as "Modify a playlist item" and gives a concrete example (position), which distinguishes it from sibling playListItems_insert/delete/list tools. It does not over-specify but is not tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description implies usage when an existing playlist item needs modification, especially repositioning, but it does not explicitly name alternatives or state when to prefer playlistItems_insert/delete or playlists_update. It provides OAuth and quota context but no exclusionary guidance.

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

playlists_deleteA

Delete a YouTube playlist. Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesYouTube playlist ID to delete. Required.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It reveals the destructive action, quota cost, and authentication requirement, but it does not mention permanence, cascading effects on playlist items, or possible error responses.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the primary purpose. Every sentence contributes meaningful information: action, quota cost, and authentication requirement, with no wasted words.

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

Completeness4/5

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

For a simple delete operation with only two parameters and a fully documented schema, the description covers the essential invocation facts: action, required auth, and quota cost. It could add permanence or error behavior, but the current level is sufficient for a basic destructive API.

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?

The input schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds no parameter-level detail beyond what the schema provides; it only restates general context.

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

Purpose5/5

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

The description opens with the direct action 'Delete a YouTube playlist,' which clearly specifies the verb and resource. It distinguishes this tool from siblings like playlistItems_delete, which targets playlist items rather than playlists themselves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description provides useful context such as quota cost and OAuth requirement, but it does not explicitly state when to use this tool over alternatives or give exclusion criteria. Usage is implied by the tool name and purpose rather than explicitly guided.

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

playlists_insertA

Create a YouTube playlist (requires title). Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
partNoResource properties to set and return. Options: contentDetails, id, localizations, player, snippet, status.snippet,status
titleYesPlaylist title. Required.
descriptionNoPlaylist description.
privacyStatusNoPlaylist privacy status. Allowed: private, public, unlisted.private
defaultLanguageNoDefault language for the playlist's snippet (e.g. 'en').
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses quota cost (50 units) and OAuth requirement, which are important behavioral traits. It does not mention side effects or error behavior, but the essentials are covered.

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

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words. It packs all essential information efficiently without being verbose.

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

Completeness4/5

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

Given the schema has parameter descriptions and the tool description mentions quota and auth, the tool is reasonably complete. There is no output schema to specify return values, so not mentioning them is acceptable. It covers the core context needed for usage.

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?

The parameter schema already provides descriptions for all 7 parameters, so coverage is high. The tool description adds 'requires title' which is redundant with the required flag, and provides no additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states 'Create a YouTube playlist' which is a specific action with a specific resource. It distinguishes from sibling tools like update, delete, and list by using 'create' as the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description implies use this tool when creating a new playlist, and mentions requirements (title, OAuth). It does not explicitly name alternative tools, but the verb 'create' is unambiguous enough for typical use cases.

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

playlists_listA

Get YouTube playlists. Requires exactly one filter: id, channelId, or mine=true (mine=true requires an OAuth access token, not an API key). Quota cost: 1 unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
hlNoLanguage code for localized resource metadata (e.g. 'en').
idNoComma-separated list of playlist IDs to retrieve.
mineNoReturn only playlists owned by the authenticated user. Requires OAuth access token.
partNoComma-separated playlist resource properties to include. Options: contentDetails, id, localizations, player, snippet, status.snippet,contentDetails,status
channelIdNoReturn only the specified channel's playlists.
pageTokenNoToken identifying a specific page in the result set.
maxResultsNoMaximum items to return, 0-50. Default 5.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the quota cost (1 unit) and the OAuth token requirement for mine=true, which are valuable behavioral traits. It implies read-only nature via 'Get'. Additional details like error behavior or pagination are not covered, but the key operational constraints are present, placing it above average.

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

Conciseness5/5

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

Two concise sentences with no filler. The main action is front-loaded, and the critical constraint is stated immediately. Every word earns its place, achieving high efficiency.

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 list operation with 9 parameters and no output schema, the description covers the essential usage context: the filter requirement, authentication nuance, and quota cost. It does not explain return format or pagination details, but given the schema already lists pageToken and maxResults, the description is reasonably complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds critical semantics by enforcing that exactly one of id, channelId, or mine must be provided, which is not obvious from the schema alone. It also clarifies that mine=true requires OAuth, complementing the schema's mention. This adds meaningful guidance beyond the structured data.

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

Purpose5/5

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

The description clearly states 'Get YouTube playlists' with a specific verb and resource. It distinguishes from sibling 'playlistItems_list' by focusing on playlists, not playlist items. The filter requirement further clarifies scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It explicitly states that exactly one filter (id, channelId, or mine=true) is required, which is strong usage guidance. It also clarifies authentication requirements for mine=true. However, it does not mention when to use this vs. other playlist tools or list alternatives, so it falls short of a 5.

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

playlists_updateA

Modify a YouTube playlist (id and title required; overrides snippet). If description or privacyStatus are omitted their current values are preserved. Quota cost: 50 units. Requires OAuth access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesYouTube playlist ID to update. Required.
partNoResource properties to override and return. Must include 'snippet'.snippet,status
titleYesNew playlist title. Required (this method overrides the snippet).
descriptionNoNew description. If omitted the existing description is preserved (the current value is fetched and re-sent).
privacyStatusNoNew playlist privacy status. If omitted the existing value is preserved. Allowed: private, public, unlisted.
onBehalfOfContentOwnerNoContent owner to act on behalf of (YouTube partners only).
onBehalfOfContentOwnerChannelNoChannel ID to act on behalf of (YouTube partners only).

TDQS

A3.6/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 full burden. It communicates quota cost, OAuth, and state-preservation, but does not describe error conditions, idempotency, or side effects of a partial failure.

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 dense, informative paragraph with no chaff. Could be split into shorter bullets for a 5, but the values justify the length.

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?

Covers all mutation inputs, quota, and auth. The lack of an output schema is acceptable for the standard update response of an MCP playlist tool, but rate/error behavior is only partially understood.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100% (7/7 documented). Provides essential descriptions for id, title, part, and preserved fields; describes enum and owner-channel semantics. Does not explain YT API nuances beyond the schema.

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

Purpose4/5

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

Clearly states the action (Modify a YouTube playlist), the required id/title, and the override semantics. Sibling playlist_tools operate on items or playlist-level, and this description is specific enough to set expectations.

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?

Includes prerequisites (OAuth, quota) and preservation semantics, but does not explicitly list when to use this operation instead of playlistItems_update or playlists_insert.

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. 9 tool updatesv1.0.0
    • First observedauth_status
    • First observedplaylistItems_delete
    • First observedplaylistItems_insert
    • First observedplaylistItems_list
    • First observedplaylistItems_update
    • First observedplaylists_delete
    • First observedplaylists_insert
    • First observedplaylists_list
    • First observedplaylists_update

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource (playlists vs playlistItems) and action, with clear separation between auth status checks and CRUD operations. No two tools overlap in purpose.

Naming Consistency4/5

The verb_noun pattern (e.g., playlists_list, playlistItems_delete) is consistent, but the use of camelCase in 'playlistItems' vs lowercase 'playlists' and the snake_case 'auth_status' cause minor inconsistency.

Tool Count5/5

Nine tools is well within the ideal range for a focused server, covering playlist and playlist item CRUD plus authentication checks without bloat.

Completeness5/5

Full CRUD for both playlists and playlist items is provided, along with auth status, covering the core workflows of a playlist organizer. Minor missing features like reordering are handled via update.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers