YouTube MCP

Gerencie vídeos do YouTube, crie Shorts e obtenha análises usando a API do YouTube.

Documentação

Servidor YouTube MCP

npm version npm downloads npm total downloads

Uma implementação de servidor Model Context Protocol (MCP) para YouTube, permitindo que modelos de linguagem de IA interajam com o conteúdo do YouTube por meio de uma interface padronizada.

Site: zubeidhendricks.github.io/youtube-mcp-server

Ferramentas Disponíveis

O servidor atualmente expõe 10 ferramentas MCP.

FerramentaDescriçãoParâmetros ObrigatóriosParâmetros Opcionais
videos_getVideoObter informações detalhadas sobre um vídeo do YouTubevideoIdparts
videos_searchVideosPesquisar vídeos no YouTubequerymaxResults, order, publishedAfter, publishedBefore, channelId, uniqueChannels, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy
transcripts_getTranscriptObter a transcrição de um vídeo do YouTubevideoIdlanguage
channels_getChannelObter informações sobre um canal do YouTubechannelIdNenhum
channels_getChannelsObter informações sobre vários canais do YouTubechannelIdsparts, includeLatestUpload
channels_searchChannelsPesquisar canais do YouTube por identificador, nome ou consultaquerymaxResults, order, channelType, minSubscribers, maxSubscribers, lastUploadAfter, lastUploadBefore, creatorOnly, sortBy
channels_findCreatorsEncontrar canais de criadores a partir de menções em vídeos com filtros de tamanho de canal e atividadequerymaxResults, order, videoPublishedAfter, videoPublishedBefore, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy, sampleVideosPerChannel
channels_listVideosObter vídeos de um canal específicochannelIdmaxResults
playlists_getPlaylistObter informações sobre uma playlist do YouTubeplaylistIdNenhum
playlists_getPlaylistItemsObter vídeos de uma playlist do YouTubeplaylistIdmaxResults

Parâmetros das Ferramentas

videos_getVideo

  • videoId (string): O ID do vídeo do YouTube.
  • parts (string[], opcional): Partes específicas do recurso de vídeo a recuperar.

videos_searchVideos

  • query (string): Consulta de pesquisa.
  • maxResults (number, opcional): Número máximo de resultados a retornar.
  • order (string, opcional): Ordenação de resultados, como relevance ou date.
  • publishedAfter (string, opcional): Incluir apenas vídeos publicados após esta data ISO 8601.
  • publishedBefore (string, opcional): Incluir apenas vídeos publicados antes desta data ISO 8601.
  • channelId (string, opcional): Restringir resultados a um canal específico.
  • uniqueChannels (boolean, opcional): Retornar apenas um vídeo por canal exclusivo.
  • channelMinSubscribers / channelMaxSubscribers (number, opcional): Filtrar vídeos correspondentes pela faixa de inscritos do canal.
  • channelLastUploadAfter / channelLastUploadBefore (string, opcional): Filtrar vídeos correspondentes pela atividade de upload mais recente do canal.
  • creatorOnly (boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.
  • sortBy (string, opcional): Suporta relevance, subscribers_asc, subscribers_desc, indie_priority e recent_activity.

transcripts_getTranscript

  • videoId (string): O ID do vídeo do YouTube.
  • language (string, opcional): Código do idioma da transcrição. Recorre a YOUTUBE_TRANSCRIPT_LANG ou en.

channels_getChannel

  • channelId (string): O ID do canal do YouTube.

As respostas agora incluem:

  • latestVideoPublishedAt
  • normalizedMetadata
    • inclui country, defaultLanguage, joinedAt, customUrl, emailsFound, contactLinks e campos heurísticos de criador versus marca

channels_getChannels

  • channelIds (string[]): Uma lista de IDs de canais do YouTube.
  • includeLatestUpload (boolean, opcional): Se deve incluir latestVideoPublishedAt. O padrão é true.

channels_searchChannels

  • query (string): Consulta de pesquisa de canal ou identificador.
  • maxResults (number, opcional): Número máximo de canais a retornar.
  • order (string, opcional): Ordenação de resultados, como relevance.
  • channelType (string, opcional): Restringir a pesquisa a um tipo de canal.
  • minSubscribers / maxSubscribers (number, opcional): Filtrar canais por faixa de inscritos.
  • lastUploadAfter / lastUploadBefore (string, opcional): Filtrar canais pela atividade de upload mais recente.
  • creatorOnly (boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.
  • sortBy (string, opcional): Suporta relevance, subscribers_asc, subscribers_desc, indie_priority e recent_activity.

channels_findCreators

  • query (string): Consulta de tópico, jogo ou menção para descobrir canais a partir de vídeos correspondentes.
  • videoPublishedAfter / videoPublishedBefore (string, opcional): Filtros de recência para os vídeos correspondentes.
  • channelMinSubscribers / channelMaxSubscribers (number, opcional): Filtros de faixa de inscritos para os canais retornados.
  • channelLastUploadAfter / channelLastUploadBefore (string, opcional): Filtros de atividade de upload mais recente para os canais retornados.
  • creatorOnly (boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.
  • sortBy (string, opcional): Suporta relevance, subscribers_asc, subscribers_desc, indie_priority e recent_activity.
  • sampleVideosPerChannel (number, opcional): Quantos vídeos correspondentes incluir por canal retornado.

channels_listVideos

  • channelId (string): O ID do canal do YouTube.
  • maxResults (number, opcional): Número máximo de vídeos a retornar.

playlists_getPlaylist

  • playlistId (string): O ID da playlist do YouTube.

playlists_getPlaylistItems

  • playlistId (string): O ID da playlist do YouTube.
  • maxResults (number, opcional): Número máximo de itens da playlist a retornar.

Instalação

Configuração Rápida para Claude Desktop

  1. Instale o pacote:
npm install -g zubeid-youtube-mcp-server
  1. Adicione à sua configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json no macOS ou %APPDATA%\Claude\claude_desktop_config.json no 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 (Sem Instalação Necessária)

Adicione isto à sua configuração do 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"
      }
    }
  }
}

Instalando via Smithery

Para instalar o YouTube MCP Server para Claude Desktop automaticamente via Smithery:

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

Configuração

Defina as seguintes variáveis de ambiente:

  • YOUTUBE_API_KEY: Chave primária da API de Dados do YouTube
  • YOUTUBE_API_KEY2: Chave de API secundária de fallback
  • YOUTUBE_API_KEY3: Terceira chave de API de fallback
  • YOUTUBE_TRANSCRIPT_LANG: Idioma padrão para transcrições (opcional, padrão é 'en')

Pelo menos uma das YOUTUBE_API_KEY, YOUTUBE_API_KEY2 ou YOUTUBE_API_KEY3 deve ser definida. Quando uma solicitação falha porque uma chave esgotou sua cota, o servidor tenta novamente a mesma solicitação com a próxima chave configurada.

Usando com VS Code

Para instalação com um clique, clique em um dos botões de instalação abaixo:

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

Instalação Manual

Se preferir instalação manual, primeiro verifique os botões de instalação no topo desta seção. Caso contrário, siga estes passos:

Adicione o seguinte bloco JSON ao arquivo User Settings (JSON) no VS Code. Você pode fazer isso pressionando Ctrl + Shift + P e digitando 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, você pode adicioná-lo a um arquivo chamado .vscode/mcp.json no seu workspace:

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

Desenvolvimento

# 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

A imagem Docker incluída inicia o servidor via HTTP por padrão.

  • Transporte padrão: http
  • Endpoint padrão: http://localhost:8088/mcp
  • Endpoint de prontidão: http://localhost:8088/ready
  • Modo padrão: sem estado

A construção Docker copia .env para a imagem de runtime e o servidor o carrega automaticamente na inicialização. Isso significa que o contêiner pode ser executado sem passar credenciais de API no momento do docker run, desde que .env estivesse presente durante o docker build.

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

O contêiner usa por padrão:

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

Contribuindo

Veja CONTRIBUTING.md para informações sobre como contribuir com este repositório.

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.