YouTube MCP
Gestiona videos de YouTube, crea Shorts y obtén análisis usando la API de YouTube.
Documentación
Servidor YouTube MCP
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.
| Herramienta | Descripción | Parámetros Requeridos | Parámetros Opcionales |
|---|---|---|---|
videos_getVideo | Obtener información detallada sobre un video de YouTube | videoId | parts |
videos_searchVideos | Buscar videos en YouTube | query | maxResults, order, publishedAfter, publishedBefore, channelId, uniqueChannels, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy |
transcripts_getTranscript | Obtener la transcripción de un video de YouTube | videoId | language |
channels_getChannel | Obtener información sobre un canal de YouTube | channelId | Ninguno |
channels_getChannels | Obtener información sobre múltiples canales de YouTube | channelIds | parts, includeLatestUpload |
channels_searchChannels | Buscar canales de YouTube por identificador, nombre o consulta | query | maxResults, order, channelType, minSubscribers, maxSubscribers, lastUploadAfter, lastUploadBefore, creatorOnly, sortBy |
channels_findCreators | Encontrar canales de creadores a partir de menciones en videos con filtros de tamaño de canal y actividad | query | maxResults, order, videoPublishedAfter, videoPublishedBefore, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy, sampleVideosPerChannel |
channels_listVideos | Obtener videos de un canal específico | channelId | maxResults |
playlists_getPlaylist | Obtener información sobre una lista de reproducción de YouTube | playlistId | Ninguno |
playlists_getPlaylistItems | Obtener videos en una lista de reproducción de YouTube | playlistId | maxResults |
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 comorelevanceodate.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): Soportarelevance,subscribers_asc,subscribers_desc,indie_priorityyrecent_activity.
transcripts_getTranscript
videoId(string): El ID del video de YouTube.language(string, opcional): Código de idioma de la transcripción. Recurre aYOUTUBE_TRANSCRIPT_LANGoen.
channels_getChannel
channelId(string): El ID del canal de YouTube.
Las respuestas ahora incluyen:
latestVideoPublishedAtnormalizedMetadata- incluye
country,defaultLanguage,joinedAt,customUrl,emailsFound,contactLinksy campos heurísticos de creador-vs-marca
- incluye
channels_getChannels
channelIds(string[]): Una lista de IDs de canales de YouTube.includeLatestUpload(boolean, opcional): Si incluirlatestVideoPublishedAt. El valor predeterminado estrue.
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 comorelevance.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): Soportarelevance,subscribers_asc,subscribers_desc,indie_priorityyrecent_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): Soportarelevance,subscribers_asc,subscribers_desc,indie_priorityyrecent_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
- Instale el paquete:
npm install -g zubeid-youtube-mcp-server
- Agregue a su configuración de Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonen macOS o%APPDATA%\Claude\claude_desktop_config.jsonen 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 YouTubeYOUTUBE_API_KEY2: Clave de API de respaldo secundariaYOUTUBE_API_KEY3: Tercera clave de API de respaldoYOUTUBE_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:
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.