Conecte o ChatGPT ou o Claude com sua conta do LiveReacting, ou Claude Code, Codex, Cursor e outros clientes MCP com uma chave de API. O agente monta uma transmissão a partir de uma playlist, inicia, agenda e depois lê o histórico de transmissões.
https://mcp.livereacting.com/mcp
Streamable HTTP, só POST, sem sessão. Uma chave de API vai no cabeçalho Authorization como token Bearer. O ChatGPT e o Claude, em vez disso, fazem login com OAuth.
Uma URL e um cabeçalho Authorization para cada cliente abaixo. A chave é a chave lr_ que a API REST usa, então uma chave que você já tem funciona aqui.
Se você ainda não tem uma chave, crie uma na seção Developer do LiveReacting Studio. Defina-a como a variável de ambiente LIVEREACTING_API_KEY e reinicie seu cliente. No VS Code, é o próprio cliente que pede a chave.
Em .mcp.json, na raiz do seu projeto. A chave fica fora do arquivo, então é seguro fazer commit dele.
{
"mcpServers": {
"livereacting": {
"type": "http",
"url": "https://mcp.livereacting.com/mcp",
"headers": { "Authorization": "Bearer ${LIVEREACTING_API_KEY}" }
}
}
}
Em ~/.codex/config.toml.
[mcp_servers.livereacting]
url = "https://mcp.livereacting.com/mcp"
bearer_token_env_var = "LIVEREACTING_API_KEY"
# Then, in your shell profile:
# export LIVEREACTING_API_KEY=lr_...
Em ~/.cursor/mcp.json.
{
"mcpServers": {
"livereacting": {
"url": "https://mcp.livereacting.com/mcp",
"headers": { "Authorization": "Bearer ${env:LIVEREACTING_API_KEY}" }
}
}
}
Em .vscode/mcp.json. O bloco inputs faz o VS Code pedir a chave em vez de guardá-la no repositório.
{
"inputs": [
{
"id": "livereacting-key",
"type": "promptString",
"description": "LiveReacting API key",
"password": true
}
],
"servers": {
"livereacting": {
"type": "http",
"url": "https://mcp.livereacting.com/mcp",
"headers": { "Authorization": "Bearer ${input:livereacting-key}" }
}
}
}
Em ~/.gemini/settings.json.
{
"mcpServers": {
"livereacting": {
"httpUrl": "https://mcp.livereacting.com/mcp",
"headers": { "Authorization": "Bearer ${LIVEREACTING_API_KEY}" }
}
}
}
Qualquer cliente compatível com Streamable HTTP e um cabeçalho Bearer usa a mesma URL e o mesmo cabeçalho.
Adicione ?read_only=1 à URL e o cliente recebe só as ferramentas de leitura. Nada que o agente chamar pode alterar um projeto ou uma transmissão.
Todo nome começa com livereacting_, então uma única busca encontra o servidor inteiro em um cliente que carrega ferramentas sob demanda.
| Ferramenta | O que faz | Acesso |
|---|---|---|
| Conta Os destinos que você já conectou. | ||
livereacting_list_destinations |
Suas contas conectadas de YouTube, Facebook, Twitch, LinkedIn e X, e seus próprios servidores | Somente leitura |
livereacting_validate_destinations |
Verificar se um login do YouTube, Facebook ou Twitch ainda funciona antes de você contar com ele. Destinos personalizados não são contatados | Somente leitura |
| Editor Projetos, cenas e as playlists de vídeos e áudio dentro deles. | ||
livereacting_list_projects |
Seus projetos, do mais recente ao mais antigo | Somente leitura |
livereacting_get_project |
Um projeto completo: formato, duração, destinos e status da transmissão | Somente leitura |
livereacting_create_project |
Criar um projeto vazio, o primeiro passo para montar uma transmissão | Escrita |
livereacting_update_project |
Alterar as configurações de um projeto | Escrita |
livereacting_get_scenes |
As cenas de um projeto, com um resumo do que há em cada uma | Somente leitura |
livereacting_manage_scene |
Criar, renomear ou excluir uma cena | Destrutiva |
livereacting_activate_scene |
Trocar a cena que vai ao ar, inclusive com a transmissão rodando | Escrita |
livereacting_create_scene_with_playlist |
Adicionar uma cena e preenchê-la com uma playlist de vídeos em uma só chamada | Escrita |
livereacting_add_layer |
Adicionar uma playlist de vídeos, uma playlist de áudio ou um único vídeo a uma cena que já existe | Escrita |
livereacting_get_layer |
Ler uma playlist e os vídeos dela, cinquenta por vez | Somente leitura |
livereacting_set_playlist |
Substituir todo o conteúdo de uma playlist de vídeos ou áudio | Destrutiva |
| Transmissões Entrar ao vivo, agendar e acompanhar uma transmissão enquanto ela roda. | ||
livereacting_start_stream |
Entrar ao vivo agora | Destrutiva |
livereacting_stop_stream |
Encerrar a transmissão em andamento | Destrutiva |
livereacting_get_stream_status |
O que a transmissão está fazendo agora, e o estado de cada destino | Somente leitura |
livereacting_schedule_stream |
Entrar ao vivo em um ou mais horários nos próximos 28 dias | Escrita |
livereacting_cancel_schedules |
Cancelar uma transmissão agendada, ou todos os agendamentos de um projeto | Destrutiva |
livereacting_sync_stream |
Aplicar à transmissão em andamento as edições que você acabou de fazer | Escrita |
livereacting_list_broadcasts |
Transmissões anteriores: quando cada uma rodou, por quanto tempo e o pico de espectadores | Somente leitura |
| Mídia A biblioteca de vídeos de onde saem as playlists. | ||
livereacting_list_media |
Os arquivos e pastas da sua biblioteca | Somente leitura |
livereacting_get_media_file |
Um arquivo, com os detalhes técnicos quando você pedir | Somente leitura |
livereacting_import_media |
Importar um arquivo de uma URL do Google Drive, Dropbox ou YouTube | Escrita |
livereacting_import_from_url |
Importar um arquivo de vídeo, áudio ou imagem de um link direto em um site público | Escrita |
livereacting_get_import_status |
Em que ponto está uma importação, e se o arquivo já pode ser transmitido | Somente leitura |
livereacting_upload_file |
Iniciar um envio do seu computador. O agente envia o arquivo com os comandos que recebe de volta | Escrita |
livereacting_complete_upload |
Concluir o envio e adicionar o arquivo à sua biblioteca | Escrita |
livereacting_encode_media |
Colocar arquivos na fila de codificação para que possam ser transmitidos | Escrita |
livereacting_get_encode_status |
Em que ponto está a codificação | Somente leitura |
| Análises Os números que uma transmissão encerrada gerou. | ||
livereacting_get_stream_analytics |
Os números de transmissão do YouTube em todos os planos pagos, e os números por vídeo da playlist sob solicitação | Somente leitura |
O schema de entrada de cada ferramenta vem do tools/list quando você se conecta, e a descrição dela diz o que chamar em seguida e quanto esperar entre uma consulta e outra. Consulte lá; não deduza pelos nomes acima.
Adicione ?toolsets= com qualquer um entre account, editor, streams, media e analytics, separados por vírgula, e o cliente recebe só esses grupos. O filtro é feito pelo servidor, então funciona em qualquer cliente, e ele recusa um nome que não reconhece.
Diga o que a transmissão deve fazer, com palavras simples. O agente escolhe as ferramentas da tabela acima e as chama na ordem que o trabalho exige.
"Aqui estão três links de vídeos do Google Drive. Monte com eles uma transmissão ao vivo 24/7 no meu canal do YouTube e inicie."
Ele importa os três arquivos, espera até que possam ser transmitidos, preenche uma playlist em loop e entra ao vivo.
"Agende a gravação do webinar da semana passada para ir ao ar ao vivo na sexta, às 3 da tarde."
Ele encontra a gravação na sua biblioteca, monta um projeto que a reproduz uma vez e agenda esse único horário de início.
"Estamos ao vivo. Troque para a cena de intervalo."
Ele ativa a cena de intervalo e envia a mudança para a transmissão em andamento. A transmissão continua ao vivo.
"Como foram as transmissões da semana passada?"
Ele passa pelos seus projetos, lista as transmissões de cada um com o pico de espectadores e depois lê os números do YouTube de cada uma.
O plano Free e uma assinatura pausada não incluem acesso à API. Com uma chave de API, toda requisição é recusada com 403 API_ACCESS_REQUIRES_PAID_PLAN. Pelo ChatGPT ou pelo Claude a conta consegue se conectar, e cada chamada de ferramenta retorna esse erro até o plano incluir acesso à API.
Tudo o que a chave alcança, o agente alcança. Crie a chave na seção Developer do Studio e revogue-a lá no momento em que quiser que o agente pare.
Adicione ?read_only=1 para as ferramentas de leitura, ou ?toolsets=streams,media para os grupos que você indicar. O servidor recusa um valor não reconhecido em vez de ignorá-lo.
Ele não consegue importar uma playlist do YouTube nem montar um overlay de texto, imagem ou interativo. Você monta isso no Studio, e o agente mesmo assim pode rodar uma transmissão que tenha esses elementos.
Sim. Ele pode excluir uma cena, substituir uma playlist inteira, parar uma transmissão e cancelar um agendamento, e a tabela acima marca cada uma dessas ferramentas como Destrutiva. Com ?read_only=1 na URL, o servidor não oferece nenhuma delas.
Sim. No ChatGPT, abra Plugins, escolha Add e depois Create MCP App, e informe a URL do servidor acima. No Claude, abra Customize, depois Connectors, escolha Add custom connector e informe a mesma URL. Em seguida, os dois pedem que você entre na sua conta do LiveReacting. Claude Code, Codex CLI, Cursor, VS Code e Gemini CLI se conectam com uma chave de API, e cada um tem sua configuração nesta página.
Sim, quando o agente consegue executar comandos no seu computador. Ele pede ao LiveReacting os links de envio, envia o arquivo com curl, e o arquivo entra na sua biblioteca. Cada arquivo pode ter o tamanho que o seu plano permite. Um agente sem terminal pode importar um arquivo por vez de um link público direto, ou do Google Drive, Dropbox ou YouTube.
Todas as ferramentas, entradas, campos de resposta e códigos de erro estão na referência do MCP. A API REST em que ele se baseia está documentada ao lado.
Monte sua transmissão no estúdio com o plano Free, que não expira. Passe para qualquer plano pago quando quiser entregá-la a um agente, e a chave de API vem junto.
Quer ver os números primeiro? Ver planos e preços