YouTube MCP

Gestiona videos de YouTube, crea Shorts y obtén análisis usando la API de YouTube.

Documentación

Servidor YouTube MCP

npm version npm downloads npm total downloads

Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) para YouTube, que permite a los modelos de lenguaje de IA interactuar con contenido de YouTube a través de una interfaz estandarizada.

Sitio web: zubeidhendricks.github.io/youtube-mcp-server

Herramientas Disponibles

El servidor actualmente expone 10 herramientas MCP.

HerramientaDescripciónParámetros RequeridosParámetros Opcionales
videos_getVideoObtener información detallada sobre un video de YouTubevideoIdparts
videos_searchVideosBuscar videos en YouTubequerymaxResults, order, publishedAfter, publishedBefore, channelId, uniqueChannels, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy
transcripts_getTranscriptObtener la transcripción de un video de YouTubevideoIdlanguage
channels_getChannelObtener información sobre un canal de YouTubechannelIdNinguno
channels_getChannelsObtener información sobre múltiples canales de YouTubechannelIdsparts, includeLatestUpload
channels_searchChannelsBuscar canales de YouTube por identificador, nombre o consultaquerymaxResults, order, channelType, minSubscribers, maxSubscribers, lastUploadAfter, lastUploadBefore, creatorOnly, sortBy
channels_findCreatorsEncontrar canales de creadores a partir de menciones en videos con filtros de tamaño de canal y actividadquerymaxResults, order, videoPublishedAfter, videoPublishedBefore, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy, sampleVideosPerChannel
channels_listVideosObtener videos de un canal específicochannelIdmaxResults
playlists_getPlaylistObtener información sobre una lista de reproducción de YouTubeplaylistIdNinguno
playlists_getPlaylistItemsObtener videos en una lista de reproducción de YouTubeplaylistIdmaxResults

Parámetros de Herramientas

videos_getVideo

  • videoId (string): El ID del video de YouTube.
  • parts (string[], opcional): Partes específicas de recursos de video a recuperar.

videos_searchVideos

  • query (string): Consulta de búsqueda.
  • maxResults (number, opcional): Número máximo de resultados a devolver.
  • order (string, opcional): Ordenamiento de resultados como relevance o date.
  • publishedAfter (string, opcional): Incluir solo videos publicados después de esta fecha ISO 8601.
  • publishedBefore (string, opcional): Incluir solo videos publicados antes de esta fecha ISO 8601.
  • channelId (string, opcional): Restringir resultados a un canal específico.
  • uniqueChannels (boolean, opcional): Devolver solo un video por canal único.
  • channelMinSubscribers / channelMaxSubscribers (number, opcional): Filtrar videos coincidentes por la banda de suscriptores de su canal.
  • channelLastUploadAfter / channelLastUploadBefore (string, opcional): Filtrar videos coincidentes por la actividad de carga más reciente de su canal.
  • creatorOnly (boolean, opcional): Restringir resultados a canales clasificados heurísticamente como creadores.
  • sortBy (string, opcional): Soporta relevance, subscribers_asc, subscribers_desc, indie_priority y recent_activity.

transcripts_getTranscript

  • videoId (string): El ID del video de YouTube.
  • language (string, opcional): Código de idioma de la transcripción. Recurre a YOUTUBE_TRANSCRIPT_LANG o en.

channels_getChannel

  • channelId (string): El ID del canal de YouTube.

Las respuestas ahora incluyen:

  • latestVideoPublishedAt
  • normalizedMetadata
    • incluye country, defaultLanguage, joinedAt, customUrl, emailsFound, contactLinks y campos heurísticos de creador-vs-marca

channels_getChannels

  • channelIds (string[]): Una lista de IDs de canales de YouTube.
  • includeLatestUpload (boolean, opcional): Si incluir latestVideoPublishedAt. El valor predeterminado es true.

channels_searchChannels

  • query (string): Consulta de búsqueda de canal o identificador.
  • maxResults (number, opcional): Número máximo de canales a devolver.
  • order (string, opcional): Ordenamiento de resultados como relevance.
  • channelType (string, opcional): Restringir la búsqueda a un tipo de canal.
  • minSubscribers / maxSubscribers (number, opcional): Filtrar canales por banda de suscriptores.
  • lastUploadAfter / lastUploadBefore (string, opcional): Filtrar canales por actividad de carga más reciente.
  • creatorOnly (boolean, opcional): Restringir resultados a canales clasificados heurísticamente como creadores.
  • sortBy (string, opcional): Soporta relevance, subscribers_asc, subscribers_desc, indie_priority y recent_activity.

channels_findCreators

  • query (string): Consulta de tema, juego o mención para descubrir canales a partir de videos coincidentes.
  • videoPublishedAfter / videoPublishedBefore (string, opcional): Filtros de actualidad para los videos coincidentes.
  • channelMinSubscribers / channelMaxSubscribers (number, opcional): Filtros de banda de suscriptores para los canales devueltos.
  • channelLastUploadAfter / channelLastUploadBefore (string, opcional): Filtros de actividad de carga más reciente para los canales devueltos.
  • creatorOnly (boolean, opcional): Restringir resultados a canales clasificados heurísticamente como creadores.
  • sortBy (string, opcional): Soporta relevance, subscribers_asc, subscribers_desc, indie_priority y recent_activity.
  • sampleVideosPerChannel (number, opcional): Cuántos videos coincidentes incluir por canal devuelto.

channels_listVideos

  • channelId (string): El ID del canal de YouTube.
  • maxResults (number, opcional): Número máximo de videos a devolver.

playlists_getPlaylist

  • playlistId (string): El ID de la lista de reproducción de YouTube.

playlists_getPlaylistItems

  • playlistId (string): El ID de la lista de reproducción de YouTube.
  • maxResults (number, opcional): Número máximo de elementos de la lista de reproducción a devolver.

Instalación

Configuración Rápida para Claude Desktop

  1. Instale el paquete:
npm install -g zubeid-youtube-mcp-server
  1. Agregue a su configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS o %APPDATA%\Claude\claude_desktop_config.json en Windows):
{
  "mcpServers": {
    "zubeid-youtube-mcp-server": {
      "command": "zubeid-youtube-mcp-server",
      "env": {
        "YOUTUBE_API_KEY": "your_primary_youtube_api_key",
        "YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
        "YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
      }
    }
  }
}

Alternativa: Usando NPX (Sin Necesidad de Instalación)

Agregue esto a su configuración de Claude Desktop:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "zubeid-youtube-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "your_primary_youtube_api_key",
        "YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
        "YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
      }
    }
  }
}

Instalación a través de Smithery

Para instalar YouTube MCP Server para Claude Desktop automáticamente a través de Smithery:

npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude

Configuración

Establezca las siguientes variables de entorno:

  • YOUTUBE_API_KEY: Clave principal de la API de datos de YouTube
  • YOUTUBE_API_KEY2: Clave de API de respaldo secundaria
  • YOUTUBE_API_KEY3: Tercera clave de API de respaldo
  • YOUTUBE_TRANSCRIPT_LANG: Idioma predeterminado para transcripciones (opcional, el valor predeterminado es 'en')

Al menos una de YOUTUBE_API_KEY, YOUTUBE_API_KEY2 o YOUTUBE_API_KEY3 debe estar configurada. Cuando una solicitud falla porque una clave ha agotado su cuota, el servidor reintenta la misma solicitud con la siguiente clave configurada.

Uso con VS Code

Para instalación con un clic, haga clic en uno de los botones de instalación a continuación:

Install with NPX in VS Code Install with NPX in VS Code Insiders

Instalación Manual

Si prefiere la instalación manual, primero revise los botones de instalación en la parte superior de esta sección. De lo contrario, siga estos pasos:

Agregue el siguiente bloque JSON a su archivo de Configuración de Usuario (JSON) en VS Code. Puede hacer esto presionando Ctrl + Shift + P y escribiendo Preferences: Open User Settings (JSON).

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "YouTube API Key",
        "password": true
      }
    ],
    "servers": {
      "youtube": {
        "command": "npx",
        "args": ["-y", "zubeid-youtube-mcp-server"],
        "env": {
          "YOUTUBE_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}

Opcionalmente, puede agregarlo a un archivo llamado .vscode/mcp.json en su espacio de trabajo:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "YouTube API Key",
      "password": true
    }
  ],
  "servers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "zubeid-youtube-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "${input:apiKey}"
      }
    }
  }
}

Desarrollo

# Install dependencies
npm install

# Build
npm run build

# Start the server (requires at least one configured YouTube API key)
npm start

# Development mode with auto-rebuild
npm run dev

Docker

La imagen de Docker incluida inicia el servidor sobre HTTP de forma predeterminada.

  • Transporte predeterminado: http
  • Endpoint predeterminado: http://localhost:8088/mcp
  • Endpoint de preparación: http://localhost:8088/ready
  • Modo predeterminado: sin estado

La compilación de Docker copia .env en la imagen de tiempo de ejecución y el servidor lo carga automáticamente al inicio. Eso significa que el contenedor puede ejecutarse sin pasar credenciales de API en el momento de docker run, siempre que .env estuviera presente durante docker build.

docker build -t youtube-mcp-server .
docker run --rm -p 8088:8088 youtube-mcp-server

El contenedor tiene como valores predeterminados:

MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8088
MCP_STATELESS=true

Contribuciones

Consulte CONTRIBUTING.md para obtener información sobre cómo contribuir a este repositorio.

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para obtener más detalles.