Dacast MCP Live Stream Server Server

oficial

O servidor Dacast MCP Live Stream Server conecta suas ferramentas de IA às APIs de transmissão ao vivo e hospedagem de vídeo da Dacast, permitindo criar e gerenciar transmissões ao vivo, playlists, miniaturas e simulcasts usando comandos simples em linguagem natural.

Documentação

Servidor Dacast MCP

Este repositório fornece um servidor Model Context Protocol (MCP) que expõe a API da plataforma de vídeo Dacast como um conjunto de ferramentas MCP estruturadas. Ele permite que clientes compatíveis com MCP (como o Claude Desktop) gerenciem recursos do Dacast — canais, playlists, imagens, destinos de transmissão simultânea e muito mais — por meio de linguagem natural.


Funcionalidades

  • Servidor MCP baseado em StdIO

    • Comunica-se através do Model Context Protocol via entrada/saída padrão.
    • Projetado para ser iniciado por um processo cliente MCP e mantido em execução como um processo filho.
  • Integração com a API Dacast

    • Gerenciamento de canais: criar, listar, obter, atualizar.
    • Gerenciamento de playlists: criar, listar, obter, atualizar, definir conteúdo da playlist.
    • Gerenciamento de imagens: miniaturas e imagens de abertura.
    • Gerenciamento de destinos de transmissão simultânea: criar, obter, excluir.

Instalação

Pré-requisitos

  • Go: Go 1.24+ (versões anteriores podem funcionar, mas não são garantidas).
  • Conta Dacast e chave de API: necessários para realizar operações autenticadas.

Configuração do Cliente MCP

A configuração do cliente MCP baseada em JSON pode se parecer com:

{
  "mcpServers": {
    "dacast": {
      "command": "go",
      "args": ["run", "github.com/Dacast-Inc/mcp-server-public@latest"],
      "env": {
        "DACAST_API_KEY": "DACAST API KEY HERE"
      }
    }
  }
}

Visão Geral da Arquitetura

Design de alto nível

O servidor é um único binário Go que:

  1. Inicia um servidor MCP stdio.
  2. Registra um conjunto de ferramentas agrupadas por domínio Dacast (canais, playlists, imagens, transmissão simultânea).
  3. Para cada solicitação MCP call_tool recebida:
    • Vincula e valida os argumentos da ferramenta.
    • Constrói uma requisição HTTP para o endpoint REST Dacast relevante usando o ApiClient interno.
    • Encaminha a requisição para o Dacast com os cabeçalhos de autenticação apropriados.
    • Retorna a resposta JSON (e, opcionalmente, uma forma estruturada transformada) de volta ao cliente MCP.

Pacotes principais:

  • main.go – ponto de entrada que inicializa o servidor MCP e registra as ferramentas.
  • pkg/apiclient/ – wrapper mínimo de cliente HTTP em torno da API REST Dacast.
  • pkg/tools/ – implementações de ferramentas agrupadas por domínio:
    • channel/ – operações relacionadas a canais.
    • playlist/ – operações relacionadas a playlists.
    • images/ – operações de miniaturas e imagens de abertura.
    • simulcast/ – operações de destinos de transmissão simultânea.
  • pkg/tools/toolscommon/ – tipos compartilhados, manipuladores e utilitários para construção de ferramentas.

Mapeamento Ferramentas → API Dacast

Cada ferramenta em pkg/tools/ corresponde a um ou mais endpoints da API Dacast.

  • Canais (pkg/tools/channel/)

    • create_channel.go – criar um novo canal.
    • get_channel.go – obter detalhes do canal.
    • update_channel.go – atualizar um canal existente.
    • list_channel.go – listar todos os canais ou filtrá-los.
  • Playlists (pkg/tools/playlist/)

    • create_playlist.go – criar uma nova playlist.
    • get_playlist.go – obter detalhes da playlist.
    • update_playlist.go – atualizar uma playlist existente.
    • list_playlist.go – listar playlists.
    • set_playlist_content.go – definir ou atualizar o conteúdo da playlist.
  • Imagens (pkg/tools/images/)

    • thumbnail.go – gerenciar miniaturas de canais/ativos.
    • splash.go – gerenciar imagens de abertura.
  • Transmissão Simultânea (pkg/tools/simulcast/)

    • create_simulcast_destination.go – criar um destino de transmissão simultânea.
    • get_simulcast_destination.go – recuperar um destino de transmissão simultânea.
    • delete_simulcast_destination.go – excluir um destino de transmissão simultânea.

Licença

Este projeto está licenciado sob os termos descritos no arquivo LICENSE neste repositório. Por favor, revise esse arquivo para o texto completo.