Skip to main content
Glama
Thib-ai

yt-playlist-organizer-mcp

by Thib-ai

yt-playlist-organizer-mcp

YouTube Data API v3를 통해 YouTube 재생목록을 구성하기 위한 MCP 서버입니다.

이 서버는 오직 한 가지만 수행합니다: 재생목록과 재생목록 항목을 생성, 조회, 수정, 삭제합니다. 비디오, 채널, 자막, 댓글, 구독 또는 다른 YouTube Data API 리소스에는 접근하지 않습니다.

공식 @modelcontextprotocol/sdk와 YouTube Data API v3 REST 엔드포인트로 구축되었습니다 (무거운 googleapis 의존성 없음).

도구

이 서버가 수행하는 모든 것입니다. 다른 도구는 없습니다.

재생목록 (/playlists)

도구

HTTP

할당량

설명

playlists_list

GET

1

id, channelId 또는 mine=true로 재생목록을 조회합니다.

playlists_insert

POST

50

재생목록을 생성합니다 (title 필요).

playlists_update

PUT

50

재생목록을 수정합니다 (id + title 필요).

playlists_delete

DELETE

50

재생목록을 삭제합니다 (id 필요).

재생목록 항목 (/playlistItems)

도구

HTTP

할당량

설명

playlistItems_list

GET

1

playlistId 또는 id로 항목을 조회합니다.

playlistItems_insert

POST

50

playlistId에 videoId를 추가합니다.

playlistItems_update

PUT

50

재생목록 항목을 수정합니다 (예: position).

playlistItems_delete

DELETE

50

재생목록 항목을 제거합니다 (id 필요).

어떤 자격 증명이 구성되어 있는지 확인하는 auth_status도 있습니다.

Related MCP server: youtube-mcp

구성

이 서버는 /playlists 및 /playlistItems 엔드포인트만 호출합니다. 나머지 YouTube Data API는 범위에 포함되지 않습니다.

서버는 두 개의 환경 변수를 읽습니다:

변수

목적

YOUTUBE_API_KEY

Google API 키. 공개 읽기(playlists_list, playlistItems_list)를 활성화합니다.

YOUTUBE_ACCESS_TOKEN

OAuth2 액세스 토큰. 쓰기 도구 및 mine=true에 필요합니다.

.env.example을 참조하세요.

  • 읽기(..._list)는 API 키(또는 액세스 토큰)만으로 작동합니다.

  • 쓰기(insert/update/delete) 및 mine=true는 youtube, youtube.force-ssl 또는 youtubepartner 범위가 있는 OAuth2 액세스 토큰이 필요합니다.

OAuth2 자격 증명 가져오기

  1. Google Cloud Console에서 프로젝트를 생성합니다.

  2. YouTube Data API v3를 사용 설정합니다.

  3. OAuth2 클라이언트 ID(데스크톱 앱)를 생성하고 JSON을 다운로드합니다.

  4. 자격 증명을 액세스 토큰으로 교환합니다 (예: Python의 google-auth-oauthlib 또는 로컬 OAuth 흐름 서비스 사용). YOUTUBE_ACCESS_TOKEN=<token>을 설정합니다.

  5. (선택 사항) 더 간단한 읽기 전용 사용을 위해 API 키를 생성합니다.

Nix

NixOS 친화적입니다. flake와 shell.nix가 모두 제공됩니다.

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

# or, non-flake:
nix-shell

빌드

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

로컬에서 실행

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

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

opencode에 연결

mcp 아래의 ~/.config/opencode/opencode.jsonc에 다음을 추가합니다:

"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}"
    }
  }
}

<path-to-repo>를 복제한 절대 경로로 바꾸거나, npm으로 설치하여 이름으로 실행합니다:

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

대신 Nix 셸을 통해 실행하려면 동일한 키를 사용하되 command를 변경합니다:

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

참고 사항

  • 할당량 비용은 공식 API 문서 기준이며 도구별로 명시되어 있습니다.

  • part 값은 각 리소스의 유효한 집합에 대해 검증됩니다.

  • playlists_list / playlistItems_list는 정확히 하나의 필터 매개변수가 필요합니다. 그렇지 않으면 입력 검증이 호출을 거부합니다.

  • 업데이트 도구(playlists_update, playlistItems_update)는 먼저 기존 리소스를 읽고 생략된 필드(예: description, privacyStatus, position, contentDetails)를 지우는 대신 유지합니다. 따라서 각 업데이트는 할당량에서 추가 읽기 비용이 발생합니다.

  • startAt/endAt은 초 단위로 제공되며 API로 전송되기 전에 ISO 8601 기간(PT1M30S)으로 변환됩니다.

개발

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

라이선스

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables interaction with the YouTube Data API, allowing users to search videos, get video and channel details, analyze trends, and fetch video transcripts.
    -
  • F
    license
    B
    quality
    D
    maintenance
    MCP server for YouTube Data API v3 enabling video search, channel lookup, trending content, comments, and playlist management.
    11
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for managing YouTube Music playlists via Claude. Add and remove songs, create playlists, and ask Claude to suggest music — all through conversation.
    -
  • F
    license
    A
    quality
    A
    maintenance
    MCP server that lets you search and list YouTube channel videos, fetch video details, and extract transcripts with timestamps using natural language.
    5
    -