Skip to main content
Glama
Thib-ai

yt-playlist-organizer-mcp

by Thib-ai

yt-playlist-organizer-mcp

Un servidor MCP para organizar listas de reproducción de YouTube mediante la YouTube Data API v3.

Hace exactamente una cosa y nada más: crear, listar, actualizar y eliminar listas de reproducción y sus elementos. No toca videos, canales, subtítulos, comentarios, suscripciones ni ningún otro recurso de la YouTube Data API.

Construido con el @modelcontextprotocol/sdk oficial y los endpoints REST de la YouTube Data API v3 (sin la pesada dependencia de googleapis).

Herramientas

Todo lo que hace este servidor. No hay otras herramientas.

Listas de reproducción (/playlists)

Herramienta

HTTP

Cuota

Descripción

playlists_list

GET

1

Lista listas de reproducción por id, channelId o mine=true.

playlists_insert

POST

50

Crea una lista de reproducción (requiere title).

playlists_update

PUT

50

Modifica una lista de reproducción (requiere id + title).

playlists_delete

DELETE

50

Elimina una lista de reproducción (requiere id).

Elementos de lista de reproducción (/playlistItems)

Herramienta

HTTP

Cuota

Descripción

playlistItems_list

GET

1

Lista elementos por playlistId o id.

playlistItems_insert

POST

50

Añade un videoId a un playlistId.

playlistItems_update

PUT

50

Modifica un elemento de lista de reproducción (p. ej. su position).

playlistItems_delete

DELETE

50

Elimina un elemento de lista de reproducción (requiere id).

Además, auth_status para comprobar qué credenciales están configuradas.

Related MCP server: youtube-mcp

Configuración

Este servidor solo llama a los endpoints /playlists y /playlistItems. El resto de la YouTube Data API queda fuera del alcance.

El servidor lee dos variables de entorno:

Variable

Propósito

YOUTUBE_API_KEY

Clave de API de Google. Permite lecturas públicas (playlists_list, playlistItems_list).

YOUTUBE_ACCESS_TOKEN

Token de acceso OAuth2. Requerido para herramientas de escritura y mine=true.

Consulta .env.example.

  • Lecturas (..._list) funcionan solo con una clave de API (o un token de acceso).

  • Escrituras (insert/update/delete) y mine=true requieren un token de acceso OAuth2 con los ámbitos youtube, youtube.force-ssl o youtubepartner.

Cómo obtener credenciales OAuth2

  1. Crea un proyecto en Google Cloud Console.

  2. Habilita la YouTube Data API v3.

  3. Crea un ID de cliente OAuth2 (aplicación de escritorio) y descarga el JSON.

  4. Intercambia las credenciales por un token de acceso (p. ej. mediante google-auth-oauthlib en Python, o un servicio local de flujo OAuth). Establece YOUTUBE_ACCESS_TOKEN=<token>.

  5. (Opcional) Crea una clave de API para un uso más sencillo de solo lectura.

Nix

Esto es compatible con NixOS. Se proporcionan tanto un flake como un shell.nix.

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

# or, non-flake:
nix-shell

Compilar

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

Ejecutar localmente

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

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

Integración con opencode

Añade lo siguiente a ~/.config/opencode/opencode.jsonc bajo 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}"
    }
  }
}

Reemplaza <path-to-repo> con la ruta absoluta donde lo clonaste, o instálalo mediante npm para ejecutarlo por nombre:

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

Para ejecutarlo a través del shell de Nix en su lugar, usa la misma clave pero cambia command:

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

Notas

  • Los costes de cuota se basan en la documentación oficial de la API y se documentan por herramienta.

  • Los valores de part se validan contra los conjuntos válidos para cada recurso.

  • playlists_list / playlistItems_list requieren exactamente un parámetro de filtro; de lo contrario, la validación de entrada rechaza la llamada.

  • Las herramientas de actualización (playlists_update, playlistItems_update) leen primero el recurso existente y conservan cualquier campo omitido (p. ej. description, privacyStatus, position, contentDetails), en lugar de borrarlos. Por lo tanto, cada actualización cuesta una lectura adicional de tu cuota.

  • startAt/endAt se proporcionan en segundos y se convierten a duraciones ISO 8601 (PT1M30S) antes de enviarse a la API.

Desarrollo

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

Licencia

MIT

Install Server
A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • YouTube MCP — wraps the YouTube Data API v3 (BYO API key)

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • A MCP server built for developers enabling Git based project management with project and personal…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Thib-ai/yt-playlist-organizer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server